public async Task <IActionResult> AddOrganisationStandard(RegisterAddOrganisationStandardViewModel viewModel) { if (!ModelState.IsValid) { var viewModelInvalid = await ConstructOrganisationAndStandardDetails(viewModel); return(View(viewModelInvalid)); } var addOrganisationStandardRequest = new CreateEpaOrganisationStandardRequest { OrganisationId = viewModel.OrganisationId, StandardCode = viewModel.StandardId, EffectiveFrom = viewModel.EffectiveFrom, EffectiveTo = viewModel.EffectiveTo, ContactId = viewModel.ContactId.ToString(), DeliveryAreas = viewModel.DeliveryAreas, Comments = viewModel.Comments, DeliveryAreasComments = viewModel.DeliveryAreasComments }; var organisationStandardId = await _apiClient.CreateEpaOrganisationStandard(addOrganisationStandardRequest); return(Redirect($"/register/view-standard/{organisationStandardId}")); }
public void Setup() { _registerRepository = new Mock <IRegisterRepository>(); _cleanserService = new Mock <ISpecialCharacterCleanserService>(); _validator = new Mock <IEpaOrganisationValidator>(); _logger = new Mock <ILogger <CreateEpaOrganisationStandardHandler> >(); _organisationId = "EPA999"; _requestNoIssuesId = 1; _requestNoIssues = BuildRequest(_organisationId, 123321, new List <int> { 1 }); _expectedOrganisationStandardNoIssues = BuildOrganisationStandard(_requestNoIssues, _requestNoIssuesId); _registerRepository.Setup(r => r.CreateEpaOrganisationStandard(It.IsAny <EpaOrganisationStandard>(), new List <int> { 1 })) .Returns(Task.FromResult(_expectedOrganisationStandardNoIssues.Id.ToString())); _validator.Setup(v => v.ValidatorCreateEpaOrganisationStandardRequest(_requestNoIssues)).Returns(new ValidationResponse()); _cleanserService.Setup(c => c.CleanseStringForSpecialCharacters(It.IsAny <string>())) .Returns((string s) => s); _createEpaOrganisationStandardHandler = new CreateEpaOrganisationStandardHandler(_registerRepository.Object, _validator.Object, _logger.Object, _cleanserService.Object); }
public async Task <IActionResult> CreateOrganisationStandard([FromBody] CreateEpaOrganisationStandardRequest request) { try { _logger.LogInformation("Creating new Organisation Standard"); var result = await _mediator.Send(request); return(Ok(new EpaoStandardResponse(result))); } catch (NotFound ex) { _logger.LogError($@"Record is not available for organisation / standard: [{request.OrganisationId}, {request.StandardCode}]"); return(NotFound(new EpaoStandardResponse(ex.Message))); } catch (AlreadyExistsException ex) { _logger.LogError($@"Record already exists for organisation/standard [{request.OrganisationId}, {request.StandardCode}]"); return(Conflict(new EpaoStandardResponse(ex.Message))); } catch (BadRequestException ex) { _logger.LogError(ex.Message); return(BadRequest(new EpaoStandardResponse(ex.Message))); } catch (Exception ex) { _logger.LogError($@"Bad request, Message: [{ex.Message}]"); return(BadRequest()); } }
public async Task <string> CreateEpaOrganisationStandard(CreateEpaOrganisationStandardRequest request) { var result = await Post <CreateEpaOrganisationStandardRequest, EpaoStandardResponse>("api/ao/assessment-organisations/standards", request); return(result.Details); }
private EpaOrganisationStandard BuildOrganisationStandard(CreateEpaOrganisationStandardRequest request, int id) { return(new EpaOrganisationStandard { Id = id, OrganisationId = request.OrganisationId, StandardCode = request.StandardCode, EffectiveFrom = request.EffectiveFrom, EffectiveTo = request.EffectiveTo, Comments = request.Comments }); }
public ValidationResponse ValidatorCreateEpaOrganisationStandardRequest( CreateEpaOrganisationStandardRequest request) { var validationResult = new ValidationResponse(); RunValidationCheckAndAppendAnyError("OrganisationId", CheckIfOrganisationNotFound(request.OrganisationId), validationResult, ValidationStatusCode.NotFound); if (!validationResult.IsValid) { return(validationResult); } // SV-658 / SV-659 Now that we have versions, this will check will include versions too. RunValidationCheckAndAppendAnyError("OrganisationId", CheckIfOrganisationStandardVersionAlreadyExists(request.OrganisationId, request.StandardCode, request.StandardVersions), validationResult, ValidationStatusCode.AlreadyExists); if (!validationResult.IsValid) { return(validationResult); } var standard = GetStandard(request.StandardCode.ToString()).Result; if (standard is null) { var standardErrorMessage = FormatErrorMessage(EpaOrganisationValidatorMessageName.StandardNotFound); RunValidationCheckAndAppendAnyError("StandardCode", standardErrorMessage, validationResult, ValidationStatusCode.NotFound); return(validationResult); } RunValidationCheckAndAppendAnyError("EffectiveFrom", CheckOrganisationStandardFromDateIsWithinStandardDateRanges(request.EffectiveFrom, standard.EffectiveFrom, standard.EffectiveTo, standard.LastDateStarts), validationResult, ValidationStatusCode.BadRequest); RunValidationCheckAndAppendAnyError("EffectiveFrom", CheckEffectiveFromIsOnOrBeforeEffectiveTo(request.EffectiveFrom, request.EffectiveTo), validationResult, ValidationStatusCode.BadRequest); RunValidationCheckAndAppendAnyError("EffectiveFrom", CheckOrganisationStandardEffectiveFromIsEntered(request.EffectiveFrom), validationResult, ValidationStatusCode.BadRequest); RunValidationCheckAndAppendAnyError("OrganisationId", CheckOrganisationIdIsPresentAndValid(request.OrganisationId), validationResult, ValidationStatusCode.BadRequest); RunValidationCheckAndAppendAnyError("ContactId", CheckIfContactIdIsValid(request.ContactId, request.OrganisationId), validationResult, ValidationStatusCode.BadRequest); // SV-658 Only validate areas if this is not a short application. if (string.IsNullOrWhiteSpace(request.StandardApplicationType) || !request.StandardApplicationType.Equals(Domain.Consts.StandardApplicationTypes.Version)) { RunValidationCheckAndAppendAnyError("DeliveryAreas", CheckIfDeliveryAreasAreValid(request.DeliveryAreas), validationResult, ValidationStatusCode.BadRequest); } RunValidationCheckAndAppendAnyError("EffectiveTo", CheckOrganisationStandardToDateIsWithinStandardDateRanges(request.EffectiveTo, standard.EffectiveFrom, standard.EffectiveTo), validationResult, ValidationStatusCode.BadRequest); return(validationResult); }
public void Arrange() { _mediator = new Mock <IMediator>(); _logger = new Mock <ILogger <RegisterController> >(); _request = new CreateEpaOrganisationStandardRequest { OrganisationId = "EPA999", StandardCode = 3, EffectiveFrom = DateTime.Now, Comments = "this is a comment" }; _mediator.Setup(m => m.Send(_request, new CancellationToken())).Throws <NotFound>(); _controller = new RegisterController(_mediator.Object, _logger.Object); _result = _controller.CreateOrganisationStandard(_request).Result; }
public ValidationResponse ValidatorCreateEpaOrganisationStandardRequest( CreateEpaOrganisationStandardRequest request) { var validationResult = new ValidationResponse(); RunValidationCheckAndAppendAnyError("OrganisationId", CheckIfOrganisationNotFound(request.OrganisationId), validationResult, ValidationStatusCode.NotFound); if (!validationResult.IsValid) { return(validationResult); } RunValidationCheckAndAppendAnyError("OrganisationId", CheckIfOrganisationStandardAlreadyExists(request.OrganisationId, request.StandardCode), validationResult, ValidationStatusCode.AlreadyExists); if (!validationResult.IsValid) { return(validationResult); } var standard = GetStandard(request.StandardCode).Result; if (standard is null) { var standardErrorMessage = FormatErrorMessage(EpaOrganisationValidatorMessageName.StandardNotFound); RunValidationCheckAndAppendAnyError("StandardCode", standardErrorMessage, validationResult, ValidationStatusCode.NotFound); return(validationResult); } RunValidationCheckAndAppendAnyError("EffectiveFrom", CheckOrganisationStandardFromDateIsWithinStandardDateRanges(request.EffectiveFrom, standard.StandardData.EffectiveFrom, standard.StandardData.EffectiveTo, standard.StandardData.LastDateForNewStarts), validationResult, ValidationStatusCode.BadRequest); RunValidationCheckAndAppendAnyError("EffectiveFrom", CheckEffectiveFromIsOnOrBeforeEffectiveTo(request.EffectiveFrom, request.EffectiveTo), validationResult, ValidationStatusCode.BadRequest); RunValidationCheckAndAppendAnyError("EffectiveFrom", CheckOrganisationStandardEffectiveFromIsEntered(request.EffectiveFrom), validationResult, ValidationStatusCode.BadRequest); RunValidationCheckAndAppendAnyError("OrganisationId", CheckOrganisationIdIsPresentAndValid(request.OrganisationId), validationResult, ValidationStatusCode.BadRequest); RunValidationCheckAndAppendAnyError("ContactId", CheckIfContactIdIsValid(request.ContactId, request.OrganisationId), validationResult, ValidationStatusCode.BadRequest); RunValidationCheckAndAppendAnyError("DeliveryAreas", CheckIfDeliveryAreasAreValid(request.DeliveryAreas), validationResult, ValidationStatusCode.BadRequest); RunValidationCheckAndAppendAnyError("EffectiveTo", CheckOrganisationStandardToDateIsWithinStandardDateRanges(request.EffectiveTo, standard.StandardData.EffectiveFrom, standard.StandardData.EffectiveTo), validationResult, ValidationStatusCode.BadRequest); return(validationResult); }
private CreateEpaOrganisationStandardValidationRequest MapToCreateEpaOrganisationStandardValidateRequest(CreateEpaOrganisationStandardRequest request) { return(new CreateEpaOrganisationStandardValidationRequest { OrganisationId = request?.OrganisationId, StandardCode = request?.StandardCode ?? 0, StandardVersions = request?.StandardVersions, EffectiveFrom = request?.EffectiveFrom, EffectiveTo = request?.EffectiveTo, ContactId = request?.ContactId, DeliveryAreas = request?.DeliveryAreas, StandardApplicationType = request?.StandardApplicationType }); }
public async Task <ValidationResponse> ValidateNewOrganisationStandardRequest(CreateEpaOrganisationStandardRequest request) { var validationRequest = MapToCreateEpaOrganisationStandardValidateRequest(request); return(await _apiClient.CreateOrganisationStandardValidate(validationRequest)); }