Added status to application, response models of application for applicant and authority

This commit is contained in:
2024-08-22 11:06:45 +03:00
parent 843d64487c
commit 99625c957e
10 changed files with 185 additions and 40 deletions

View File

@@ -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);
}

View File

@@ -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);