public async Task <DuplicateCheckResponse> DuplicateCharityNumberExists(Guid organisationId, string charityNumber)
        {
            using (var connection = _dbConnectionHelper.GetDatabaseConnection())
            {
                var sql = "select LegalName FROM [Organisations] " +
                          "WHERE JSON_VALUE(OrganisationData, '$.CharityNumber') = @charityNumber " +
                          "AND Id != @organisationId";
                string duplicateLegalName = await connection.ExecuteScalarAsync <string>(sql, new { organisationId, charityNumber });

                DuplicateCheckResponse response = new DuplicateCheckResponse
                {
                    DuplicateFound            = !string.IsNullOrWhiteSpace(duplicateLegalName),
                    DuplicateOrganisationName = duplicateLegalName
                };
                return(response);
            }
        }
Exemple #2
0
        public void Duplicate_company_number_check_returns_match()
        {
            var response = new DuplicateCheckResponse
            {
                DuplicateFound            = true,
                DuplicateOrganisationName = "Legal Name"
            };

            _repository.Setup(x => x.DuplicateCompanyNumberExists(It.IsAny <Guid>(), It.IsAny <string>())).ReturnsAsync(response);

            var logger  = new Mock <ILogger <DuplicateCompanyNumberCheckHandler> >();
            var handler = new DuplicateCompanyNumberCheckHandler(logger.Object, _repository.Object);

            var request = new DuplicateCompanyNumberCheckRequest
            {
                CompanyNumber  = "10001000",
                OrganisationId = Guid.NewGuid()
            };
            var result = handler.Handle(request, new CancellationToken()).GetAwaiter().GetResult();

            result.DuplicateFound.Should().BeTrue();
        }
Exemple #3
0
        public void Duplicate_UKPRN_check_returns_no_match()
        {
            var response = new DuplicateCheckResponse
            {
                DuplicateFound            = false,
                DuplicateOrganisationName = null
            };

            _repository.Setup(x => x.DuplicateUKPRNExists(It.IsAny <Guid>(), It.IsAny <long>())).ReturnsAsync(response);

            var logger  = new Mock <ILogger <DuplicateUKPRNCheckHandler> >();
            var handler = new DuplicateUKPRNCheckHandler(logger.Object, _repository.Object);

            var request = new DuplicateUKPRNCheckRequest
            {
                UKPRN          = 99999999,
                OrganisationId = Guid.NewGuid()
            };
            var result = handler.Handle(request, new CancellationToken()).GetAwaiter().GetResult();

            result.DuplicateFound.Should().BeFalse();
        }
Exemple #4
0
        public async Task <DuplicateCheckResponse> DuplicateCharityNumberExists(Guid organisationId, string charityNumber)
        {
            var connectionString = _configuration.SqlConnectionString;

            using (var connection = new SqlConnection(connectionString))
            {
                if (connection.State != ConnectionState.Open)
                {
                    await connection.OpenAsync();
                }

                var sql = "select LegalName FROM [Organisations] " +
                          "WHERE JSON_VALUE(OrganisationData, '$.CharityNumber') = @charityNumber " +
                          "AND Id != @organisationId";
                string duplicateLegalName = await connection.ExecuteScalarAsync <string>(sql, new { organisationId, charityNumber });

                DuplicateCheckResponse response = new DuplicateCheckResponse
                {
                    DuplicateFound            = !String.IsNullOrWhiteSpace(duplicateLegalName),
                    DuplicateOrganisationName = duplicateLegalName
                };
                return(response);
            }
        }