コード例 #1
0
        public OperationDates PersistLastSuccessfulOperationDates(OperationDates operationDates)
        {
            _mongoDatabase
            .GetCollection <OperationDatesKeyValue>(nameof(OperationDatesKeyValue))
            .ReplaceOne(
                filter: Builders <OperationDatesKeyValue> .Filter.Eq("_id", nameof(OperationDatesKeyValue)),
                replacement: new OperationDatesKeyValue {
                LastUpdatedUtc = _clock.UtcNow, Value = operationDates
            },
                options: new UpdateOptions {
                IsUpsert = true
            });

            return(operationDates);
        }
コード例 #2
0
        private ActivityChildAgeAndGradeCalculationOperation CalculateAndPersistChildAgeGradeDataByHousehold(OperationDates previousOperationDates)
        {
            var activity = new ActivityChildAgeAndGradeCalculationOperation(_clock.UtcNow)
            {
                PreviousProcessDate = previousOperationDates.AgeAndGradeProcessDate,
                PreviousSyncDate    = previousOperationDates.AgeAndGradeSyncDate
            };

            try
            {
                activity.AgeGradeDeltaLog = _ministryPlatformContactRepository.CalculateAndPersistKidsClubAndStudentMinistryAgeAndGradeDeltas();
                return(activity);
            }
            catch (Exception exc)
            {
                _logger.LogError(CoreEvent.Exception, exc, "An exception occurred while calculating & persisting MP contact child age & grade data.");
                throw;
            }
            finally
            {
                activity.Execution.FinishUtc = _clock.UtcNow;
            }
        }
コード例 #3
0
        private void SetUpDefaults()
        {
            var utcNowMockDateTime = DateTime.Parse("2018-05-21T08:00:00"); // 4a "local"

            var ageGradeProcessDate = DateTime.Parse("2018-05-21 12:00:00AM");
            var registrationDate    = DateTime.Parse("2018-05-21 1:00:00AM");
            var coreUpdateDate      = DateTime.Parse("2018-05-21 2:00:00AM");
            var ageGradeSyncDate    = DateTime.Parse("2018-05-21 3:00:00AM");
            var operationDates      = new OperationDates
            {
                RegistrationSyncDate   = registrationDate,
                CoreUpdateSyncDate     = coreUpdateDate,
                AgeAndGradeProcessDate = ageGradeProcessDate,
                AgeAndGradeSyncDate    = ageGradeSyncDate
            };

            var initialChildAgeGradeDto = new ChildAgeAndGradeDeltaLogDto
            {
                InsertCount      = 20,
                UpdateCount      = 2,
                ProcessedUtc     = DateTime.Parse("2018-05-22 12:00:00AM"),
                SyncCompletedUtc = null
            };

            var finalChildAgeGradeDto = new ChildAgeAndGradeDeltaLogDto
            {
                InsertCount      = 20,
                UpdateCount      = 2,
                ProcessedUtc     = DateTime.Parse("2018-05-22 12:00:00AM"),
                SyncCompletedUtc = DateTime.Parse("2018-05-22 03:00:00AM")
            };

            var ageGradeGroups = new List <AgeAndGradeGroupCountsForMpContactDto>();

            _mpContactRepoMock.Setup(repo => repo.CalculateAndPersistKidsClubAndStudentMinistryAgeAndGradeDeltas()).Returns(initialChildAgeGradeDto);
            _mpContactRepoMock.Setup(repo => repo.GetAgeAndGradeGroupDataForContacts()).Returns(ageGradeGroups);
            _mpContactRepoMock.Setup(repo => repo.SetChildAgeAndGradeDeltaLogSyncCompletedUtcDate()).Returns(finalChildAgeGradeDto.SyncCompletedUtc ?? default(DateTime));
            _mpContactRepoMock.Setup(repo => repo.GetNewlyRegisteredContacts(operationDates.RegistrationSyncDate)).Returns(new List <NewlyRegisteredMpContactDto>());
            _mpContactRepoMock.Setup(repo => repo.GetAuditedContactUpdates(operationDates.CoreUpdateSyncDate)).Returns(new Dictionary <string, List <CoreUpdateMpContactDto> >());
            _hubSpotSyncerMock.Setup(syncer => syncer.BulkSync(It.IsAny <BulkHubSpotContact[]>(), 1000)).Returns(new BulkSyncResult());
            _hubSpotSyncerMock.Setup(syncer => syncer.BulkSync(It.IsAny <BulkHubSpotContact[]>(), 100)).Returns(new BulkSyncResult());
            _hubSpotSyncerMock.Setup(syncer => syncer.BulkSync(It.IsAny <BulkHubSpotContact[]>(), 10)).Returns(new BulkSyncResult());
            _hubSpotSyncerMock.Setup(syncer => syncer.SerialCreate(It.IsAny <SerialHubSpotContact[]>())).Returns(new SerialSyncResult());
            _hubSpotSyncerMock.Setup(syncer => syncer.SerialUpdate(It.IsAny <SerialHubSpotContact[]>())).Returns(new SerialSyncResult());
            _hubSpotSyncerMock.Setup(syncer => syncer.ReconcileConflicts(It.IsAny <SerialHubSpotContact[]>())).Returns(new SerialSyncResult());
            _clockMock.Setup(clock => clock.UtcNow).Returns(utcNowMockDateTime);
            _configSvcMock.Setup(svc => svc.GetCurrentActivityProgress()).Returns(new ActivityProgress {
                ActivityState = ActivityState.Idle
            });
            _configSvcMock.Setup(svc => svc.GetLastSuccessfulOperationDates()).Returns(operationDates);
            _configSvcMock.Setup(svc => svc.PersistActivity()).Returns(true);
            _jobRepoMock.Setup(repo => repo.PersistActivityProgress(It.IsAny <ActivityProgress>()));
            _jobRepoMock.Setup(repo => repo.PersistLastSuccessfulOperationDates(It.IsAny <OperationDates>())).Returns <OperationDates>(x => x);
            _jobRepoMock.Setup(repo => repo.PersistHubSpotApiDailyRequestCount(It.IsAny <int>(), It.IsAny <DateTime>()));
            _jobRepoMock.Setup(repo => repo.PersistActivity(It.IsAny <Activity>()));
            _dataPrepMock.Setup(prep => prep.Prep(It.IsAny <IDictionary <string, List <CoreUpdateMpContactDto> > >())).Returns(new SerialHubSpotContact[0]);
            _dataPrepMock.Setup(prep => prep.Prep(It.IsAny <List <AgeAndGradeGroupCountsForMpContactDto> >())).Returns(new BulkHubSpotContact[0]);
            _dataPrepMock.Setup(prep => prep.Prep(It.IsAny <List <NewlyRegisteredMpContactDto> >())).Returns(new SerialHubSpotContact[0]);
            _dataPrepMock.Setup(prep => prep.ToBulk(It.IsAny <List <BulkSyncFailure> >())).Returns(new BulkHubSpotContact[0]);
            _dataPrepMock.Setup(prep => prep.ToSerial(It.IsAny <List <BulkSyncFailure> >())).Returns(new SerialHubSpotContact[0]);
            _activityCleanerMock.Setup(activityCleaner => activityCleaner.CleanUp(It.IsAny <IActivity>()));
        }