コード例 #1
0
        public void Before_each_test()
        {
            _logger = new Mock <ILogger <UpdateOrganisationHandler> >();
            _organisationValidator = new Mock <IOrganisationValidator>();
            ;
            _textSanitiser          = new TextSanitiser();
            _validationErrorMessage = new ValidationErrorMessage();

            _updateOrganisationRepository = new Mock <IUpdateOrganisationRepository>();
            _auditLogService = new Mock <IAuditLogService>();

            _organisationValidator.Setup(x => x.ValidateOrganisation(It.IsAny <UpdateOrganisationCommand>()))
            .Returns(_validationErrorMessage);

            _auditData = new AuditData {
            };

            _auditLogService.Setup(x => x.AuditOrganisation(It.IsAny <UpdateOrganisationCommand>())).Returns(_auditData);

            _handler = new UpdateOrganisationHandler(_logger.Object, _updateOrganisationRepository.Object, _auditLogService.Object, _organisationValidator.Object, _textSanitiser);
            _request = new UpdateOrganisationRequest
            {
                OrganisationId            = Guid.NewGuid(),
                OrganisationTypeId        = 1,
                ProviderTypeId            = 1,
                LegalName                 = "legal name",
                CharityNumber             = "1233333",
                CompanyNumber             = "35444444",
                Username                  = "******",
                ApplicationDeterminedDate = DateTime.Today
            };
        }
 public async Task Update(UpdateOrganisationRequest updateOrganisationRequest)
 {
     using (var request = new HttpRequestMessage(HttpMethod.Put, $"/api/v1/organisations/"))
     {
         await PostPutRequest(request, updateOrganisationRequest);
     }
 }
コード例 #3
0
        public async Task <bool> RecordOutcome(Guid applicationId, bool?approveGateway, bool?approveModeration, OversightReviewStatus outcome, string userId, string userName, string internalComments, string externalComments)
        {
            _logger.LogInformation($"Recording an oversight outcome of {outcome} for application {applicationId}");

            var registrationDetails = await _applicationApiClient.GetRegistrationDetails(applicationId);

            var registerStatus = await _registerApiClient.GetOrganisationRegisterStatus(new GetOrganisationRegisterStatusRequest { UKPRN = registrationDetails.UKPRN });

            ValidateStatusAgainstExistingStatus(outcome, registerStatus, registrationDetails.UKPRN);

            var updateOutcomeCommand = new RecordOversightOutcomeCommand
            {
                ApplicationId     = applicationId,
                ApproveGateway    = approveGateway,
                ApproveModeration = approveModeration,
                OversightStatus   = outcome,
                UserId            = userId,
                UserName          = userName,
                InternalComments  = internalComments,
                ExternalComments  = externalComments
            };

            var updateOutcomeSuccess = await _applicationApiClient.RecordOutcome(updateOutcomeCommand);

            if (!updateOutcomeSuccess)
            {
                return(false);
            }

            if (outcome == OversightReviewStatus.Successful)
            {
                var request = BuildCreateOrganisationRequest(userName, registrationDetails);

                await _registerApiClient.CreateOrganisation(request);
            }

            if ((outcome == OversightReviewStatus.SuccessfulAlreadyActive ||
                 outcome == OversightReviewStatus.SuccessfulFitnessForFunding) && registerStatus.OrganisationId != null)
            {
                var updateOrganisationRequest = new UpdateOrganisationRequest
                {
                    ApplicationDeterminedDate = DateTime.UtcNow.Date,
                    LegalName          = registrationDetails.LegalName,
                    OrganisationId     = registerStatus.OrganisationId.Value,
                    Username           = userName,
                    CharityNumber      = registrationDetails.CharityNumber,
                    CompanyNumber      = registrationDetails.CompanyNumber,
                    OrganisationTypeId = registrationDetails.OrganisationTypeId,
                    ProviderTypeId     = registrationDetails.ProviderTypeId,
                    TradingName        = registrationDetails.TradingName,
                };

                _logger.LogInformation($"Updating organisation details for application {applicationId}");

                return(await _registerApiClient.UpdateOrganisation(updateOrganisationRequest));
            }

            return(true);
        }
        public async Task <IActionResult> UpdateOrganisation(
            [FromBody] UpdateOrganisationRequest updateOrganisationRequest)
        {
            _logger.LogInformation("Received Update Organisation Request");

            await _mediator.Send(updateOrganisationRequest);

            return(NoContent());
        }
        public async Task <ActionResult <Organisation> > UpdateOrganisation([FromBody] UpdateOrganisationRequest request)
        {
            var org = await _mediator.Send(request);

            if (org is null)
            {
                return(BadRequest());
            }

            return(Ok(org));
        }
        public void Arrange()
        {
            Setup();

            _organisationResponse = Builder <Organisation> .CreateNew().Build();

            Mediator.Setup(q => q.Send(Moq.It.IsAny <UpdateOrganisationRequest>(), Moq.It.IsAny <CancellationToken>()))
            .Returns(Task.FromResult((_organisationResponse)));

            _updateOrganisationRequest = Builder <UpdateOrganisationRequest> .CreateNew()
                                         .Build();

            _result = OrganisationController.UpdateOrganisation(_updateOrganisationRequest).Result;
        }
コード例 #7
0
        private async Task <bool> RecordInRoatp(Guid applicationId, string appealStatus, string userId, string userName,
                                                OrganisationRegisterStatus registerStatus, RoatpRegistrationDetails registrationDetails)
        {
            var application = await _applicationApiClient.GetApplicationDetails(applicationId);

            if (application.GatewayReviewStatus != GatewayReviewStatus.Fail)
            {
                if (registerStatus?.OrganisationId != null && (appealStatus == AppealStatus.SuccessfulAlreadyActive ||
                                                               appealStatus == AppealStatus.SuccessfulFitnessForFunding))
                {
                    var updateOrganisationRequest = new UpdateOrganisationRequest
                    {
                        ApplicationDeterminedDate = DateTime.UtcNow.Date,
                        LegalName          = registrationDetails.LegalName,
                        OrganisationId     = registerStatus.OrganisationId.Value,
                        Username           = userName,
                        CharityNumber      = registrationDetails.CharityNumber,
                        CompanyNumber      = registrationDetails.CompanyNumber,
                        OrganisationTypeId = registrationDetails.OrganisationTypeId,
                        ProviderTypeId     = registrationDetails.ProviderTypeId,
                        TradingName        = registrationDetails.TradingName,
                    };

                    _logger.LogInformation($"Updating organisation details for application {applicationId}");

                    return(await _registerApiClient.UpdateOrganisation(updateOrganisationRequest));
                }

                if (appealStatus == AppealStatus.Successful)
                {
                    var request = BuildCreateOrganisationRequest(userName, registrationDetails);

                    return(await _registerApiClient.CreateOrganisation(request));
                }
            }
            return(true);
        }
コード例 #8
0
 public async Task <IActionResult> Update([FromBody] UpdateOrganisationRequest request)
 {
     return(Ok(await _mediator.Send(request)));
 }
コード例 #9
0
        /// <summary>
        /// Update an organisation.    Requires &#39;OrganisationAdmin&#39; permission.
        /// </summary>
        /// <exception cref="ChronoSheetsAPI.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="xChronosheetsAuth">The ChronoSheets Auth Token</param>
        /// <param name="request">An Update Organsation Request object containing updated fields.  Make sure to specify the Organsation Id in the request object so that ChronoSheets knows which Organsation to update</param>
        /// <param name="cancellationToken">Cancellation Token to cancel request (optional) </param>
        /// <returns>Task of ApiResponse (ApiResponseUpdateOrganisationResponse)</returns>
        public async System.Threading.Tasks.Task <ApiResponse <ApiResponseUpdateOrganisationResponse> > OrganisationUpdateOrganisationWithHttpInfoAsync(string xChronosheetsAuth, UpdateOrganisationRequest request, CancellationToken cancellationToken = default(CancellationToken))
        {
            // verify the required parameter 'xChronosheetsAuth' is set
            if (xChronosheetsAuth == null)
            {
                throw new ApiException(400, "Missing required parameter 'xChronosheetsAuth' when calling OrganisationApi->OrganisationUpdateOrganisation");
            }
            // verify the required parameter 'request' is set
            if (request == null)
            {
                throw new ApiException(400, "Missing required parameter 'request' when calling OrganisationApi->OrganisationUpdateOrganisation");
            }

            var    localVarPath         = "/Organisation/UpdateOrganisation";
            var    localVarPathParams   = new Dictionary <String, String>();
            var    localVarQueryParams  = new List <KeyValuePair <String, String> >();
            var    localVarHeaderParams = new Dictionary <String, String>(this.Configuration.DefaultHeader);
            var    localVarFormParams   = new Dictionary <String, String>();
            var    localVarFileParams   = new Dictionary <String, FileParameter>();
            Object localVarPostBody     = null;

            // to determine the Content-Type header
            String[] localVarHttpContentTypes = new String[] {
                "application/json",
                "text/json",
                "application/xml",
                "text/xml",
                "application/x-www-form-urlencoded",
                "multipart/form-data"
            };
            String localVarHttpContentType = this.Configuration.ApiClient.SelectHeaderContentType(localVarHttpContentTypes);

            // to determine the Accept header
            String[] localVarHttpHeaderAccepts = new String[] {
                "application/json",
                "text/json",
                "application/xml",
                "text/xml",
                "multipart/form-data"
            };
            String localVarHttpHeaderAccept = this.Configuration.ApiClient.SelectHeaderAccept(localVarHttpHeaderAccepts);

            if (localVarHttpHeaderAccept != null)
            {
                localVarHeaderParams.Add("Accept", localVarHttpHeaderAccept);
            }

            if (xChronosheetsAuth != null)
            {
                localVarHeaderParams.Add("x-chronosheets-auth", this.Configuration.ApiClient.ParameterToString(xChronosheetsAuth));                            // header parameter
            }
            if (request != null && request.GetType() != typeof(byte[]))
            {
                localVarPostBody = this.Configuration.ApiClient.Serialize(request); // http body (model) parameter
            }
            else
            {
                localVarPostBody = request; // byte array
            }


            // make the HTTP request
            IRestResponse localVarResponse = (IRestResponse)await this.Configuration.ApiClient.CallApiAsync(localVarPath,
                                                                                                            Method.PUT, localVarQueryParams, localVarPostBody, localVarHeaderParams, localVarFormParams, localVarFileParams,
                                                                                                            localVarPathParams, localVarHttpContentType, cancellationToken);

            int localVarStatusCode = (int)localVarResponse.StatusCode;

            if (ExceptionFactory != null)
            {
                Exception exception = ExceptionFactory("OrganisationUpdateOrganisation", localVarResponse);
                if (exception != null)
                {
                    throw exception;
                }
            }

            return(new ApiResponse <ApiResponseUpdateOrganisationResponse>(localVarStatusCode,
                                                                           localVarResponse.Headers.ToDictionary(x => x.Name, x => string.Join(",", x.Value)),
                                                                           (ApiResponseUpdateOrganisationResponse)this.Configuration.ApiClient.Deserialize(localVarResponse, typeof(ApiResponseUpdateOrganisationResponse))));
        }
コード例 #10
0
        /// <summary>
        /// Update an organisation.    Requires &#39;OrganisationAdmin&#39; permission.
        /// </summary>
        /// <exception cref="ChronoSheetsAPI.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="xChronosheetsAuth">The ChronoSheets Auth Token</param>
        /// <param name="request">An Update Organsation Request object containing updated fields.  Make sure to specify the Organsation Id in the request object so that ChronoSheets knows which Organsation to update</param>
        /// <param name="cancellationToken">Cancellation Token to cancel request (optional) </param>
        /// <returns>Task of ApiResponseUpdateOrganisationResponse</returns>
        public async System.Threading.Tasks.Task <ApiResponseUpdateOrganisationResponse> OrganisationUpdateOrganisationAsync(string xChronosheetsAuth, UpdateOrganisationRequest request, CancellationToken cancellationToken = default(CancellationToken))
        {
            ApiResponse <ApiResponseUpdateOrganisationResponse> localVarResponse = await OrganisationUpdateOrganisationWithHttpInfoAsync(xChronosheetsAuth, request, cancellationToken);

            return(localVarResponse.Data);
        }
コード例 #11
0
        /// <summary>
        /// Update an organisation.    Requires &#39;OrganisationAdmin&#39; permission.
        /// </summary>
        /// <exception cref="ChronoSheetsAPI.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="xChronosheetsAuth">The ChronoSheets Auth Token</param>
        /// <param name="request">An Update Organsation Request object containing updated fields.  Make sure to specify the Organsation Id in the request object so that ChronoSheets knows which Organsation to update</param>
        /// <returns>ApiResponseUpdateOrganisationResponse</returns>
        public ApiResponseUpdateOrganisationResponse OrganisationUpdateOrganisation(string xChronosheetsAuth, UpdateOrganisationRequest request)
        {
            ApiResponse <ApiResponseUpdateOrganisationResponse> localVarResponse = OrganisationUpdateOrganisationWithHttpInfo(xChronosheetsAuth, request);

            return(localVarResponse.Data);
        }
コード例 #12
0
        public async Task <bool> UpdateOrganisation(UpdateOrganisationRequest request)
        {
            var result = await Put($"/api/v1/organisation/update", request);

            return(await Task.FromResult(result == HttpStatusCode.OK));
        }