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); } }
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(); }
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(); }
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); } }