Beispiel #1
0
        public async Task Should_not_anonymise_data_for_future_hearings()
        {
            conferenceList = new List <Domain.Conference>();
            var utcDate       = DateTime.UtcNow;
            var futureHearing = utcDate.AddMonths(1);

            var conference3 = new ConferenceBuilder(true, scheduledDateTime: futureHearing)
                              .WithParticipant(UserRole.Representative, "Respondent")
                              .WithParticipant(UserRole.Judge, null)
                              .WithConferenceStatus(ConferenceState.InSession)
                              .Build();

            _conference3Id = conference3.Id;
            conferenceList.Add(conference3);
            var conference3Rep = conference3.Participants.FirstOrDefault(p => p.UserRole == UserRole.Representative);

            foreach (var c in conferenceList)
            {
                await TestDataManager.SeedConference(c);
            }
            var command = new AnonymiseConferencesCommand();
            await _handler.Handle(command);

            command.RecordsUpdated.Should().Be(-1);

            var conference = await _handlerGetConferenceByIdQueryHandler.Handle(new GetConferenceByIdQuery(conference3.Id));

            conference.Should().NotBeNull();

            conference.CaseName.Should().Be(conference3.CaseName);
            var representative = conference.Participants.FirstOrDefault(p => p.UserRole == UserRole.Representative);

            representative.DisplayName.Should().Be(conference3Rep.DisplayName);
        }
        public async Task <IActionResult> AnonymiseConferencesAsync()
        {
            _logger.LogDebug("AnonymiseConferencesAndParticipantInformation");

            var anonymiseConferenceCommand = new AnonymiseConferencesCommand();
            await _commandHandler.Handle(anonymiseConferenceCommand);

            _logger.LogInformation("Records updated: {RecordsUpdated}", anonymiseConferenceCommand.RecordsUpdated);
            return(NoContent());
        }
Beispiel #3
0
        public async Task Should_anonymise_data_older_than_three_months()
        {
            conferenceList = new List <Domain.Conference>();
            var conferenceType       = typeof(Domain.Conference);
            var utcDate              = DateTime.UtcNow;
            var hearingClosed3Months = utcDate.AddMonths(-3).AddMinutes(-50);

            var conference1 = new ConferenceBuilder(true, scheduledDateTime: hearingClosed3Months)
                              .WithParticipant(UserRole.Representative, "Respondent")
                              .WithParticipant(UserRole.Judge, null)
                              .WithConferenceStatus(ConferenceState.Closed)
                              .Build();

            conferenceType.GetProperty("ClosedDateTime").SetValue(conference1, DateTime.UtcNow.AddMonths(-3).AddMinutes(-10));
            _conference1Id = conference1.Id;
            conferenceList.Add(conference1);
            var conference1Rep = conference1.Participants.FirstOrDefault(p => p.UserRole == UserRole.Representative);

            foreach (var c in conferenceList)
            {
                await TestDataManager.SeedConference(c);
            }
            var command = new AnonymiseConferencesCommand();
            await _handler.Handle(command);

            command.RecordsUpdated.Should().Be(3);

            var conference = await _handlerGetConferenceByIdQueryHandler.Handle(new GetConferenceByIdQuery(conference1.Id));

            conference.Should().NotBeNull();

            conference.CaseName.Should().NotBe(conference1.CaseName);
            var representative = conference.Participants.FirstOrDefault(p => p.UserRole == UserRole.Representative);

            representative.DisplayName.Should().NotBe(conference1Rep.DisplayName);
            representative.FirstName.Should().NotBe(conference1Rep.FirstName);
            representative.LastName.Should().NotBe(conference1Rep.LastName);
            representative.Username.Should().NotBe(conference1Rep.Username);
            representative.Representee.Should().NotBe(conference1Rep.Representee);
            representative.ContactEmail.Should().NotBe(conference1Rep.ContactEmail);
            representative.ContactTelephone.Should().NotBe(conference1Rep.ContactTelephone);
        }
        public async Task Should_not_anonymise_data_older_than_two_months_and_less_than_three_months()
        {
            conferenceList = new List <Domain.Conference>();
            var conferenceType      = typeof(Domain.Conference);
            var utcDate             = DateTime.UtcNow;
            var hearingclosed1Month = utcDate.AddMonths(-1).AddMinutes(-50);

            var conference2 = new ConferenceBuilder(true, scheduledDateTime: hearingclosed1Month)
                              .WithParticipant(UserRole.Representative, "Defendant")
                              .WithParticipant(UserRole.Judge, null)
                              .WithConferenceStatus(ConferenceState.Closed)
                              .Build();

            conferenceType.GetProperty("ClosedDateTime").SetValue(conference2, DateTime.UtcNow.AddMonths(-1).AddMinutes(-10));
            _conference2Id = conference2.Id;
            conferenceList.Add(conference2);
            var conference2Rep = conference2.Participants.FirstOrDefault(p => p.UserRole == UserRole.Representative);

            foreach (var c in conferenceList)
            {
                await TestDataManager.SeedConference(c);
            }
            var command = new AnonymiseConferencesCommand();
            await _handler.Handle(command);

            command.RecordsUpdated.Should().Be(-1);

            var conference = await _handlerGetConferenceByIdQueryHandler.Handle(new GetConferenceByIdQuery(conference2.Id));

            conference.Should().NotBeNull();

            conference.CaseName.Should().Be(conference2.CaseName);
            var representative = conference.Participants.FirstOrDefault(p => p.UserRole == UserRole.Representative);

            representative.DisplayName.Should().Be(conference2Rep.DisplayName);
        }