public static async Task CopyFromPoweroffice( // Trigger every six minutes. [TimerTrigger("30 */6 * * * *")] TimerInfo timer, ILogger logger) { try { var configService = await PowerofficeConfigService.Create(TypedEnvironment.DatabaseCredentials); var powerofficeClientFactory = new PowerofficeClientFactory(TypedEnvironment.PowerofficeApiSettings); var powerofficeQueueFactory = new PowerofficeQueueFactory(logger, TypedEnvironment.AzureWebJobsStorage); var powerofficeChangeTracker = await PowerofficeChangeTracker.Create(logger, powerofficeClientFactory, powerofficeQueueFactory); var configurations = configService.LoadEnabledPowerofficeConfigurations(); foreach (var configuration in configurations) { var dateTimeBeforeSync = DateTime.UtcNow; await powerofficeChangeTracker.EnqueueUpsertedItemsForOneSystem(configuration.LastSuccessfulCopyFromErpHeartbeat, configuration); await configService.UpdateLastSuccessfulCopyFromErpHeartbeat(configuration.WebcrmSystemId, dateTimeBeforeSync); } } catch (SwaggerException ex) { SwaggerExceptionLogger.Log(ex); } }
public PowerofficeChangeTrackerTester(ITestOutputHelper output) : base(output) { // It's safe to use .Result in the tests. ChangeTracker = Task.Run(() => PowerofficeChangeTracker.Create( OutputLogger, TestPowerofficeClientFactory, TestPowerofficeQueueFactory)).Result; }
public PowerofficeChangeTrackerTester(ITestOutputHelper output) : base(output) { // It's safe to use .Result in the tests. ChangeTracker = Task.Run(() => PowerofficeChangeTracker.Create( OutputLogger, TestTypedEnvironment.AzureWebJobsStorage, TestPowerofficeClientFactory)).Result; }