public async Task <ValidationResponse> Handle(CreateEpaOrganisationValidationRequest request, CancellationToken cancellationToken) { var result = _validator.ValidatorCreateEpaOrganisationRequest(new CreateEpaOrganisationRequest { Name = request.Name, Ukprn = request.Ukprn, OrganisationTypeId = request.OrganisationTypeId, CompanyNumber = request.CompanyNumber, CharityNumber = request.CharityNumber }); return(await Task.FromResult(result)); }
public async Task <string> Handle(CreateEpaOrganisationRequest request, CancellationToken cancellationToken) { ProcessRequestFieldsForSpecialCharacters(request); ValidationResponse validationResponse = _validator.ValidatorCreateEpaOrganisationRequest(request); if (!validationResponse.IsValid) { var message = validationResponse.Errors.Aggregate(string.Empty, (current, error) => current + error.ErrorMessage + "; "); _logger.LogError(message); if (validationResponse.Errors.Any(x => x.StatusCode == ValidationStatusCode.BadRequest.ToString())) { throw new BadRequestException(message); } //Incase there already an existing organisation then return that , this is part of ON-2084 var organisationId = await _registerQueryRepository.GetEpaOrgIdByEndPointAssessmentName(request.Name); if (!string.IsNullOrEmpty(organisationId)) { return(organisationId); } } var newOrganisationId = _organisationIdGenerator.GetNextOrganisationId(); if (newOrganisationId == string.Empty) { throw new Exception("A valid organisation Id could not be generated"); } var organisation = MapOrganisationRequestToOrganisation(request, newOrganisationId); return(await _registerRepository.CreateEpaOrganisation(organisation)); }