Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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
                });
            }
        }