public async Task <CreateApplicantCommandResponse> Handle(CreateApplicantCommand request, CancellationToken cancellationToken) { _logger.LogInformation($"Create new applicant with name {request.Name} and family name {request.FamilyName}"); var createApplicantCommandResponse = new CreateApplicantCommandResponse(); var validator = new CreateApplicantCommandValidator(_applicantRepository); var validationResult = await validator.ValidateAsync(request); if (validationResult.Errors.Count > 0) { createApplicantCommandResponse.Success = false; createApplicantCommandResponse.ValidationErrors = new List <string>(); foreach (var error in validationResult.Errors) { createApplicantCommandResponse.ValidationErrors.Add(error.ErrorMessage); } _logger.LogError($"Failed to create new applicant with name {request.Name} and family name {request.FamilyName}", validationResult.Errors); } if (createApplicantCommandResponse.Success) { var applicant = _mapper.Map <Applicant>(request); applicant = await _applicantRepository.AddAsync(applicant); createApplicantCommandResponse.Applicant = _mapper.Map <CreateApplicantDto>(applicant); } return(createApplicantCommandResponse); }
public async Task <ApplicantModel> Create(ApplicantModel applicantModel) { var mappedEntity = ObjectMapper.Mapper.Map <Applicant>(applicantModel); if (mappedEntity == null) { throw new Exception($"Entity could not be mapped."); } var newEntity = await _applicantRepository.AddAsync(mappedEntity); _logger.LogInformation($"Entity successfully added - ApplicantService"); var newMappedEntity = ObjectMapper.Mapper.Map <ApplicantModel>(newEntity); return(newMappedEntity); }
public async Task <ResponseModel> SaveAsync(Applicant applicant) { try { if (applicant == null) { return new ResponseModel { Success = false, Message = "Invalid applicant", StatusCode = 400 } } ; var validationResult = new Validator.ApplicantValidator().Validate(applicant); if (!validationResult.IsValid) { return new ResponseModel { Success = false, Message = validationResult.ToString(" Error:"), StatusCode = 400 } } ; await applicantRepository.AddAsync(applicant); await unitOfWork.CompleteAsync(); return(new ResponseModel { Success = true, Message = "Successfully added new applicant", StatusCode = 201 }); } catch (Exception ex) { // Do some logging stuff return(new ResponseModel { Message = $"An error occurred when saving the applicant: {ex.Message}", Success = false }); } }