Added status to application, response models of application for applicant and authority
This commit is contained in:
		| @@ -6,8 +6,12 @@ namespace ApplicationLayer.Services.VisaApplications.Handlers; | ||||
|  | ||||
| public interface IVisaApplicationRequestsHandler | ||||
| { | ||||
|     Task<List<VisaApplication>> Get(CancellationToken cancellationToken); | ||||
|     Task<List<VisaApplicationModelForApplicant>> GetForApplicant(Guid userId, CancellationToken cancellationToken); | ||||
|     /// Returns all applications for approving authorities | ||||
|     Task<List<VisaApplicationModelForAuthority>> GetAllAsync(CancellationToken cancellationToken); | ||||
|  | ||||
|     /// Returns all applications of one applicant | ||||
|     Task<List<VisaApplicationModelForApplicant>> GetForApplicantAsync(Guid userId, CancellationToken cancellationToken); | ||||
|  | ||||
|     /// Creates application for applicant with specific user identifier | ||||
|     Task HandleCreateRequest(Guid userId, VisaApplicationCreateRequest request, CancellationToken cancellationToken); | ||||
| } | ||||
|   | ||||
| @@ -1,8 +1,10 @@ | ||||
| using ApplicationLayer.InfrastructureServicesInterfaces; | ||||
| using ApplicationLayer.Services.Applicants.Models; | ||||
| using ApplicationLayer.Services.Applicants.NeededServices; | ||||
| using ApplicationLayer.Services.VisaApplications.Models; | ||||
| using ApplicationLayer.Services.VisaApplications.NeededServices; | ||||
| using ApplicationLayer.Services.VisaApplications.Requests; | ||||
| using Domains.ApplicantDomain; | ||||
| using Domains.VisaApplicationDomain; | ||||
|  | ||||
| namespace ApplicationLayer.Services.VisaApplications.Handlers; | ||||
| @@ -13,9 +15,57 @@ public class VisaApplicationRequestsHandler( | ||||
|     IApplicantsRepository applicants, | ||||
|     IUnitOfWork unitOfWork) : IVisaApplicationRequestsHandler | ||||
| { | ||||
|     public async Task<List<VisaApplication>> Get(CancellationToken cancellationToken) => await applications.GetAllAsync(cancellationToken); | ||||
|     async Task<List<VisaApplicationModelForAuthority>> IVisaApplicationRequestsHandler.GetAllAsync(CancellationToken cancellationToken) | ||||
|     { | ||||
|         var applicationsList = await applications.GetAllAsync(cancellationToken); | ||||
|  | ||||
|     public async Task<List<VisaApplicationModelForApplicant>> GetForApplicant(Guid userId, CancellationToken cancellationToken) | ||||
|         //todo mapper | ||||
|         var applicationModels = applicationsList | ||||
|             .Select(a => MapVisaApplicationToModelForAuthorities(a, cancellationToken).Result) | ||||
|             .ToList(); | ||||
|         return applicationModels; | ||||
|     } | ||||
|  | ||||
|     private async Task<VisaApplicationModelForAuthority> MapVisaApplicationToModelForAuthorities(VisaApplication visaApplication, | ||||
|         CancellationToken cancellationToken) | ||||
|     { | ||||
|         var applicant = await applicants.GetByIdAsync(visaApplication.ApplicantId, cancellationToken); | ||||
|         var applicantModel = new ApplicantModel | ||||
|         { | ||||
|             Citizenship = applicant.Citizenship, | ||||
|             Gender = applicant.Gender, | ||||
|             Name = applicant.Name, | ||||
|             Passport = applicant.Passport, | ||||
|             BirthDate = applicant.BirthDate, | ||||
|             FatherName = applicant.FatherName, | ||||
|             JobTitle = applicant.JobTitle, | ||||
|             MaritalStatus = applicant.MaritalStatus, | ||||
|             MotherName = applicant.MotherName, | ||||
|             CitizenshipByBirth = applicant.CitizenshipByBirth, | ||||
|             CityOfBirth = applicant.CityOfBirth, | ||||
|             CountryOfBirth = applicant.CountryOfBirth, | ||||
|             IsNonResident = applicant.IsNonResident, | ||||
|             PlaceOfWork = applicant.PlaceOfWork, | ||||
|         }; | ||||
|         return new VisaApplicationModelForAuthority | ||||
|         { | ||||
|             PastVisits = visaApplication.PastVisits, | ||||
|             ReentryPermit = visaApplication.ReentryPermit, | ||||
|             VisaCategory = visaApplication.VisaCategory, | ||||
|             PermissionToDestCountry = visaApplication.PermissionToDestCountry, | ||||
|             DestinationCountry = visaApplication.DestinationCountry, | ||||
|             PastVisas = visaApplication.PastVisas, | ||||
|             RequestDate = visaApplication.RequestDate, | ||||
|             ValidDaysRequested = visaApplication.ValidDaysRequested, | ||||
|             RequestedNumberOfEntries = visaApplication.RequestedNumberOfEntries, | ||||
|             ForGroup = visaApplication.ForGroup, | ||||
|             Applicant = applicantModel, | ||||
|             Id = visaApplication.Id, | ||||
|             Status = visaApplication.Status | ||||
|         }; | ||||
|     } | ||||
|  | ||||
|     public async Task<List<VisaApplicationModelForApplicant>> GetForApplicantAsync(Guid userId, CancellationToken cancellationToken) | ||||
|     { | ||||
|         //todo mapper | ||||
|         var applicantId = await applicants.GetApplicantIdByUserId(userId, cancellationToken); | ||||
| @@ -31,8 +81,11 @@ public class VisaApplicationRequestsHandler( | ||||
|                 ForGroup = va.ForGroup, | ||||
|                 PastVisas = va.PastVisas, | ||||
|                 RequestDate = va.RequestDate, | ||||
|                 PastVisits = va.PastVisits | ||||
|             }).ToList(); | ||||
|                 PastVisits = va.PastVisits, | ||||
|                 Id = va.Id, | ||||
|                 Status = va.Status | ||||
|             }) | ||||
|             .ToList(); | ||||
|     } | ||||
|  | ||||
|     public async Task HandleCreateRequest(Guid userId, VisaApplicationCreateRequest request, CancellationToken cancellationToken) | ||||
| @@ -53,7 +106,8 @@ public class VisaApplicationRequestsHandler( | ||||
|             PastVisas = request.PastVisas.ToList(), | ||||
|             PastVisits = request.PastVisits.ToList(), | ||||
|             ForGroup = request.IsForGroup, | ||||
|             RequestDate = DateTime.Today | ||||
|             RequestDate = DateTime.Today, | ||||
|             Status = ApplicationStatus.Pending | ||||
|         }; | ||||
|  | ||||
|         await applications.AddAsync(visaApplication, cancellationToken); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user