public static async Task CopyToPoweroffice( // Trigger every six minutes, offset by three. [TimerTrigger("30 3-59/6 * * * *")] TimerInfo timer, ILogger logger) { try { var webcrmClientFactory = new WebcrmClientFactory(logger, TypedEnvironment.WebcrmApiBaseUrl); var powerofficeQueueFactory = new PowerofficeQueueFactory(logger, TypedEnvironment.AzureWebJobsStorage); var webcrmChangeTracker = await WebcrmToPowerofficeChangeTracker.Create(logger, webcrmClientFactory, powerofficeQueueFactory); var configService = await PowerofficeConfigService.Create(TypedEnvironment.DatabaseCredentials); var configurations = configService.LoadEnabledPowerofficeConfigurations(); foreach (var configuration in configurations) { var dateTimeBeforeSync = DateTime.UtcNow; await webcrmChangeTracker.EnqueueUpsertedItemsToPoweroffice(configuration.LastSuccessfulCopyToErpHeartbeat, configuration); await configService.UpdateLastSuccessfulCopyToErpHeartbeat(configuration.WebcrmSystemId, dateTimeBeforeSync); } } catch (SwaggerException ex) { SwaggerExceptionLogger.Log(ex); } }
protected BaseTester(ITestOutputHelper output) { OutputLogger = new XunitLogger(output); TestPowerofficeClientFactory = new PowerofficeClientFactory(TestTypedEnvironment.PowerofficeApiSettings); TestPowerofficeQueueFactory = new PowerofficeQueueFactory(OutputLogger, TestTypedEnvironment.AzureWebJobsStorage); TestWebcrmClientFactory = new WebcrmClientFactory(OutputLogger, TestTypedEnvironment.WebcrmApiBaseUrl); }
public static WebcrmToFortnoxChangeTracker Create( ILogger logger, WebcrmClientFactory webcrmClientFactory, FortnoxQueue fortnoxQueue) { var webcrmChangeTracker = new WebcrmToFortnoxChangeTracker(logger, webcrmClientFactory, fortnoxQueue); return(webcrmChangeTracker); }
private WebcrmToFortnoxChangeTracker( ILogger logger, WebcrmClientFactory webcrmClientFactory, FortnoxQueue fortnoxQueue) { Logger = logger; WebcrmClientFactory = webcrmClientFactory; Fortnox = fortnoxQueue; }
private WebcrmChangeTracker( ILogger logger, WebcrmClientFactory webcrmClientFactory, PowerofficeQueue powerofficeQueue) { Logger = logger; WebcrmClientFactory = webcrmClientFactory; PowerofficeQueue = powerofficeQueue; }
private FortnoxMessageDispatcher( ILogger logger, WebcrmClientFactory webcrmClientFactory, FortnoxConfigService fortnoxConfigService) { Logger = logger; WebcrmClientFactory = webcrmClientFactory; FortnoxConfigService = fortnoxConfigService; }
public static async Task <FortnoxMessageDispatcher> Create( ILogger logger, WebcrmClientFactory webcrmClientFactory, DatabaseCredentials databaseCredentials) { var fortnoxConfigService = await FortnoxConfigService.Create(databaseCredentials); return(new FortnoxMessageDispatcher(logger, webcrmClientFactory, fortnoxConfigService)); }
public static async Task <PowerofficeMessageDispatcher> Create( ILogger logger, WebcrmClientFactory webcrmClientFactory, DatabaseCredentials databaseCredentials, PowerofficeClientFactory powerofficeClientFactory) { var powerofficeConfigService = await PowerofficeConfigService.Create(databaseCredentials); return(new PowerofficeMessageDispatcher(logger, webcrmClientFactory, powerofficeClientFactory, powerofficeConfigService)); }
public static async Task <FortnoxChangeTracker> Create( ILogger logger, WebcrmClientFactory webcrmClientFactory, string storageAccountConnectionString, DatabaseCredentials databaseCredentials) { var fortnoxConfigService = await FortnoxConfigService.Create(databaseCredentials); return(new FortnoxChangeTracker(logger, webcrmClientFactory, storageAccountConnectionString, fortnoxConfigService)); }
internal static async Task <FortnoxDataCopier> Create( ILogger logger, WebcrmClientFactory webcrmClientFactory, FortnoxConfiguration configuration) { var webcrmClient = await webcrmClientFactory.Create(configuration.WebcrmApiKey); var fortnoxApiKeys = new FortnoxApiKeys(configuration.FortnoxAccessToken, configuration.FortnoxClientSecret); return(new FortnoxDataCopier(logger, fortnoxApiKeys, webcrmClient)); }
private PowerofficeMessageDispatcher( ILogger logger, WebcrmClientFactory webcrmClientFactory, PowerofficeClientFactory powerofficeClientFactory, PowerofficeConfigService powerofficeConfigService) { Logger = logger; WebcrmClientFactory = webcrmClientFactory; PowerofficeClientFactory = powerofficeClientFactory; PowerofficeConfigService = powerofficeConfigService; }
private FortnoxChangeTracker( ILogger logger, WebcrmClientFactory webcrmClientFactory, string storageAccountConnectionString, FortnoxConfigService fortnoxConfigService) { Logger = logger; WebcrmClientFactory = webcrmClientFactory; StorageAccountConnectionString = storageAccountConnectionString; FortnoxConfigService = fortnoxConfigService; }
public static async Task <WebcrmToPowerofficeChangeTracker> Create( ILogger logger, WebcrmClientFactory webcrmClientFactory, PowerofficeQueueFactory powerofficeQueueFactory) { var powerofficeQueue = await powerofficeQueueFactory.Create(); var webcrmChangeTracker = new WebcrmToPowerofficeChangeTracker(logger, webcrmClientFactory, powerofficeQueue); return(webcrmChangeTracker); }
public static async Task <WebcrmChangeTracker> Create( ILogger logger, WebcrmClientFactory webcrmClientFactory, string storageAccountConnectionString) { var powerofficeQueue = await PowerofficeQueue.Create(logger, storageAccountConnectionString); var webcrmChangeTracker = new WebcrmChangeTracker(logger, webcrmClientFactory, powerofficeQueue); return(webcrmChangeTracker); }
public static async Task <PowerofficeDataCopier> Create( ILogger logger, WebcrmClientFactory webcrmClientFactory, PowerofficeClientFactory powerofficeClientFactory, PowerofficeConfiguration configuration) { var powerofficeClient = await powerofficeClientFactory.Create(configuration.PowerofficeClientKey); var webcrmClient = await webcrmClientFactory.Create(configuration.WebcrmApiKey); return(new PowerofficeDataCopier(logger, configuration, powerofficeClient, webcrmClient)); }
public static async Task Run( [QueueTrigger(Constants.FortnoxQueueName)] string queueItem, ILogger logger) { try { var webcrmClientFactory = new WebcrmClientFactory(logger, TypedEnvironment.WebcrmApiBaseUrl); var fortnoxMessageDispatcher = await FortnoxMessageDispatcher.Create(logger, webcrmClientFactory, TypedEnvironment.DatabaseCredentials); var message = JsonConvert.DeserializeObject <FortnoxQueueMessage>(queueItem); await fortnoxMessageDispatcher.HandleDequeuedMessage(message); } catch (SwaggerException ex) { SwaggerExceptionLogger.Log(ex); } }
public static async Task Run( [QueueTrigger(Constants.PowerofficeQueueName)] string queueItem, ILogger logger) { logger.LogTrace($"Dequeuing message from the '{Constants.PowerofficeQueueName}' queue."); try { var webcrmClientFactory = new WebcrmClientFactory(logger, TypedEnvironment.WebcrmApiBaseUrl); var powerofficeClientFactory = new PowerofficeClientFactory(TypedEnvironment.PowerofficeApiSettings); var dispatcher = await PowerofficeMessageDispatcher.Create(logger, webcrmClientFactory, TypedEnvironment.DatabaseCredentials, powerofficeClientFactory); var message = JsonConvert.DeserializeObject <PowerofficeQueueMessage>(queueItem); await dispatcher.HandleDequeuedMessage(message); } catch (SwaggerException ex) { SwaggerExceptionLogger.Log(ex); } }