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