file-scoped namespaces
This commit is contained in:
		| @@ -1,4 +1,3 @@ | |||||||
| namespace ApplicationLayer.GeneralExceptions | namespace ApplicationLayer.GeneralExceptions; | ||||||
| { |  | ||||||
| public class AlreadyExistsException(string message) : ApiException(message); | public class AlreadyExistsException(string message) : ApiException(message); | ||||||
| } |  | ||||||
|   | |||||||
| @@ -1,4 +1,3 @@ | |||||||
| namespace ApplicationLayer.GeneralExceptions | namespace ApplicationLayer.GeneralExceptions; | ||||||
| { |  | ||||||
| public class ApiException(string message) : Exception(message); | public class ApiException(string message) : Exception(message); | ||||||
| } |  | ||||||
|   | |||||||
| @@ -1,8 +1,7 @@ | |||||||
| namespace ApplicationLayer.InfrastructureServicesInterfaces | namespace ApplicationLayer.InfrastructureServicesInterfaces; | ||||||
| { |  | ||||||
| public interface IDateTimeProvider | public interface IDateTimeProvider | ||||||
| { | { | ||||||
|     /// Returns current date and time |     /// Returns current date and time | ||||||
|     DateTime Now(); |     DateTime Now(); | ||||||
| } | } | ||||||
| } |  | ||||||
|   | |||||||
| @@ -1,8 +1,7 @@ | |||||||
| namespace ApplicationLayer.InfrastructureServicesInterfaces | namespace ApplicationLayer.InfrastructureServicesInterfaces; | ||||||
| { |  | ||||||
| public interface IUserIdProvider | public interface IUserIdProvider | ||||||
| { | { | ||||||
|     /// Returns identifier of authenticated user who sent the request |     /// Returns identifier of authenticated user who sent the request | ||||||
|     Guid GetUserId(); |     Guid GetUserId(); | ||||||
| } | } | ||||||
| } |  | ||||||
|   | |||||||
| @@ -1,7 +1,7 @@ | |||||||
| using Domains.ApplicantDomain; | using Domains.ApplicantDomain; | ||||||
|  |  | ||||||
| namespace ApplicationLayer.Services.Applicants.Models | namespace ApplicationLayer.Services.Applicants.Models; | ||||||
| { |  | ||||||
| /// Model of <see cref="Applicant"/> | /// Model of <see cref="Applicant"/> | ||||||
| public class ApplicantModel | public class ApplicantModel | ||||||
| { | { | ||||||
| @@ -47,4 +47,3 @@ namespace ApplicationLayer.Services.Applicants.Models | |||||||
|     /// <inheritdoc cref="Applicant.IsNonResident"/> |     /// <inheritdoc cref="Applicant.IsNonResident"/> | ||||||
|     public bool IsNonResident { get; set; } |     public bool IsNonResident { get; set; } | ||||||
| } | } | ||||||
| } |  | ||||||
|   | |||||||
| @@ -1,7 +1,7 @@ | |||||||
| using Domains.ApplicantDomain; | using Domains.ApplicantDomain; | ||||||
|  |  | ||||||
| namespace ApplicationLayer.Services.Applicants.Models | namespace ApplicationLayer.Services.Applicants.Models; | ||||||
| { |  | ||||||
| public class PlaceOfWorkModel | public class PlaceOfWorkModel | ||||||
| { | { | ||||||
|     /// Name of hirer |     /// Name of hirer | ||||||
| @@ -13,4 +13,3 @@ namespace ApplicationLayer.Services.Applicants.Models | |||||||
|     /// Phone number of hirer |     /// Phone number of hirer | ||||||
|     public string PhoneNum { get; set; } = null!; |     public string PhoneNum { get; set; } = null!; | ||||||
| } | } | ||||||
| } |  | ||||||
|   | |||||||
| @@ -1,4 +1,3 @@ | |||||||
| namespace ApplicationLayer.Services.AuthServices.Common | namespace ApplicationLayer.Services.AuthServices.Common; | ||||||
| { |  | ||||||
| public record AuthData(string Email, string Password); | public record AuthData(string Email, string Password); | ||||||
| } |  | ||||||
|   | |||||||
| @@ -2,8 +2,8 @@ | |||||||
| using ApplicationLayer.Services.AuthServices.NeededServices; | using ApplicationLayer.Services.AuthServices.NeededServices; | ||||||
| using Domains.Users; | using Domains.Users; | ||||||
|  |  | ||||||
| namespace ApplicationLayer.Services.AuthServices.LoginService | namespace ApplicationLayer.Services.AuthServices.LoginService; | ||||||
| { |  | ||||||
| public class DevelopmentLoginService(IUsersRepository users, ITokenGenerator tokenGenerator) : ILoginService | public class DevelopmentLoginService(IUsersRepository users, ITokenGenerator tokenGenerator) : ILoginService | ||||||
| { | { | ||||||
|     async Task<string> ILoginService.LoginAsync(string email, string password, CancellationToken cancellationToken) |     async Task<string> ILoginService.LoginAsync(string email, string password, CancellationToken cancellationToken) | ||||||
| @@ -24,4 +24,3 @@ namespace ApplicationLayer.Services.AuthServices.LoginService | |||||||
|             return tokenGenerator.CreateToken(user); |             return tokenGenerator.CreateToken(user); | ||||||
|         } |         } | ||||||
| } | } | ||||||
| } |  | ||||||
|   | |||||||
| @@ -1,6 +1,5 @@ | |||||||
| using ApplicationLayer.GeneralExceptions; | using ApplicationLayer.GeneralExceptions; | ||||||
|  |  | ||||||
| namespace ApplicationLayer.Services.AuthServices.LoginService.Exceptions | namespace ApplicationLayer.Services.AuthServices.LoginService.Exceptions; | ||||||
| { |  | ||||||
| public class IncorrectLoginDataException() : ApiException("Incorrect email or password"); | public class IncorrectLoginDataException() : ApiException("Incorrect email or password"); | ||||||
| } |  | ||||||
|   | |||||||
| @@ -1,5 +1,5 @@ | |||||||
| namespace ApplicationLayer.Services.AuthServices.LoginService | namespace ApplicationLayer.Services.AuthServices.LoginService; | ||||||
| { |  | ||||||
| /// Handles login requests | /// Handles login requests | ||||||
| public interface ILoginService | public interface ILoginService | ||||||
| { | { | ||||||
| @@ -7,4 +7,3 @@ | |||||||
|     /// <returns>JWT-token</returns> |     /// <returns>JWT-token</returns> | ||||||
|     Task<string> LoginAsync(string email, string password, CancellationToken cancellationToken); |     Task<string> LoginAsync(string email, string password, CancellationToken cancellationToken); | ||||||
| } | } | ||||||
| } |  | ||||||
|   | |||||||
| @@ -1,8 +1,8 @@ | |||||||
| using ApplicationLayer.Services.AuthServices.LoginService.Exceptions; | using ApplicationLayer.Services.AuthServices.LoginService.Exceptions; | ||||||
| using ApplicationLayer.Services.AuthServices.NeededServices; | using ApplicationLayer.Services.AuthServices.NeededServices; | ||||||
|  |  | ||||||
| namespace ApplicationLayer.Services.AuthServices.LoginService | namespace ApplicationLayer.Services.AuthServices.LoginService; | ||||||
| { |  | ||||||
| /// <inheritdoc cref="ILoginService"/> | /// <inheritdoc cref="ILoginService"/> | ||||||
| public class LoginService(IUsersRepository users, ITokenGenerator tokenGenerator) : ILoginService | public class LoginService(IUsersRepository users, ITokenGenerator tokenGenerator) : ILoginService | ||||||
| { | { | ||||||
| @@ -17,4 +17,3 @@ namespace ApplicationLayer.Services.AuthServices.LoginService | |||||||
|             return tokenGenerator.CreateToken(user); |             return tokenGenerator.CreateToken(user); | ||||||
|         } |         } | ||||||
| } | } | ||||||
| } |  | ||||||
|   | |||||||
| @@ -1,9 +1,8 @@ | |||||||
| using Domains.Users; | using Domains.Users; | ||||||
|  |  | ||||||
| namespace ApplicationLayer.Services.AuthServices.NeededServices | namespace ApplicationLayer.Services.AuthServices.NeededServices; | ||||||
| { |  | ||||||
| public interface ITokenGenerator | public interface ITokenGenerator | ||||||
| { | { | ||||||
|     string CreateToken(User user); |     string CreateToken(User user); | ||||||
| } | } | ||||||
| } |  | ||||||
|   | |||||||
| @@ -1,8 +1,8 @@ | |||||||
| using ApplicationLayer.InfrastructureServicesInterfaces; | using ApplicationLayer.InfrastructureServicesInterfaces; | ||||||
| using Domains.Users; | using Domains.Users; | ||||||
|  |  | ||||||
| namespace ApplicationLayer.Services.AuthServices.NeededServices | namespace ApplicationLayer.Services.AuthServices.NeededServices; | ||||||
| { |  | ||||||
| /// Repository pattern for <see cref="User"/> | /// Repository pattern for <see cref="User"/> | ||||||
| public interface IUsersRepository : IGenericRepository<User> | public interface IUsersRepository : IGenericRepository<User> | ||||||
| { | { | ||||||
| @@ -18,4 +18,3 @@ namespace ApplicationLayer.Services.AuthServices.NeededServices | |||||||
|     /// <returns>list of accounts</returns> |     /// <returns>list of accounts</returns> | ||||||
|     Task<List<User>> GetAllOfRoleAsync(Role role, CancellationToken cancellationToken); |     Task<List<User>> GetAllOfRoleAsync(Role role, CancellationToken cancellationToken); | ||||||
| } | } | ||||||
| } |  | ||||||
|   | |||||||
| @@ -1,7 +1,7 @@ | |||||||
| using ApplicationLayer.Services.AuthServices.Requests; | using ApplicationLayer.Services.AuthServices.Requests; | ||||||
|  |  | ||||||
| namespace ApplicationLayer.Services.AuthServices.RegisterService | namespace ApplicationLayer.Services.AuthServices.RegisterService; | ||||||
| { |  | ||||||
| /// Handles register request | /// Handles register request | ||||||
| public interface IRegisterService | public interface IRegisterService | ||||||
| { | { | ||||||
| @@ -11,4 +11,3 @@ namespace ApplicationLayer.Services.AuthServices.RegisterService | |||||||
|     /// Handles <see cref="RegisterRequest"/> and adds approving authority account |     /// Handles <see cref="RegisterRequest"/> and adds approving authority account | ||||||
|     Task RegisterAuthority(RegisterRequest request, CancellationToken cancellationToken); |     Task RegisterAuthority(RegisterRequest request, CancellationToken cancellationToken); | ||||||
| } | } | ||||||
| } |  | ||||||
|   | |||||||
| @@ -6,8 +6,8 @@ using AutoMapper; | |||||||
| using Domains.ApplicantDomain; | using Domains.ApplicantDomain; | ||||||
| using Domains.Users; | using Domains.Users; | ||||||
|  |  | ||||||
| namespace ApplicationLayer.Services.AuthServices.RegisterService | namespace ApplicationLayer.Services.AuthServices.RegisterService; | ||||||
| { |  | ||||||
| /// <inheritdoc cref="IRegisterService"/> | /// <inheritdoc cref="IRegisterService"/> | ||||||
| public class RegisterService( | public class RegisterService( | ||||||
|     IUsersRepository users, |     IUsersRepository users, | ||||||
| @@ -39,4 +39,3 @@ namespace ApplicationLayer.Services.AuthServices.RegisterService | |||||||
|         await unitOfWork.SaveAsync(cancellationToken); |         await unitOfWork.SaveAsync(cancellationToken); | ||||||
|     } |     } | ||||||
| } | } | ||||||
| } |  | ||||||
|   | |||||||
| @@ -2,8 +2,8 @@ | |||||||
| using ApplicationLayer.Services.AuthServices.Common; | using ApplicationLayer.Services.AuthServices.Common; | ||||||
| using Domains.ApplicantDomain; | using Domains.ApplicantDomain; | ||||||
|  |  | ||||||
| namespace ApplicationLayer.Services.AuthServices.Requests | namespace ApplicationLayer.Services.AuthServices.Requests; | ||||||
| { |  | ||||||
| public record RegisterApplicantRequest( | public record RegisterApplicantRequest( | ||||||
|     AuthData AuthData, |     AuthData AuthData, | ||||||
|     Name ApplicantName, |     Name ApplicantName, | ||||||
| @@ -20,4 +20,3 @@ namespace ApplicationLayer.Services.AuthServices.Requests | |||||||
|     string JobTitle, |     string JobTitle, | ||||||
|     PlaceOfWorkModel PlaceOfWork, |     PlaceOfWorkModel PlaceOfWork, | ||||||
|     bool IsNonResident) : RegisterRequest(AuthData); |     bool IsNonResident) : RegisterRequest(AuthData); | ||||||
| } |  | ||||||
|   | |||||||
| @@ -1,6 +1,5 @@ | |||||||
| using ApplicationLayer.Services.AuthServices.Common; | using ApplicationLayer.Services.AuthServices.Common; | ||||||
|  |  | ||||||
| namespace ApplicationLayer.Services.AuthServices.Requests | namespace ApplicationLayer.Services.AuthServices.Requests; | ||||||
| { |  | ||||||
| public record RegisterRequest(AuthData AuthData); | public record RegisterRequest(AuthData AuthData); | ||||||
| } |  | ||||||
|   | |||||||
| @@ -3,8 +3,8 @@ using ApplicationLayer.Services.AuthServices.NeededServices; | |||||||
| using Domains; | using Domains; | ||||||
| using FluentValidation; | using FluentValidation; | ||||||
|  |  | ||||||
| namespace ApplicationLayer.Services.AuthServices.Requests.Validation | namespace ApplicationLayer.Services.AuthServices.Requests.Validation; | ||||||
| { |  | ||||||
| public class AuthDataValidator : AbstractValidator<AuthData> | public class AuthDataValidator : AbstractValidator<AuthData> | ||||||
| { | { | ||||||
|     public AuthDataValidator(IUsersRepository users) |     public AuthDataValidator(IUsersRepository users) | ||||||
| @@ -29,4 +29,3 @@ namespace ApplicationLayer.Services.AuthServices.Requests.Validation | |||||||
|                 .WithMessage($"Password length must be less than {ConfigurationConstraints.PasswordLength}"); |                 .WithMessage($"Password length must be less than {ConfigurationConstraints.PasswordLength}"); | ||||||
|         } |         } | ||||||
| } | } | ||||||
| } |  | ||||||
|   | |||||||
| @@ -2,8 +2,8 @@ | |||||||
| using Domains.ApplicantDomain; | using Domains.ApplicantDomain; | ||||||
| using FluentValidation; | using FluentValidation; | ||||||
|  |  | ||||||
| namespace ApplicationLayer.Services.AuthServices.Requests.Validation | namespace ApplicationLayer.Services.AuthServices.Requests.Validation; | ||||||
| { |  | ||||||
| public class NameValidator : AbstractValidator<Name> | public class NameValidator : AbstractValidator<Name> | ||||||
| { | { | ||||||
|     public NameValidator() |     public NameValidator() | ||||||
| @@ -25,4 +25,3 @@ namespace ApplicationLayer.Services.AuthServices.Requests.Validation | |||||||
|                 .WithMessage($"Patronymic length must be less than {ConfigurationConstraints.NameLength}"); |                 .WithMessage($"Patronymic length must be less than {ConfigurationConstraints.NameLength}"); | ||||||
|         } |         } | ||||||
| } | } | ||||||
| } |  | ||||||
|   | |||||||
| @@ -3,8 +3,8 @@ using Domains; | |||||||
| using Domains.ApplicantDomain; | using Domains.ApplicantDomain; | ||||||
| using FluentValidation; | using FluentValidation; | ||||||
|  |  | ||||||
| namespace ApplicationLayer.Services.AuthServices.Requests.Validation | namespace ApplicationLayer.Services.AuthServices.Requests.Validation; | ||||||
| { |  | ||||||
| public class PassportValidator : AbstractValidator<Passport> | public class PassportValidator : AbstractValidator<Passport> | ||||||
| { | { | ||||||
|     public PassportValidator(IDateTimeProvider dateTimeProvider) |     public PassportValidator(IDateTimeProvider dateTimeProvider) | ||||||
| @@ -34,4 +34,3 @@ namespace ApplicationLayer.Services.AuthServices.Requests.Validation | |||||||
|                 .WithMessage("Passport issue date must be in past"); |                 .WithMessage("Passport issue date must be in past"); | ||||||
|         } |         } | ||||||
| } | } | ||||||
| } |  | ||||||
|   | |||||||
| @@ -2,8 +2,8 @@ | |||||||
| using Domains; | using Domains; | ||||||
| using FluentValidation; | using FluentValidation; | ||||||
|  |  | ||||||
| namespace ApplicationLayer.Services.AuthServices.Requests.Validation | namespace ApplicationLayer.Services.AuthServices.Requests.Validation; | ||||||
| { |  | ||||||
| public class PlaceOfWorkModelValidator : AbstractValidator<PlaceOfWorkModel> | public class PlaceOfWorkModelValidator : AbstractValidator<PlaceOfWorkModel> | ||||||
| { | { | ||||||
|     public PlaceOfWorkModelValidator() |     public PlaceOfWorkModelValidator() | ||||||
| @@ -47,4 +47,3 @@ namespace ApplicationLayer.Services.AuthServices.Requests.Validation | |||||||
|                 .WithMessage($"Building of place of work length must be less than {ConfigurationConstraints.BuildingNumberLength}"); |                 .WithMessage($"Building of place of work length must be less than {ConfigurationConstraints.BuildingNumberLength}"); | ||||||
|         } |         } | ||||||
| } | } | ||||||
| } |  | ||||||
|   | |||||||
| @@ -5,8 +5,8 @@ using Domains; | |||||||
| using Domains.ApplicantDomain; | using Domains.ApplicantDomain; | ||||||
| using FluentValidation; | using FluentValidation; | ||||||
|  |  | ||||||
| namespace ApplicationLayer.Services.AuthServices.Requests.Validation | namespace ApplicationLayer.Services.AuthServices.Requests.Validation; | ||||||
| { |  | ||||||
| public class RegisterApplicantRequestValidator : AbstractValidator<RegisterApplicantRequest> | public class RegisterApplicantRequestValidator : AbstractValidator<RegisterApplicantRequest> | ||||||
| { | { | ||||||
|     public RegisterApplicantRequestValidator( |     public RegisterApplicantRequestValidator( | ||||||
| @@ -75,4 +75,3 @@ namespace ApplicationLayer.Services.AuthServices.Requests.Validation | |||||||
|                 .SetValidator(placeOfWorkModelValidator); |                 .SetValidator(placeOfWorkModelValidator); | ||||||
|         } |         } | ||||||
| } | } | ||||||
| } |  | ||||||
|   | |||||||
| @@ -1,8 +1,8 @@ | |||||||
| using ApplicationLayer.Services.Users.Requests; | using ApplicationLayer.Services.Users.Requests; | ||||||
| using Domains.Users; | using Domains.Users; | ||||||
|  |  | ||||||
| namespace ApplicationLayer.Services.Users | namespace ApplicationLayer.Services.Users; | ||||||
| { |  | ||||||
| /// user accounts service | /// user accounts service | ||||||
| public interface IUsersService | public interface IUsersService | ||||||
| { | { | ||||||
| @@ -20,4 +20,3 @@ namespace ApplicationLayer.Services.Users | |||||||
|     /// <param name="cancellationToken">Cancellation token</param> |     /// <param name="cancellationToken">Cancellation token</param> | ||||||
|     Task RemoveUserAccount(Guid userId, CancellationToken cancellationToken); |     Task RemoveUserAccount(Guid userId, CancellationToken cancellationToken); | ||||||
| } | } | ||||||
| } |  | ||||||
|   | |||||||
| @@ -1,6 +1,5 @@ | |||||||
| using ApplicationLayer.Services.AuthServices.Common; | using ApplicationLayer.Services.AuthServices.Common; | ||||||
|  |  | ||||||
| namespace ApplicationLayer.Services.Users.Requests | namespace ApplicationLayer.Services.Users.Requests; | ||||||
| { |  | ||||||
| public record ChangeUserAuthDataRequest(Guid UserId, AuthData NewAuthData); | public record ChangeUserAuthDataRequest(Guid UserId, AuthData NewAuthData); | ||||||
| } |  | ||||||
|   | |||||||
| @@ -3,8 +3,8 @@ using ApplicationLayer.Services.AuthServices.NeededServices; | |||||||
| using ApplicationLayer.Services.Users.Requests; | using ApplicationLayer.Services.Users.Requests; | ||||||
| using Domains.Users; | using Domains.Users; | ||||||
|  |  | ||||||
| namespace ApplicationLayer.Services.Users | namespace ApplicationLayer.Services.Users; | ||||||
| { |  | ||||||
| public class UsersService(IUsersRepository users, IUnitOfWork unitOfWork) : IUsersService | public class UsersService(IUsersRepository users, IUnitOfWork unitOfWork) : IUsersService | ||||||
| { | { | ||||||
|     async Task<List<User>> IUsersService.GetAuthoritiesAccountsAsync(CancellationToken cancellationToken) |     async Task<List<User>> IUsersService.GetAuthoritiesAccountsAsync(CancellationToken cancellationToken) | ||||||
| @@ -31,4 +31,3 @@ namespace ApplicationLayer.Services.Users | |||||||
|             await unitOfWork.SaveAsync(cancellationToken); |             await unitOfWork.SaveAsync(cancellationToken); | ||||||
|         } |         } | ||||||
| } | } | ||||||
| } |  | ||||||
|   | |||||||
| @@ -1,6 +1,5 @@ | |||||||
| using ApplicationLayer.GeneralExceptions; | using ApplicationLayer.GeneralExceptions; | ||||||
|  |  | ||||||
| namespace ApplicationLayer.Services.VisaApplications.Exceptions | namespace ApplicationLayer.Services.VisaApplications.Exceptions; | ||||||
| { |  | ||||||
| public class ApplicationAlreadyProcessedException() : ApiException("This application already processed or closed by applicant."); | public class ApplicationAlreadyProcessedException() : ApiException("This application already processed or closed by applicant."); | ||||||
| } |  | ||||||
|   | |||||||
| @@ -1,8 +1,7 @@ | |||||||
| namespace ApplicationLayer.Services.VisaApplications.Models | namespace ApplicationLayer.Services.VisaApplications.Models; | ||||||
| { |  | ||||||
| public enum AuthorityRequestStatuses | public enum AuthorityRequestStatuses | ||||||
| { | { | ||||||
|     Approved, |     Approved, | ||||||
|     Rejected |     Rejected | ||||||
| } | } | ||||||
| } |  | ||||||
|   | |||||||
| @@ -1,7 +1,7 @@ | |||||||
| using Domains.VisaApplicationDomain; | using Domains.VisaApplicationDomain; | ||||||
|  |  | ||||||
| namespace ApplicationLayer.Services.VisaApplications.Models | namespace ApplicationLayer.Services.VisaApplications.Models; | ||||||
| { |  | ||||||
| /// Model of <see cref="VisaApplication"/> | /// Model of <see cref="VisaApplication"/> | ||||||
| public class VisaApplicationModelForApplicant | public class VisaApplicationModelForApplicant | ||||||
| { | { | ||||||
| @@ -41,4 +41,3 @@ namespace ApplicationLayer.Services.VisaApplications.Models | |||||||
|     /// <inheritdoc cref="VisaApplication.ValidDaysRequested"/> |     /// <inheritdoc cref="VisaApplication.ValidDaysRequested"/> | ||||||
|     public int ValidDaysRequested { get; set; } |     public int ValidDaysRequested { get; set; } | ||||||
| } | } | ||||||
| } |  | ||||||
|   | |||||||
| @@ -1,8 +1,8 @@ | |||||||
| using ApplicationLayer.Services.Applicants.Models; | using ApplicationLayer.Services.Applicants.Models; | ||||||
| using Domains.VisaApplicationDomain; | using Domains.VisaApplicationDomain; | ||||||
|  |  | ||||||
| namespace ApplicationLayer.Services.VisaApplications.Models | namespace ApplicationLayer.Services.VisaApplications.Models; | ||||||
| { |  | ||||||
| /// Model of <see cref="VisaApplication"/> with applicant property | /// Model of <see cref="VisaApplication"/> with applicant property | ||||||
| public class VisaApplicationModelForAuthority | public class VisaApplicationModelForAuthority | ||||||
| { | { | ||||||
| @@ -44,4 +44,3 @@ namespace ApplicationLayer.Services.VisaApplications.Models | |||||||
|     /// <inheritdoc cref="VisaApplication.ValidDaysRequested"/> |     /// <inheritdoc cref="VisaApplication.ValidDaysRequested"/> | ||||||
|     public int ValidDaysRequested { get; set; } |     public int ValidDaysRequested { get; set; } | ||||||
| } | } | ||||||
| } |  | ||||||
|   | |||||||
| @@ -2,8 +2,8 @@ | |||||||
| using Domains.VisaApplicationDomain; | using Domains.VisaApplicationDomain; | ||||||
| using FluentValidation; | using FluentValidation; | ||||||
|  |  | ||||||
| namespace ApplicationLayer.Services.VisaApplications.Requests.Validation | namespace ApplicationLayer.Services.VisaApplications.Requests.Validation; | ||||||
| { |  | ||||||
| public class PastVisaValidator : AbstractValidator<PastVisa> | public class PastVisaValidator : AbstractValidator<PastVisa> | ||||||
| { | { | ||||||
|     public PastVisaValidator(IDateTimeProvider dateTimeProvider) |     public PastVisaValidator(IDateTimeProvider dateTimeProvider) | ||||||
| @@ -25,4 +25,3 @@ namespace ApplicationLayer.Services.VisaApplications.Requests.Validation | |||||||
|                 .WithMessage("Name of past visa can not be empty"); |                 .WithMessage("Name of past visa can not be empty"); | ||||||
|         } |         } | ||||||
| } | } | ||||||
| } |  | ||||||
|   | |||||||
| @@ -3,8 +3,8 @@ using Domains; | |||||||
| using Domains.VisaApplicationDomain; | using Domains.VisaApplicationDomain; | ||||||
| using FluentValidation; | using FluentValidation; | ||||||
|  |  | ||||||
| namespace ApplicationLayer.Services.VisaApplications.Requests.Validation | namespace ApplicationLayer.Services.VisaApplications.Requests.Validation; | ||||||
| { |  | ||||||
| public class PastVisitValidator : AbstractValidator<PastVisit> | public class PastVisitValidator : AbstractValidator<PastVisit> | ||||||
| { | { | ||||||
|     public PastVisitValidator(IDateTimeProvider dateTimeProvider) |     public PastVisitValidator(IDateTimeProvider dateTimeProvider) | ||||||
| @@ -28,4 +28,3 @@ namespace ApplicationLayer.Services.VisaApplications.Requests.Validation | |||||||
|                 .WithMessage($"Destination Country of past visit length must be less than {ConfigurationConstraints.CountryNameLength}"); |                 .WithMessage($"Destination Country of past visit length must be less than {ConfigurationConstraints.CountryNameLength}"); | ||||||
|         } |         } | ||||||
| } | } | ||||||
| } |  | ||||||
|   | |||||||
| @@ -3,8 +3,8 @@ using Domains; | |||||||
| using Domains.VisaApplicationDomain; | using Domains.VisaApplicationDomain; | ||||||
| using FluentValidation; | using FluentValidation; | ||||||
|  |  | ||||||
| namespace ApplicationLayer.Services.VisaApplications.Requests.Validation | namespace ApplicationLayer.Services.VisaApplications.Requests.Validation; | ||||||
| { |  | ||||||
| public class PermissionToDestCountryValidator : AbstractValidator<PermissionToDestCountry?> | public class PermissionToDestCountryValidator : AbstractValidator<PermissionToDestCountry?> | ||||||
| { | { | ||||||
|     public PermissionToDestCountryValidator(IDateTimeProvider dateTimeProvider) |     public PermissionToDestCountryValidator(IDateTimeProvider dateTimeProvider) | ||||||
| @@ -22,4 +22,3 @@ namespace ApplicationLayer.Services.VisaApplications.Requests.Validation | |||||||
|                 .WithMessage($"Issuer of permission to destination Country length must be less than {ConfigurationConstraints.IssuerNameLength}"); |                 .WithMessage($"Issuer of permission to destination Country length must be less than {ConfigurationConstraints.IssuerNameLength}"); | ||||||
|         } |         } | ||||||
| } | } | ||||||
| } |  | ||||||
|   | |||||||
| @@ -3,8 +3,8 @@ using Domains; | |||||||
| using Domains.VisaApplicationDomain; | using Domains.VisaApplicationDomain; | ||||||
| using FluentValidation; | using FluentValidation; | ||||||
|  |  | ||||||
| namespace ApplicationLayer.Services.VisaApplications.Requests.Validation | namespace ApplicationLayer.Services.VisaApplications.Requests.Validation; | ||||||
| { |  | ||||||
| public class ReentryPermitValidator : AbstractValidator<ReentryPermit?> | public class ReentryPermitValidator : AbstractValidator<ReentryPermit?> | ||||||
| { | { | ||||||
|     public ReentryPermitValidator(IDateTimeProvider dateTimeProvider) |     public ReentryPermitValidator(IDateTimeProvider dateTimeProvider) | ||||||
| @@ -22,4 +22,3 @@ namespace ApplicationLayer.Services.VisaApplications.Requests.Validation | |||||||
|                 .WithMessage("Re-entry permit must not be expired"); |                 .WithMessage("Re-entry permit must not be expired"); | ||||||
|         } |         } | ||||||
| } | } | ||||||
| } |  | ||||||
|   | |||||||
| @@ -4,8 +4,8 @@ using Domains; | |||||||
| using Domains.VisaApplicationDomain; | using Domains.VisaApplicationDomain; | ||||||
| using FluentValidation; | using FluentValidation; | ||||||
|  |  | ||||||
| namespace ApplicationLayer.Services.VisaApplications.Requests.Validation | namespace ApplicationLayer.Services.VisaApplications.Requests.Validation; | ||||||
| { |  | ||||||
| public class VisaApplicationCreateRequestValidator : AbstractValidator<VisaApplicationCreateRequest> | public class VisaApplicationCreateRequestValidator : AbstractValidator<VisaApplicationCreateRequest> | ||||||
| { | { | ||||||
|     public VisaApplicationCreateRequestValidator( |     public VisaApplicationCreateRequestValidator( | ||||||
| @@ -51,4 +51,3 @@ namespace ApplicationLayer.Services.VisaApplications.Requests.Validation | |||||||
|             .SetValidator(pastVisitValidator); |             .SetValidator(pastVisitValidator); | ||||||
|     } |     } | ||||||
| } | } | ||||||
| } |  | ||||||
|   | |||||||
| @@ -1,5 +1,5 @@ | |||||||
| namespace Domains | namespace Domains; | ||||||
| { |  | ||||||
| public static class ConfigurationConstraints | public static class ConfigurationConstraints | ||||||
| { | { | ||||||
|     public const int CityNameLength = 70; |     public const int CityNameLength = 70; | ||||||
| @@ -21,4 +21,3 @@ | |||||||
|     public const int JobTitleLength = 50; |     public const int JobTitleLength = 50; | ||||||
|     public const int MaxValidDays = 90; |     public const int MaxValidDays = 90; | ||||||
| } | } | ||||||
| } |  | ||||||
|   | |||||||
| @@ -1,5 +1,5 @@ | |||||||
| namespace Domains.Users | namespace Domains.Users; | ||||||
| { |  | ||||||
| /// Role of <see cref="User"/> | /// Role of <see cref="User"/> | ||||||
| public enum Role | public enum Role | ||||||
| { | { | ||||||
| @@ -10,4 +10,3 @@ | |||||||
|     /// Manages approving authorities |     /// Manages approving authorities | ||||||
|     Admin |     Admin | ||||||
| } | } | ||||||
| } |  | ||||||
|   | |||||||
| @@ -1,5 +1,5 @@ | |||||||
| namespace Domains.Users | namespace Domains.Users; | ||||||
| { |  | ||||||
| public class User : IEntity | public class User : IEntity | ||||||
| { | { | ||||||
|     /// Unique Identifier of <see cref="User"/> |     /// Unique Identifier of <see cref="User"/> | ||||||
| @@ -11,4 +11,3 @@ | |||||||
|  |  | ||||||
|     public string Password { get; set; } = null!; |     public string Password { get; set; } = null!; | ||||||
| } | } | ||||||
| } |  | ||||||
|   | |||||||
| @@ -1,5 +1,5 @@ | |||||||
| namespace Domains.VisaApplicationDomain | namespace Domains.VisaApplicationDomain; | ||||||
| { |  | ||||||
| public enum ApplicationStatus | public enum ApplicationStatus | ||||||
| { | { | ||||||
|     /// Waits for approve |     /// Waits for approve | ||||||
| @@ -9,4 +9,3 @@ | |||||||
|     /// Closed by applicant |     /// Closed by applicant | ||||||
|     Closed |     Closed | ||||||
| } | } | ||||||
| } |  | ||||||
|   | |||||||
| @@ -3,8 +3,8 @@ using ApplicationLayer.InfrastructureServicesInterfaces; | |||||||
| using ApplicationLayer.Services.AuthServices.NeededServices; | using ApplicationLayer.Services.AuthServices.NeededServices; | ||||||
| using Microsoft.Extensions.DependencyInjection; | using Microsoft.Extensions.DependencyInjection; | ||||||
|  |  | ||||||
| namespace Infrastructure.Auth | namespace Infrastructure.Auth; | ||||||
| { |  | ||||||
| public static class ServiceCollectionsExtensions | public static class ServiceCollectionsExtensions | ||||||
| { | { | ||||||
|     public static IServiceCollection AddTokenGenerator(this IServiceCollection services, TokenGeneratorOptions options) |     public static IServiceCollection AddTokenGenerator(this IServiceCollection services, TokenGeneratorOptions options) | ||||||
| @@ -21,4 +21,3 @@ namespace Infrastructure.Auth | |||||||
|             return services; |             return services; | ||||||
|         } |         } | ||||||
| } | } | ||||||
| } |  | ||||||
|   | |||||||
| @@ -4,8 +4,8 @@ using ApplicationLayer.InfrastructureServicesInterfaces; | |||||||
| using ApplicationLayer.Services.AuthServices.NeededServices; | using ApplicationLayer.Services.AuthServices.NeededServices; | ||||||
| using Domains.Users; | using Domains.Users; | ||||||
|  |  | ||||||
| namespace Infrastructure.Auth | namespace Infrastructure.Auth; | ||||||
| { |  | ||||||
| public class TokenGenerator(TokenGeneratorOptions options, JwtSecurityTokenHandler tokenHandler, IDateTimeProvider dateTimeProvider) | public class TokenGenerator(TokenGeneratorOptions options, JwtSecurityTokenHandler tokenHandler, IDateTimeProvider dateTimeProvider) | ||||||
|     : ITokenGenerator |     : ITokenGenerator | ||||||
| { | { | ||||||
| @@ -27,4 +27,3 @@ namespace Infrastructure.Auth | |||||||
|         return tokenHandler.WriteToken(token); |         return tokenHandler.WriteToken(token); | ||||||
|     } |     } | ||||||
| } | } | ||||||
| } |  | ||||||
|   | |||||||
| @@ -1,6 +1,5 @@ | |||||||
| using Microsoft.IdentityModel.Tokens; | using Microsoft.IdentityModel.Tokens; | ||||||
|  |  | ||||||
| namespace Infrastructure.Auth | namespace Infrastructure.Auth; | ||||||
| { |  | ||||||
| public record TokenGeneratorOptions(string Issuer, string Audience, TimeSpan ValidTime, SigningCredentials Credentials); | public record TokenGeneratorOptions(string Issuer, string Audience, TimeSpan ValidTime, SigningCredentials Credentials); | ||||||
| } |  | ||||||
|   | |||||||
| @@ -3,8 +3,8 @@ using ApplicationLayer.Services.AuthServices.Requests; | |||||||
| using AutoMapper; | using AutoMapper; | ||||||
| using Domains.ApplicantDomain; | using Domains.ApplicantDomain; | ||||||
|  |  | ||||||
| namespace Infrastructure.Automapper.Profiles | namespace Infrastructure.Automapper.Profiles; | ||||||
| { |  | ||||||
| public class ApplicantProfile : Profile | public class ApplicantProfile : Profile | ||||||
| { | { | ||||||
|     public ApplicantProfile() |     public ApplicantProfile() | ||||||
| @@ -17,4 +17,3 @@ namespace Infrastructure.Automapper.Profiles | |||||||
|                     opts => opts.MapFrom(r => r.ApplicantName)); |                     opts => opts.MapFrom(r => r.ApplicantName)); | ||||||
|         } |         } | ||||||
| } | } | ||||||
| } |  | ||||||
|   | |||||||
| @@ -2,8 +2,8 @@ | |||||||
| using AutoMapper; | using AutoMapper; | ||||||
| using Domains.ApplicantDomain; | using Domains.ApplicantDomain; | ||||||
|  |  | ||||||
| namespace Infrastructure.Automapper.Profiles | namespace Infrastructure.Automapper.Profiles; | ||||||
| { |  | ||||||
| public class PlaceOfWorkProfile : Profile | public class PlaceOfWorkProfile : Profile | ||||||
| { | { | ||||||
|     public PlaceOfWorkProfile() |     public PlaceOfWorkProfile() | ||||||
| @@ -13,4 +13,3 @@ namespace Infrastructure.Automapper.Profiles | |||||||
|                     opts => opts.UseDestinationValue()); |                     opts => opts.UseDestinationValue()); | ||||||
|         } |         } | ||||||
| } | } | ||||||
| } |  | ||||||
|   | |||||||
| @@ -2,8 +2,8 @@ | |||||||
| using AutoMapper; | using AutoMapper; | ||||||
| using Domains.Users; | using Domains.Users; | ||||||
|  |  | ||||||
| namespace Infrastructure.Automapper.Profiles | namespace Infrastructure.Automapper.Profiles; | ||||||
| { |  | ||||||
| public class UserProfile : Profile | public class UserProfile : Profile | ||||||
| { | { | ||||||
|     public UserProfile() |     public UserProfile() | ||||||
| @@ -13,4 +13,3 @@ namespace Infrastructure.Automapper.Profiles | |||||||
|                     opts => opts.Ignore()); |                     opts => opts.Ignore()); | ||||||
|         } |         } | ||||||
| } | } | ||||||
| } |  | ||||||
|   | |||||||
| @@ -3,8 +3,8 @@ using ApplicationLayer.Services.VisaApplications.Requests; | |||||||
| using AutoMapper; | using AutoMapper; | ||||||
| using Domains.VisaApplicationDomain; | using Domains.VisaApplicationDomain; | ||||||
|  |  | ||||||
| namespace Infrastructure.Automapper.Profiles | namespace Infrastructure.Automapper.Profiles; | ||||||
| { |  | ||||||
| public class VisaApplicationProfile : Profile | public class VisaApplicationProfile : Profile | ||||||
| { | { | ||||||
|     public VisaApplicationProfile() |     public VisaApplicationProfile() | ||||||
| @@ -22,4 +22,3 @@ namespace Infrastructure.Automapper.Profiles | |||||||
|                 opts => opts.Ignore()); |                 opts => opts.Ignore()); | ||||||
|         } |         } | ||||||
| } | } | ||||||
| } |  | ||||||
|   | |||||||
| @@ -1,10 +1,9 @@ | |||||||
| using ApplicationLayer.InfrastructureServicesInterfaces; | using ApplicationLayer.InfrastructureServicesInterfaces; | ||||||
|  |  | ||||||
| namespace Infrastructure.Common | namespace Infrastructure.Common; | ||||||
| { |  | ||||||
| /// Implements <see cref="IDateTimeProvider"/> | /// Implements <see cref="IDateTimeProvider"/> | ||||||
| public class DateTimeProvider : IDateTimeProvider | public class DateTimeProvider : IDateTimeProvider | ||||||
| { | { | ||||||
|     DateTime IDateTimeProvider.Now() => DateTime.Now; |     DateTime IDateTimeProvider.Now() => DateTime.Now; | ||||||
| } | } | ||||||
| } |  | ||||||
|   | |||||||
| @@ -2,8 +2,8 @@ | |||||||
| using ApplicationLayer.InfrastructureServicesInterfaces; | using ApplicationLayer.InfrastructureServicesInterfaces; | ||||||
| using Microsoft.AspNetCore.Http; | using Microsoft.AspNetCore.Http; | ||||||
|  |  | ||||||
| namespace Infrastructure.Common | namespace Infrastructure.Common; | ||||||
| { |  | ||||||
| public class UserIdProvider(IHttpContextAccessor contextAccessor) : IUserIdProvider | public class UserIdProvider(IHttpContextAccessor contextAccessor) : IUserIdProvider | ||||||
| { | { | ||||||
|     Guid IUserIdProvider.GetUserId() |     Guid IUserIdProvider.GetUserId() | ||||||
| @@ -16,4 +16,3 @@ namespace Infrastructure.Common | |||||||
|             return Guid.Parse(claim.Value); |             return Guid.Parse(claim.Value); | ||||||
|         } |         } | ||||||
| } | } | ||||||
| } |  | ||||||
|   | |||||||
| @@ -1,6 +1,5 @@ | |||||||
| using ApplicationLayer.Services.GeneralExceptions; | using ApplicationLayer.Services.GeneralExceptions; | ||||||
|  |  | ||||||
| namespace Infrastructure.Database.Applicants.Repositories.Exceptions | namespace Infrastructure.Database.Applicants.Repositories.Exceptions; | ||||||
| { |  | ||||||
| public class ApplicantNotFoundByUserIdException() : EntityNotFoundException("Applicant not found."); | public class ApplicantNotFoundByUserIdException() : EntityNotFoundException("Applicant not found."); | ||||||
| } |  | ||||||
|   | |||||||
| @@ -3,8 +3,8 @@ using Domains.Users; | |||||||
| using Microsoft.EntityFrameworkCore; | using Microsoft.EntityFrameworkCore; | ||||||
| using Microsoft.EntityFrameworkCore.Metadata.Builders; | using Microsoft.EntityFrameworkCore.Metadata.Builders; | ||||||
|  |  | ||||||
| namespace Infrastructure.Database.Users.Configuration | namespace Infrastructure.Database.Users.Configuration; | ||||||
| { |  | ||||||
| public class UserConfiguration : IEntityTypeConfiguration<User> | public class UserConfiguration : IEntityTypeConfiguration<User> | ||||||
| { | { | ||||||
|     public void Configure(EntityTypeBuilder<User> entity) |     public void Configure(EntityTypeBuilder<User> entity) | ||||||
| @@ -20,4 +20,3 @@ namespace Infrastructure.Database.Users.Configuration | |||||||
|                 .HasMaxLength(ConfigurationConstraints.PasswordLength); |                 .HasMaxLength(ConfigurationConstraints.PasswordLength); | ||||||
|         } |         } | ||||||
| } | } | ||||||
| } |  | ||||||
|   | |||||||
| @@ -3,8 +3,8 @@ using Domains.Users; | |||||||
| using Infrastructure.Database.Generic; | using Infrastructure.Database.Generic; | ||||||
| using Microsoft.EntityFrameworkCore; | using Microsoft.EntityFrameworkCore; | ||||||
|  |  | ||||||
| namespace Infrastructure.Database.Users.Repositories | namespace Infrastructure.Database.Users.Repositories; | ||||||
| { |  | ||||||
| /// <inheritdoc cref="IUsersRepository"/> | /// <inheritdoc cref="IUsersRepository"/> | ||||||
| public class UsersRepository(IGenericReader reader, IGenericWriter writer) | public class UsersRepository(IGenericReader reader, IGenericWriter writer) | ||||||
|     : GenericRepository<User>(reader, writer), IUsersRepository |     : GenericRepository<User>(reader, writer), IUsersRepository | ||||||
| @@ -19,4 +19,3 @@ namespace Infrastructure.Database.Users.Repositories | |||||||
|             return await LoadDomain().Where(u => u.Role == role).ToListAsync(cancellationToken); |             return await LoadDomain().Where(u => u.Role == role).ToListAsync(cancellationToken); | ||||||
|         } |         } | ||||||
| } | } | ||||||
| } |  | ||||||
|   | |||||||
| @@ -2,8 +2,8 @@ | |||||||
| using Domains.VisaApplicationDomain; | using Domains.VisaApplicationDomain; | ||||||
| using Microsoft.EntityFrameworkCore.Metadata.Builders; | using Microsoft.EntityFrameworkCore.Metadata.Builders; | ||||||
|  |  | ||||||
| namespace Infrastructure.Database.VisaApplications.Configuration | namespace Infrastructure.Database.VisaApplications.Configuration; | ||||||
| { |  | ||||||
| public static class PastVisitConfiguration<T> where T : class, IEntity | public static class PastVisitConfiguration<T> where T : class, IEntity | ||||||
| { | { | ||||||
|     public static void Configure(OwnedNavigationBuilder<T, PastVisit> entity) |     public static void Configure(OwnedNavigationBuilder<T, PastVisit> entity) | ||||||
| @@ -13,4 +13,3 @@ namespace Infrastructure.Database.VisaApplications.Configuration | |||||||
|                 .HasMaxLength(ConfigurationConstraints.CountryNameLength); |                 .HasMaxLength(ConfigurationConstraints.CountryNameLength); | ||||||
|         } |         } | ||||||
| } | } | ||||||
| } |  | ||||||
|   | |||||||
| @@ -1,7 +1,6 @@ | |||||||
| using ApplicationLayer.Services.GeneralExceptions; | using ApplicationLayer.Services.GeneralExceptions; | ||||||
|  |  | ||||||
| namespace Infrastructure.Database.VisaApplications.Repositories.Exceptions | namespace Infrastructure.Database.VisaApplications.Repositories.Exceptions; | ||||||
| { |  | ||||||
| public class ApplicationNotFoundByApplicantAndApplicationIdException(Guid applicationId) | public class ApplicationNotFoundByApplicantAndApplicationIdException(Guid applicationId) | ||||||
|     : EntityNotFoundException($"Application with id {applicationId} not found for authenticated user"); |     : EntityNotFoundException($"Application with id {applicationId} not found for authenticated user"); | ||||||
| } |  | ||||||
|   | |||||||
| @@ -2,8 +2,8 @@ | |||||||
| using Microsoft.OpenApi.Models; | using Microsoft.OpenApi.Models; | ||||||
| using Swashbuckle.AspNetCore.SwaggerGen; | using Swashbuckle.AspNetCore.SwaggerGen; | ||||||
|  |  | ||||||
| namespace SchengenVisaApi.Common | namespace SchengenVisaApi.Common; | ||||||
| { |  | ||||||
| /// Adds auth for swagger | /// Adds auth for swagger | ||||||
| public class ConfigureSwaggerOptions : IConfigureOptions<SwaggerGenOptions> | public class ConfigureSwaggerOptions : IConfigureOptions<SwaggerGenOptions> | ||||||
| { | { | ||||||
| @@ -35,4 +35,3 @@ namespace SchengenVisaApi.Common | |||||||
|             }); |             }); | ||||||
|         } |         } | ||||||
| } | } | ||||||
| } |  | ||||||
|   | |||||||
| @@ -1,5 +1,4 @@ | |||||||
| namespace SchengenVisaApi.Common | namespace SchengenVisaApi.Common; | ||||||
| { |  | ||||||
| #pragma warning disable CS1591 | #pragma warning disable CS1591 | ||||||
| public static class PolicyConstants | public static class PolicyConstants | ||||||
| { | { | ||||||
| @@ -8,5 +7,3 @@ | |||||||
|     public const string ApprovingAuthorityPolicy = "ApprovingAuthorityPolicy"; |     public const string ApprovingAuthorityPolicy = "ApprovingAuthorityPolicy"; | ||||||
| } | } | ||||||
| #pragma warning enable CS1591 | #pragma warning enable CS1591 | ||||||
|  |  | ||||||
| } |  | ||||||
|   | |||||||
| @@ -10,8 +10,8 @@ using Microsoft.AspNetCore.Authorization; | |||||||
| using Microsoft.AspNetCore.Mvc; | using Microsoft.AspNetCore.Mvc; | ||||||
| using SchengenVisaApi.Common; | using SchengenVisaApi.Common; | ||||||
|  |  | ||||||
| namespace SchengenVisaApi.Controllers | namespace SchengenVisaApi.Controllers; | ||||||
| { |  | ||||||
| ///<summary> Controller for user-auth and registration </summary> | ///<summary> Controller for user-auth and registration </summary> | ||||||
| [ApiController] | [ApiController] | ||||||
| [Route("users")] | [Route("users")] | ||||||
| @@ -112,4 +112,3 @@ namespace SchengenVisaApi.Controllers | |||||||
|         return Ok(); |         return Ok(); | ||||||
|     } |     } | ||||||
| } | } | ||||||
| } |  | ||||||
|   | |||||||
| @@ -6,8 +6,8 @@ using FluentValidation; | |||||||
| using Microsoft.AspNetCore.Mvc; | using Microsoft.AspNetCore.Mvc; | ||||||
| using Microsoft.AspNetCore.Mvc.Filters; | using Microsoft.AspNetCore.Mvc.Filters; | ||||||
|  |  | ||||||
| namespace SchengenVisaApi.ExceptionFilters | namespace SchengenVisaApi.ExceptionFilters; | ||||||
| { |  | ||||||
| /// Handles <see cref="ApiException"/> | /// Handles <see cref="ApiException"/> | ||||||
| public class GlobalExceptionsFilter : IAsyncExceptionFilter | public class GlobalExceptionsFilter : IAsyncExceptionFilter | ||||||
| { | { | ||||||
| @@ -69,4 +69,3 @@ namespace SchengenVisaApi.ExceptionFilters | |||||||
|         context.ExceptionHandled = true; |         context.ExceptionHandled = true; | ||||||
|     } |     } | ||||||
| } | } | ||||||
| } |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user