Beispiel #1
0
        public async Task <IActionResult> Post(CreateOrganisationRequest request)
        {
            var organisationDto = _mapper.Map <OrganizationDto>(request);
            await _organizationService.CreateAsync(organisationDto);

            return(Ok());
        }
 public async Task <OrganisationResponse> Create(CreateOrganisationRequest createOrganisationRequest)
 {
     using (var request = new HttpRequestMessage(HttpMethod.Post, $"/api/v1/organisations/"))
     {
         return(await PostPutRequestWithResponse <CreateOrganisationRequest, OrganisationResponse>(request,
                                                                                                   createOrganisationRequest));
     }
 }
        public void Before_each_test()
        {
            _organisationId   = Guid.NewGuid();
            _repository       = new Mock <ICreateOrganisationRepository>();
            _eventsRepository = new Mock <IEventsRepository>();
            _repository.Setup(x => x.CreateOrganisation(It.IsAny <CreateOrganisationCommand>()))
            .ReturnsAsync(_organisationId);
            _duplicateCheckRepository = new Mock <IDuplicateCheckRepository>();
            _duplicateCheckRepository.Setup(x => x.DuplicateUKPRNExists(It.IsAny <Guid>(), It.IsAny <long>()))
            .ReturnsAsync(new DuplicateCheckResponse {
                DuplicateOrganisationName = "", DuplicateFound = false
            });
            _logger    = new Mock <ILogger <CreateOrganisationHandler> >();
            _mapper    = new MapCreateOrganisationRequestToCommand();
            _validator = new Mock <IOrganisationValidator>();
            _validator.Setup(x => x.IsValidOrganisationTypeId(It.IsAny <int>())).Returns(true);
            _validator.Setup(x => x.IsValidLegalName(It.IsAny <string>())).Returns(true);
            _validator.Setup(x => x.IsValidTradingName(It.IsAny <string>())).Returns(true);
            _validator.Setup(x => x.IsValidProviderTypeId(It.IsAny <int>())).Returns(true);
            _validator.Setup(x => x.IsValidOrganisationTypeId(It.IsAny <int>())).Returns(true);
            _validator.Setup(x => x.IsValidStatusId(It.IsAny <int>())).Returns(true);
            _validator.Setup(x => x.IsValidStatusDate(It.IsAny <DateTime>())).Returns(true);
            _validator.Setup(x => x.IsValidUKPRN(It.IsAny <long>())).Returns(true);
            _validator.Setup(x => x.IsValidCompanyNumber(It.IsAny <string>())).Returns(true);
            _validator.Setup(x => x.IsValidCharityNumber(It.IsAny <string>())).Returns(true);
            _validator.Setup(x => x.IsValidApplicationDeterminedDate(It.IsAny <DateTime?>())).Returns(true);
            _validator.Setup(x => x.DuplicateUkprnInAnotherOrganisation(It.IsAny <long>(), It.IsAny <Guid>()))
            .Returns(new DuplicateCheckResponse {
                DuplicateFound = false, DuplicateOrganisationName = ""
            });
            _validator.Setup(x => x.DuplicateCompanyNumberInAnotherOrganisation(It.IsAny <string>(), It.IsAny <Guid>()))
            .Returns(new DuplicateCheckResponse {
                DuplicateFound = false, DuplicateOrganisationName = ""
            });
            _validator.Setup(x => x.DuplicateCharityNumberInAnotherOrganisation(It.IsAny <string>(), It.IsAny <Guid>()))
            .Returns(new DuplicateCheckResponse {
                DuplicateFound = false, DuplicateOrganisationName = ""
            });
            _textSanitiser = new Mock <ITextSanitiser>();
            _textSanitiser.Setup(x => x.SanitiseInputText(It.IsAny <string>())).Returns <string>(x => x);

            _handler = new CreateOrganisationHandler(_repository.Object, _eventsRepository.Object, _logger.Object, _validator.Object, new ProviderTypeValidator(), _mapper, _textSanitiser.Object);

            _request = new CreateOrganisationRequest
            {
                LegalName          = "Legal Name",
                TradingName        = "TradingName",
                ProviderTypeId     = 1,
                OrganisationTypeId = 0,
                StatusDate         = DateTime.Now,
                Ukprn         = 10002000,
                CompanyNumber = "11223344",
                CharityNumber = "10000000",
                Username      = "******"
            };
        }
        private CreateOrganisationRequest CreateAddOrganisationRequestFromModel(AddOrganisationViewModel model)
        {
            var request = new CreateOrganisationRequest
            {
                Username     = HttpContext.User.OperatorName(),
                Organisation = CreateOrganisationFromModel(model)
            };

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

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

            return(Ok(org));
        }
Beispiel #6
0
        public CreateOrganisationCommand Map(CreateOrganisationRequest request)
        {
            int      organisationStatusId;
            DateTime?startDate = null;

            switch (request.ProviderTypeId)
            {
            case ProviderType.MainProvider:
            case ProviderType.EmployerProvider:
                organisationStatusId = OrganisationStatus.Onboarding;
                break;

            case ProviderType.SupportingProvider:
                organisationStatusId = OrganisationStatus.Active;
                startDate            = DateTime.Today;
                break;

            default:
                throw new Exception($"Provider Type {request.ProviderTypeId} not recognised");
            }

            var command = new CreateOrganisationCommand
            {
                CharityNumber          = request.CharityNumber,
                CompanyNumber          = request.CompanyNumber,
                FinancialTrackRecord   = request.FinancialTrackRecord,
                LegalName              = request.LegalName,
                NonLevyContract        = request.NonLevyContract,
                OrganisationStatusId   = organisationStatusId,
                OrganisationTypeId     = request.OrganisationTypeId,
                ParentCompanyGuarantee = request.ParentCompanyGuarantee,
                ProviderTypeId         = request.ProviderTypeId,
                StatusDate             = request.StatusDate,
                Ukprn                     = request.Ukprn,
                TradingName               = request.TradingName,
                StartDate                 = startDate,
                Username                  = request.Username,
                SourceIsUKRLP             = request.SourceIsUKRLP,
                ApplicationDeterminedDate = request.ApplicationDeterminedDate
            };

            return(command);
        }
        private async Task NotifyOrganisation(string companyName, CreateOrganisationRequest payload, Organisation organisation)
        {
            var emailAddressRef = payload.FormResponse.Definition.Fields
                                  .FirstOrDefault(t => string.Equals(t.Title, DefinitionConstants.EmailAdress, StringComparison.Ordinal))?
                                  .Reference;

            var emailAddress = payload.FormResponse.Answers
                               .FirstOrDefault(t => string.Equals(t.Field.Reference, emailAddressRef, StringComparison.Ordinal))?
                               .Email;

            if (string.IsNullOrEmpty(emailAddress))
            {
                throw new ValidationException(Messages.Org_EmailEmpty);
            }

            await _emailService.SendEmail(
                emailAddress,
                companyName,
                _qrCodeService.GenerateQRCode(organisation.Id.ToString()),
                DefinitionConstants.EmailTemplates.OrganisationWelcome);
        }
        public async Task CreateAsync(CreateOrganisationRequest payload)
        {
            var companyNameRef = payload.FormResponse.Definition.Fields
                                 .FirstOrDefault(t => string.Equals(t.Title, DefinitionConstants.CompanyName, StringComparison.Ordinal))?
                                 .Reference;

            var companyName = payload.FormResponse.Answers
                              .FirstOrDefault(t => string.Equals(t.Field.Reference, companyNameRef, StringComparison.Ordinal))?
                              .Text;

            var organisation = new Organisation()
            {
                Name      = companyName,
                Payload   = JsonConvert.SerializeObject(payload),
                CreatedAt = DateTime.UtcNow
            };

            await _organisationRepository.AddAsync(organisation);

            await _organisationRepository.SaveAsync();

            await NotifyOrganisation(companyName, payload, organisation);
        }
        public async Task <Organisation> Create(OrganisationSearchResult organisation, Guid userId)
        {
            var orgDetails = new OrganisationDetails
            {
                OrganisationReferenceType = organisation.OrganisationReferenceType,
                OrganisationReferenceId   = organisation.OrganisationReferenceId,
                LegalName     = organisation.LegalName,
                TradingName   = organisation.TradingName,
                ProviderName  = organisation.ProviderName,
                CompanyNumber = organisation.CompanyNumber,
                CharityNumber = organisation.CharityNumber,
                Address1      = organisation.Address?.Address1,
                Address2      = organisation.Address?.Address2,
                Address3      = organisation.Address?.Address3,
                City          = organisation.Address?.City,
                Postcode      = organisation.Address?.Postcode,
                FHADetails    = new FHADetails()
                {
                    FinancialDueDate = organisation.FinancialDueDate,
                    FinancialExempt  = organisation.FinancialExempt
                }
            };

            var request = new CreateOrganisationRequest
            {
                Name                = organisation.Name,
                OrganisationType    = organisation.OrganisationType,
                OrganisationUkprn   = organisation.Ukprn,
                RoEPAOApproved      = organisation.RoEPAOApproved,
                RoATPApproved       = organisation.RoATPApproved,
                OrganisationDetails = orgDetails,
                CreatedBy           = userId,
                PrimaryContactEmail = organisation.Email
            };

            return(await Create(request, userId));
        }
 public async Task <Organisation> Create(CreateOrganisationRequest request, Guid userId)
 {
     return(await Post <CreateOrganisationRequest, Organisation>($"/Organisations", request));
 }
Beispiel #11
0
 public async Task <IActionResult> Create([FromBody] CreateOrganisationRequest createOrganisationRequest)
 {
     return(Ok(await _mediator.Send(createOrganisationRequest)));
 }
        public async Task <IActionResult> CreateOrganisation([FromBody] CreateOrganisationRequest payload)
        {
            BackgroundJob.Enqueue(() => _organisationService.CreateAsync(payload));

            return(new OkResult());
        }
        /// <summary>Creates a test organisation user with the specified services.</summary>
        /// <param name="request">The requested service names.</param>
        public OrganisationResult CreateUser(CreateOrganisationRequest request)
        {
            var restRequest = this.CreateRequest(request);

            return(this.ExecuteRequest <OrganisationResult>(restRequest));
        }
Beispiel #14
0
 public async Task <bool> CreateOrganisation([FromBody] CreateOrganisationRequest request)
 {
     return(await organisationService.CreateOrganisation(request));
 }