public async Task <RemovedReason> GetRemovedReason(Guid organisationId) { var connectionString = _configuration.SqlConnectionString; using (var connection = new SqlConnection(connectionString)) { if (connection.State != ConnectionState.Open) { await connection.OpenAsync(); } var sql = "select JSON_QUERY(OrganisationData, '$.RemovedReason') FROM [Organisations] " + "WHERE Id = @organisationId"; var results = await connection.QueryAsync <string>(sql, new { organisationId }); var resultJson = results.FirstOrDefault(); if (resultJson == null) { RemovedReason nullResult = null; return(await Task.FromResult(nullResult)); } return(JsonConvert.DeserializeObject <RemovedReason>(resultJson)); } }
public void Reason_data_json_parses_to_object() { var reasonJson = "{\"Id\":5,\"Reason\":\"Inadequate Ofsted grade\",\"Description\":null,\"CreatedBy\":\"System\",\"CreatedAt\":\"2019-02-11 15:47:23\",\"UpdatedBy\":null,\"Status\":\"Live\"}"; RemovedReason reasonData = JsonConvert.DeserializeObject <RemovedReason>(reasonJson); reasonData.Should().NotBeNull(); reasonData.Id.Should().Be(5); reasonData.Reason.Should().Be("Inadequate Ofsted grade"); reasonData.CreatedAt.Year.Should().Be(2019); reasonData.CreatedAt.Month.Should().Be(2); reasonData.CreatedAt.Day.Should().Be(11); reasonData.Status.Should().Be("Live"); }
private void OnRemoved(KeyType Key, ValueType Value, RemovedReason Reason) { CacheItemEventHandler <KeyType, ValueType> h = this.Removed; if (h != null) { try { h(this, new CacheItemEventArgs <KeyType, ValueType>(Key, Value, Reason)); } catch (Exception ex) { Log.Critical(ex); } } }
public void Handler_accepts_change_from_removed_to_different_removed_reason() { _repository.Setup(x => x.GetOrganisationStatus(It.IsAny <Guid>())).ReturnsAsync(OrganisationStatus.Removed); RemovedReason existingReason = new RemovedReason { Id = 1, Reason = "test reason" }; _repository.Setup(x => x.GetRemovedReason(It.IsAny <Guid>())).ReturnsAsync(existingReason); _request.OrganisationStatusId = OrganisationStatus.Removed; _updateRepository.Setup(x => x.UpdateOrganisationStatus(It.IsAny <Guid>(), It.IsAny <int>(), It.IsAny <string>())) .ReturnsAsync(true); _updateRepository.Setup(x => x.WriteFieldChangesToAuditLog(It.IsAny <AuditData>())).ReturnsAsync(true).Verifiable(); _updateRepository.Setup(x => x.UpdateStartDate(It.IsAny <Guid>(), It.IsAny <DateTime>(), It.IsAny <string>())).ReturnsAsync(true).Verifiable(); _updateRepository.Setup(x => x.UpdateRemovedReason(It.IsAny <Guid>(), It.IsAny <int?>(), It.IsAny <string>())).ReturnsAsync(true).Verifiable(); var fieldChanges = new List <AuditLogEntry>(); fieldChanges.Add(new AuditLogEntry { FieldChanged = AuditLogField.RemovedReason, NewValue = "Breach", PreviousValue = "Other" }); _auditLogService.Setup(x => x.AuditOrganisationStatus(It.IsAny <Guid>(), It.IsAny <string>(), It.IsAny <int>(), It.IsAny <int?>())) .Returns(new AuditData { FieldChanges = fieldChanges }); var result = _handler.Handle(_request, new CancellationToken()).GetAwaiter().GetResult(); result.Should().BeTrue(); _updateRepository.Verify(x => x.UpdateStartDate(It.IsAny <Guid>(), It.IsAny <DateTime>(), It.IsAny <string>()), Times.Never); _updateRepository.Verify(x => x.UpdateRemovedReason(It.IsAny <Guid>(), It.IsAny <int?>(), It.IsAny <string>()), Times.Once); _updateRepository.Verify(x => x.WriteFieldChangesToAuditLog(It.IsAny <AuditData>()), Times.Once); _eventsRepository.Verify(x => x.AddOrganisationStatusEventsFromOrganisationId(It.IsAny <Guid>(), It.IsAny <int>(), It.IsAny <DateTime>()), Times.Never); }
public void Before_each_test() { _request = new UpdateOrganisationStatusRequest { OrganisationId = Guid.NewGuid(), OrganisationStatusId = 0, UpdatedBy = "unit test", RemovedReasonId = null }; _logger = new Mock <ILogger <UpdateOrganisationStatusHandler> >(); _validator = new Mock <IOrganisationValidator>(); _validator.Setup(x => x.IsValidProviderTypeId(It.IsAny <int>())).Returns(true); _validator.Setup(x => x.IsValidOrganisationTypeIdForProvider(It.IsAny <int>(), It.IsAny <int>())) .ReturnsAsync(true); _validator.Setup(x => x.IsValidStatusId(It.IsAny <int>())).Returns(true); _validator.Setup(x => x.IsValidOrganisationStatusIdForOrganisation(It.IsAny <int>(), It.IsAny <Guid>())).Returns(true); _updateRepository = new Mock <IUpdateOrganisationRepository>(); _lookupDataRepository = new Mock <ILookupDataRepository>(); _repository = new Mock <IOrganisationRepository>(); _eventsRepository = new Mock <IEventsRepository>(); var activeStatus = new OrganisationStatus { Id = 1, Status = "Active" }; _lookupDataRepository.Setup(x => x.GetOrganisationStatus(1)).ReturnsAsync(activeStatus); var removedStatus = new OrganisationStatus { Id = 0, Status = "Removed" }; _lookupDataRepository.Setup(x => x.GetOrganisationStatus(0)).ReturnsAsync(removedStatus); var notTakingOnStatus = new OrganisationStatus { Id = 2, Status = "Active - not taking on" }; _lookupDataRepository.Setup(x => x.GetOrganisationStatus(2)).ReturnsAsync(notTakingOnStatus); var onboardingStatus = new OrganisationStatus { Id = 3, Status = "On-boarding" }; _lookupDataRepository.Setup(x => x.GetOrganisationStatus(3)).ReturnsAsync(onboardingStatus); _eventsRepository .Setup((x => x.AddOrganisationStatusEventsFromOrganisationId(It.IsAny <Guid>(), It.IsAny <int>(), It.IsAny <DateTime>()))).ReturnsAsync(true); RemovedReason nullReason = null; _repository.Setup(x => x.GetRemovedReason(It.IsAny <Guid>())).ReturnsAsync(nullReason); _auditLogService = new Mock <IAuditLogService>(); _auditLogService.Setup(x => x.CreateAuditData(It.IsAny <Guid>(), It.IsAny <string>())) .Returns(new AuditData { FieldChanges = new List <AuditLogEntry>() }); _auditLogService.Setup(x => x.AuditOrganisationStatus(It.IsAny <Guid>(), It.IsAny <string>(), It.IsAny <int>(), It.IsAny <int?>())) .Returns(new AuditData { FieldChanges = new List <AuditLogEntry>() }); _handler = new UpdateOrganisationStatusHandler(_logger.Object, _validator.Object, _updateRepository.Object, _lookupDataRepository.Object, _repository.Object, _auditLogService.Object, _eventsRepository.Object); }
protected override void ParseInternal(BinaryReader reader) { ConnId = reader.ReadUInt32(); RemovedReason = (RemovedReason)reader.ReadByte(); }
internal CacheItemEventArgs(KeyType Key, ValueType Value, RemovedReason Reason) { this.key = Key; this.value = Value; this.reason = Reason; }
public static void TestGetData_OnRemovedCallback(string key, object value, RemovedReason reason) { Console.WriteLine(String.Format("CacheItemRemoved key:{0} reason:{1}", key, reason)); }