Page for seeing full application
This commit is contained in:
		| @@ -6,10 +6,16 @@ namespace ApplicationLayer.Services.VisaApplications.Handlers; | ||||
| public interface IVisaApplicationRequestsHandler | ||||
| { | ||||
|     /// Returns all applications for approving authorities | ||||
|     Task<List<VisaApplicationModelForAuthority>> GetPendingAsync(CancellationToken cancellationToken); | ||||
|     Task<List<VisaApplicationPreview>> GetPendingAsync(CancellationToken cancellationToken); | ||||
|  | ||||
|     /// Returns all applications of one applicant | ||||
|     Task<List<VisaApplicationModelForApplicant>> GetForApplicantAsync(CancellationToken cancellationToken); | ||||
|     Task<List<VisaApplicationPreview>> GetForApplicantAsync(CancellationToken cancellationToken); | ||||
|  | ||||
|     /// Returns one application with specific id | ||||
|     Task<VisaApplicationModel> GetApplicationForApplicantAsync(Guid id, CancellationToken cancellationToken); | ||||
|  | ||||
|     /// Returns one application with specific id | ||||
|     Task<VisaApplicationModel> GetApplicationForAuthorityAsync(Guid id, CancellationToken cancellationToken); | ||||
|  | ||||
|     /// Creates application for applicant with specific user identifier | ||||
|     Task HandleCreateRequestAsync(VisaApplicationCreateRequest request, CancellationToken cancellationToken); | ||||
|   | ||||
| @@ -19,24 +19,41 @@ public class VisaApplicationRequestsHandler( | ||||
|     IDateTimeProvider dateTimeProvider, | ||||
|     IUserIdProvider userIdProvider) : IVisaApplicationRequestsHandler | ||||
| { | ||||
|     async Task<List<VisaApplicationModelForAuthority>> IVisaApplicationRequestsHandler.GetPendingAsync(CancellationToken cancellationToken) | ||||
|     async Task<List<VisaApplicationPreview>> IVisaApplicationRequestsHandler.GetPendingAsync(CancellationToken cancellationToken) | ||||
|     { | ||||
|         var applicationsList = await applications.GetPendingApplicationsAsync(cancellationToken); | ||||
|  | ||||
|         var applicationModels = applicationsList | ||||
|             .Select(a => MapVisaApplicationToModelForAuthorities(a, cancellationToken).Result) | ||||
|             .ToList(); | ||||
|         var applicationModels = mapper.Map<List<VisaApplicationPreview>>(applicationsList); | ||||
|         return applicationModels; | ||||
|     } | ||||
|  | ||||
|     public async Task<List<VisaApplicationModelForApplicant>> GetForApplicantAsync(CancellationToken cancellationToken) | ||||
|     async Task<List<VisaApplicationPreview>> IVisaApplicationRequestsHandler.GetForApplicantAsync(CancellationToken cancellationToken) | ||||
|     { | ||||
|         var applicantId = await applicants.GetApplicantIdByUserId(userIdProvider.GetUserId(), cancellationToken); | ||||
|         var visaApplications = await applications.GetOfApplicantAsync(applicantId, cancellationToken); | ||||
|         return mapper.Map<List<VisaApplicationModelForApplicant>>(visaApplications); | ||||
|         return mapper.Map<List<VisaApplicationPreview>>(visaApplications); | ||||
|     } | ||||
|  | ||||
|     public async Task HandleCreateRequestAsync(VisaApplicationCreateRequest request, CancellationToken cancellationToken) | ||||
|     async Task<VisaApplicationModel> IVisaApplicationRequestsHandler.GetApplicationForApplicantAsync(Guid id, CancellationToken cancellationToken) | ||||
|     { | ||||
|         var applicant = await applicants.FindByUserIdAsync(userIdProvider.GetUserId(), cancellationToken); | ||||
|         var application = await applications.GetByApplicantAndApplicationIdAsync(applicant.Id, id, cancellationToken); | ||||
|         var mapped = mapper.Map<VisaApplicationModel>(application); | ||||
|         mapped.Applicant = mapper.Map<ApplicantModel>(applicant); | ||||
|         return mapped; | ||||
|     } | ||||
|  | ||||
|     async Task<VisaApplicationModel> IVisaApplicationRequestsHandler.GetApplicationForAuthorityAsync(Guid id, CancellationToken cancellationToken) | ||||
|     { | ||||
|         var pending = await applications.GetPendingApplicationsAsync(cancellationToken); | ||||
|         var application = pending.SingleOrDefault(a => a.Id == id) ?? throw new ApplicationAlreadyProcessedException(); | ||||
|         var mapped = mapper.Map<VisaApplicationModel>(application); | ||||
|         var applicant = await applicants.GetByIdAsync(application.ApplicantId, cancellationToken); | ||||
|         mapped.Applicant = mapper.Map<ApplicantModel>(applicant); | ||||
|         return mapped; | ||||
|     } | ||||
|  | ||||
|     async Task IVisaApplicationRequestsHandler.HandleCreateRequestAsync(VisaApplicationCreateRequest request, CancellationToken cancellationToken) | ||||
|     { | ||||
|         var applicant = await applicants.FindByUserIdAsync(userIdProvider.GetUserId(), cancellationToken); | ||||
|  | ||||
| @@ -87,16 +104,4 @@ public class VisaApplicationRequestsHandler( | ||||
|  | ||||
|         await unitOfWork.SaveAsync(cancellationToken); | ||||
|     } | ||||
|  | ||||
|     private async Task<VisaApplicationModelForAuthority> MapVisaApplicationToModelForAuthorities(VisaApplication visaApplication, | ||||
|         CancellationToken cancellationToken) | ||||
|     { | ||||
|         var applicant = await applicants.GetByIdAsync(visaApplication.ApplicantId, cancellationToken); | ||||
|         var applicantModel = mapper.Map<ApplicantModel>(applicant); | ||||
|  | ||||
|         var model = mapper.Map<VisaApplicationModelForAuthority>(visaApplication); | ||||
|         model.Applicant = applicantModel; | ||||
|  | ||||
|         return model; | ||||
|     } | ||||
| } | ||||
|   | ||||
| @@ -5,7 +5,7 @@ using Domains.VisaApplicationDomain; | ||||
| namespace ApplicationLayer.Services.VisaApplications.Models; | ||||
| 
 | ||||
| /// Model of <see cref="VisaApplication" /> with applicant property | ||||
| public class VisaApplicationModelForAuthority | ||||
| public class VisaApplicationModel | ||||
| { | ||||
|     /// <inheritdoc cref="VisaApplication.Id" /> | ||||
|     [Required] | ||||
| @@ -4,7 +4,7 @@ using Domains.VisaApplicationDomain; | ||||
| namespace ApplicationLayer.Services.VisaApplications.Models; | ||||
| 
 | ||||
| /// Model of <see cref="VisaApplication" /> | ||||
| public class VisaApplicationModelForApplicant | ||||
| public class VisaApplicationPreview | ||||
| { | ||||
|     /// <inheritdoc cref="VisaApplication.Id" /> | ||||
|     [Required] | ||||
| @@ -14,36 +14,14 @@ public class VisaApplicationModelForApplicant | ||||
|     [Required] | ||||
|     public ApplicationStatus Status { get; set; } | ||||
| 
 | ||||
|     /// <inheritdoc cref="VisaApplication.ReentryPermit" /> | ||||
|     public ReentryPermitModel? ReentryPermit { get; set; } | ||||
| 
 | ||||
|     /// <inheritdoc cref="VisaApplication.DestinationCountry" /> | ||||
|     [Required] | ||||
|     public string DestinationCountry { get; set; } = null!; | ||||
| 
 | ||||
|     /// <inheritdoc cref="VisaApplication.PastVisas" /> | ||||
|     [Required] | ||||
|     public List<PastVisaModel> PastVisas { get; set; } = null!; | ||||
| 
 | ||||
|     /// <inheritdoc cref="VisaApplication.PermissionToDestCountry" /> | ||||
|     public PermissionToDestCountryModel? PermissionToDestCountry { get; set; } | ||||
| 
 | ||||
|     /// <inheritdoc cref="VisaApplication.PastVisits" /> | ||||
|     [Required] | ||||
|     public List<PastVisitModel> PastVisits { get; set; } = null!; | ||||
| 
 | ||||
|     /// <inheritdoc cref="VisaApplication.VisaCategory" /> | ||||
|     [Required] | ||||
|     public VisaCategory VisaCategory { get; set; } | ||||
| 
 | ||||
|     /// <inheritdoc cref="VisaApplication.ForGroup" /> | ||||
|     [Required] | ||||
|     public bool ForGroup { get; set; } | ||||
| 
 | ||||
|     /// <inheritdoc cref="VisaApplication.RequestedNumberOfEntries" /> | ||||
|     [Required] | ||||
|     public RequestedNumberOfEntries RequestedNumberOfEntries { get; set; } | ||||
| 
 | ||||
|     /// <inheritdoc cref="VisaApplication.RequestDate" /> | ||||
|     [Required] | ||||
|     public DateTime RequestDate { get; set; } | ||||
		Reference in New Issue
	
	Block a user