Пример #1
0
        public async Task <IActionResult> UpdateEpaOrganisation([FromBody] UpdateEpaOrganisationRequest request)
        {
            try
            {
                _logger.LogInformation($@"Updating Organisation [{request.OrganisationId}]");
                var result = await _mediator.Send(request);

                return(Ok(new EpaOrganisationResponse(result)));
            }

            catch (NotFound ex)
            {
                _logger.LogError($@"Record is not available for organisation ID: [{request.OrganisationId}]");
                return(NotFound(new EpaOrganisationResponse(ex.Message)));
            }
            catch (BadRequestException ex)
            {
                _logger.LogError(ex.Message);
                return(BadRequest(new EpaOrganisationResponse(ex.Message)));
            }
            catch (Exception ex)
            {
                _logger.LogError($@"Bad request, Message: [{ex.Message}]");
                return(BadRequest());
            }
        }
Пример #2
0
 private EpaOrganisation BuildOrganisation(UpdateEpaOrganisationRequest request)
 {
     return(new EpaOrganisation
     {
         Id = Guid.NewGuid(),
         CreatedAt = DateTime.Now,
         Name = request.Name,
         OrganisationId = request.OrganisationId,
         Ukprn = request.Ukprn,
         PrimaryContact = null,
         PrimaryContactName = null,
         Status = OrganisationStatus.New,
         OrganisationTypeId = request.OrganisationTypeId,
         OrganisationData = new OrganisationData
         {
             LegalName = request.LegalName,
             Address1 = request.Address1,
             Address2 = request.Address2,
             Address3 = request.Address3,
             Address4 = request.Address4,
             Postcode = request.Postcode,
             CompanyNumber = request.CompanyNumber,
             CharityNumber = request.CharityNumber
         }
     });
 }
Пример #3
0
        public void Arrange()
        {
            _mediator = new Mock <IMediator>();
            _logger   = new Mock <ILogger <RegisterController> >();

            _request = new UpdateEpaOrganisationRequest
            {
                Name               = "name 1",
                OrganisationId     = "EPA999",
                Ukprn              = 123321,
                OrganisationTypeId = 5,
                LegalName          = "legal name 1",
                WebsiteLink        = "website link 1",
                Address1           = "address 1",
                Address2           = "address 2",
                Address3           = "address 3",
                Address4           = "address 4",
                Postcode           = "postcode",
                CompanyNumber      = "company number",
                CharityNumber      = "charity number"
            };

            _mediator.Setup(m =>
                            m.Send(_request, new CancellationToken())).Throws <BadRequestException>();

            _controller = new RegisterController(_mediator.Object, _logger.Object);
            _result     = _controller.UpdateEpaOrganisation(_request).Result;
        }
 public async Task UpdateEpaOrganisation(UpdateEpaOrganisationRequest updateEpaOrganisationRequest)
 {
     using (var request = new HttpRequestMessage(HttpMethod.Put, $"/api/ao/assessment-organisations/"))
     {
         await PostPutRequest(request, updateEpaOrganisationRequest);
     }
 }
Пример #5
0
        public void UpdateOrganisationFailsValidation()
        {
            UpdateEpaOrganisationRequest request = BuildRequest("Name", "OrgId", 10001122);

            var validationResponse = BuildErrorResponse("Message", ValidationStatusCode.BadRequest);

            _validator.Setup(x => x.ValidatorUpdateEpaOrganisationRequest(It.IsAny <UpdateEpaOrganisationRequest>()))
            .Returns(validationResponse);

            Task <string> updateOperation = _updateEpaOrganisationHandler.Handle(request, new CancellationToken());
            string        message;

            _registerRepository.Verify(r => r.UpdateEpaOrganisation(It.IsAny <EpaOrganisation>()), Times.Never);

            Assert.Throws <AggregateException>(() => message = updateOperation.Result);
        }
        public ValidationResponse ValidatorUpdateEpaOrganisationRequest(UpdateEpaOrganisationRequest request)
        {
            var validationResult = new ValidationResponse();
            var doLiveValidation = false || request.Status == "Live" || request.ActionChoice == "MakeLive";

            RunValidationCheckAndAppendAnyError("OrganisationId", CheckIfOrganisationNotFound(request.OrganisationId), validationResult, ValidationStatusCode.NotFound);
            if (!validationResult.IsValid)
            {
                return(validationResult);
            }

            RunValidationCheckAndAppendAnyError("CompanyNumber", CheckCompanyNumberIsValid(request.CompanyNumber), validationResult, ValidationStatusCode.BadRequest);
            RunValidationCheckAndAppendAnyError("CompanyNumber", CheckIfOrganisationCompanyNumberExists(request.OrganisationId, request.CompanyNumber), validationResult, ValidationStatusCode.BadRequest);

            RunValidationCheckAndAppendAnyError("CharityNumber", CheckCharityNumberIsValid(request.CharityNumber), validationResult, ValidationStatusCode.BadRequest);
            RunValidationCheckAndAppendAnyError("CharityNumber", CheckIfOrganisationCharityNumberExists(request.OrganisationId, request.CharityNumber), validationResult, ValidationStatusCode.BadRequest);
            RunValidationCheckAndAppendAnyError("OrganisationId", CheckOrganisationIdIsPresentAndValid(request.OrganisationId), validationResult, ValidationStatusCode.BadRequest);
            RunValidationCheckAndAppendAnyError("Name", CheckOrganisationName(request.Name), validationResult, ValidationStatusCode.BadRequest);
            RunValidationCheckAndAppendAnyError("Ukprn", CheckIfOrganisationUkprnExistsForOtherOrganisations(request.Ukprn, request.OrganisationId), validationResult, ValidationStatusCode.BadRequest);
            RunValidationCheckAndAppendAnyError("Name", CheckOrganisationNameNotUsedForOtherOrganisations(request.Name, request.OrganisationId), validationResult, ValidationStatusCode.BadRequest);
            RunValidationCheckAndAppendAnyError("Ukprn", CheckUkprnIsValid(request.Ukprn), validationResult, ValidationStatusCode.BadRequest);

            if (!doLiveValidation)
            {
                RunValidationCheckAndAppendAnyError("OrganisationTypeId", CheckOrganisationTypeIsNullOrExists(request.OrganisationTypeId), validationResult, ValidationStatusCode.BadRequest);
            }
            else
            {
                var contacts  = _registerQueryRepository.GetAssessmentOrganisationContacts(request.OrganisationId).Result;
                var standards = _standardService.GetEpaoRegisteredStandards(request.OrganisationId).Result;

                RunValidationCheckAndAppendAnyError("OrganisationTypeId", CheckOrganisationTypeExists(request.OrganisationTypeId), validationResult, ValidationStatusCode.BadRequest);
                RunValidationCheckAndAppendAnyError("Address", CheckAddressDetailsForOrganisation(request.Address1, request.Address2, request.Address3, request.Address4), validationResult, ValidationStatusCode.BadRequest);
                RunValidationCheckAndAppendAnyError("Postcode", CheckPostcodeIsPresentForOrganisation(request.Postcode), validationResult, ValidationStatusCode.BadRequest);
                RunValidationCheckAndAppendAnyError("Ukprn", CheckUkprnForOrganisation(request.Ukprn), validationResult, ValidationStatusCode.BadRequest);
                RunValidationCheckAndAppendAnyError("ContactsCount", CheckContactCountForOrganisation(contacts?.Count()), validationResult, ValidationStatusCode.BadRequest);
                RunValidationCheckAndAppendAnyError("StandardsCount", CheckStandardCountForOrganisation(standards?.Count()), validationResult, ValidationStatusCode.BadRequest);
            }

            return(validationResult);
        }
Пример #7
0
        public void Setup()
        {
            _registerQueryRepository = new Mock <IRegisterQueryRepository>();
            _registerRepository      = new Mock <IRegisterRepository>();
            _cleanserService         = new Mock <ISpecialCharacterCleanserService>();
            _validator      = new Mock <IEpaOrganisationValidator>();
            _logger         = new Mock <ILogger <UpdateEpaOrganisationHandler> >();
            _organisationId = "EPA999";

            _requestNoIssues = BuildRequest("name 1", _organisationId, 123321);
            _expectedOrganisationNoIssues = BuildOrganisation(_requestNoIssues);

            _registerQueryRepository.Setup(rq => rq.GetEpaOrganisationByOrganisationId(_organisationId)).ReturnsAsync(new EpaOrganisation());
            _registerRepository.Setup(r => r.UpdateEpaOrganisation(It.IsAny <EpaOrganisation>()))
            .ReturnsAsync(_expectedOrganisationNoIssues.OrganisationId);

            _cleanserService.Setup(c => c.CleanseStringForSpecialCharacters(It.IsAny <string>()))
            .Returns((string s) => s);

            _updateEpaOrganisationHandler = new UpdateEpaOrganisationHandler(_registerQueryRepository.Object, _registerRepository.Object, _logger.Object, _cleanserService.Object, _validator.Object);
        }
Пример #8
0
        public async Task <IActionResult> EditOrganisation(RegisterViewAndEditOrganisationViewModel viewModel)
        {
            if (!ModelState.IsValid)
            {
                viewModel.OrganisationTypes = await _apiClient.GetOrganisationTypes();
                await GatherOrganisationContacts(viewModel);
                await GatherOrganisationStandards(viewModel, false);

                return(View(viewModel));
            }

            var updateOrganisationRequest = new UpdateEpaOrganisationRequest
            {
                Name               = viewModel.Name,
                OrganisationId     = viewModel.OrganisationId,
                Ukprn              = viewModel.Ukprn,
                OrganisationTypeId = viewModel.OrganisationTypeId,
                LegalName          = viewModel.LegalName,
                TradingName        = viewModel.TradingName,
                Email              = viewModel.Email,
                PhoneNumber        = viewModel.PhoneNumber,
                WebsiteLink        = viewModel.WebsiteLink,
                Address1           = viewModel.Address1,
                Address2           = viewModel.Address2,
                Address3           = viewModel.Address3,
                Address4           = viewModel.Address4,
                Postcode           = viewModel.Postcode,
                Status             = viewModel.Status,
                ActionChoice       = viewModel.ActionChoice,
                CompanyNumber      = viewModel.CompanyNumber,
                CharityNumber      = viewModel.CharityNumber,
                FinancialDueDate   = viewModel.FinancialDueDate,
                FinancialExempt    = viewModel.FinancialExempt
            };

            await _apiClient.UpdateEpaOrganisation(updateOrganisationRequest);

            return(RedirectToAction("ViewOrganisation", "register", new { organisationId = viewModel.OrganisationId }));
        }
        public async Task <string> UpdateEpaOrganisation(UpdateEpaOrganisationRequest request)
        {
            var result = await Put <UpdateEpaOrganisationRequest, EpaOrganisationResponse>("api/ao/assessment-organisations", request);

            return(result.Details);
        }
Пример #10
0
 private UpdateEpaOrganisationValidationRequest MapToUpdateEpaOrganisationValidateRequest(UpdateEpaOrganisationRequest request)
 {
     return(new UpdateEpaOrganisationValidationRequest
     {
         Name = request?.Name,
         Ukprn = request?.Ukprn,
         OrganisationTypeId = request?.OrganisationTypeId,
         OrganisationId = request?.OrganisationId,
         Address1 = request?.Address1,
         Address2 = request?.Address2,
         Address3 = request?.Address3,
         Address4 = request?.Address4,
         Postcode = request?.Postcode,
         CompanyNumber = request?.CompanyNumber,
         CharityNumber = request?.CharityNumber,
         Status = request?.Status,
         ActionChoice = request?.ActionChoice
     });
 }
Пример #11
0
        public async Task <ValidationResponse> ValidateUpdateOrganisationRequest(UpdateEpaOrganisationRequest request)
        {
            var validationRequest = MapToUpdateEpaOrganisationValidateRequest(request);

            return(await _apiClient.UpdateOrganisationValidate(validationRequest));
        }