public IActionResult Post([FromRoute] string enrollmentNumber, [FromBody] Form obj)
        {
            FinanceData financeData = _financeDataService.List().SingleOrDefault(x => x.Enrollment.ExternalId == enrollmentNumber);

            if (financeData == null)
            {
                return(new BadRequestObjectResult(new { messages = new List <string> {
                                                            onboarding.Resources.Messages.EnrollmentLinkIsNotValid
                                                        } }));
            }

            if (!financeData.Enrollment.IsDeadlineValid())
            {
                return(new BadRequestObjectResult(new { messages = new List <string> {
                                                            onboarding.Resources.Messages.OnboardingExpired
                                                        } }));
            }

            if (!financeData.Editable)
            {
                return(new BadRequestObjectResult(new { messages = new List <string> {
                                                            onboarding.Resources.Messages.EnrollmentInReview
                                                        } }));
            }

            FinanceDataValidator validator = new FinanceDataValidator(_context);

            FluentValidation.Results.ValidationResult results = validator.Validate(financeData);
            Hashtable errors = FormatErrors(results);

            FinanceDataMessagesValidator messagesValidator = new FinanceDataMessagesValidator(_context);
            List <string> messages = messagesValidator.Validate(financeData).Errors.Select(x => x.ErrorMessage).Distinct().ToList();

            FinanceDataStatus financeDataStatus = new FinanceDataStatus(validator, financeData, messagesValidator);

            if (financeDataStatus.GetStatus() == "valid")
            {
                _enrollmentStepService.Update(enrollmentNumber, "FinanceDatas");
            }

            return(new OkObjectResult(new
            {
                messages,
                errors,
                data = _mapper.Map <Record>(financeData)
            }));
        }
示例#2
0
 public FinanceDataStatus(FinanceDataValidator validator, FinanceData entity, FinanceDataMessagesValidator financeDataMessageValidator) : base(validator, entity)
 {
     _financeDataMessageValidator = financeDataMessageValidator;
 }