public EsasSyncStrategy(SyncStrategySettings syncStrategySettings, IEsasEntitiesLoaderStrategy esasEntitiesLoaderStrategy, IEsasSyncDestination syncDestination, ISyncResultsDestination syncResultsDestination, ILogger logger) { _syncResultsDestination = syncResultsDestination; _logger = logger; SyncStrategySettings = syncStrategySettings; EsasEntitiesLoaderStrategy = esasEntitiesLoaderStrategy; _esasSyncDestination = syncDestination; }
public DateTime GetLoadTimeCutoff(IEsasEntitiesLoaderStrategy esasEntitiesLoaderStrategy) { string loaderStrategyName = esasEntitiesLoaderStrategy.GetType().Name; var dbContext = esasDbContextFactory.CreateDbContext(); using (dbContext) { var latestSuccesfulLoadTime = dbContext.EsasSyncResults .OrderByDescending(ls => ls.SyncStartTimeUTC) .FirstOrDefault(ls => ls.esasLoadResult.LoaderStrategyName == loaderStrategyName && ls.esasLoadResult.EsasLoadStatus == DAL.Models.EsasOperationResultStatus.OperationSuccesful && ls.esasSendResult.SendToDestinationStatus == DAL.Models.EsasOperationResultStatus.OperationSuccesful ); if (latestSuccesfulLoadTime != null) { return(latestSuccesfulLoadTime.SyncStartTimeUTC); } else { // there's not a latest load-time available to us, so let's go 10 minutes back in time return(DateTime.UtcNow.AddMinutes(-10)); } } }
public DateTime GetLoadTimeCutoff(IEsasEntitiesLoaderStrategy esasEntitiesLoaderStrategy) { return(new DateTime(1963, 11, 22)); // J.F.K. RIP }