public static async Task Run([QueueTrigger("SalesFileEntriesQueue")] GithubFileEntry fileEntry, TraceWriter log,
                                     [Queue("SalesDataQueue")] ICollector <SaleDataObtainmentResult> saleDataQueue)
        {
            log.Info($"C# Queue trigger function processed: SalesDataLoaderFunction");

            string          token          = ConfigurationManager.AppSettings["token"];
            ISaleDataSource saleDataSource = DependencyContainer.Container.Resolve <ISaleDataSource>(new ResolverOverride[]
            {
                new ParameterOverride("fileEntry", fileEntry),
                new ParameterOverride("githubRepoToken", token)
            });

            SaleDataObtainmentResult obtainmentResult = await saleDataSource.GetSaleDataAsync().ConfigureAwait(false);

            if (obtainmentResult.Success)
            {
                log.Info($"[SalesDataLoaderFunction]: loaded {fileEntry.Url}");
            }
            else
            {
                log.Error($"[SalesDataLoaderFunction]: ERROR loading {fileEntry.Url} Reason: {obtainmentResult.ErrorMessage}");
            }

            saleDataQueue.Add(obtainmentResult);
        }
        public static async Task Run([QueueTrigger("SalesDataQueue")] SaleDataObtainmentResult saleDataObtainmentResult, TraceWriter log)
        {
            log.Info($"C# Queue trigger function processed: SalesDataSaverFunction");

            ISalesHandlerFactory handlerFactory = DependencyContainer.Container.Resolve <ISalesHandlerFactory>();
            SalesHandlerBase     salesHandler   = handlerFactory.GetSalesHandler();
            await salesHandler.HandleSaleDataAsync(saleDataObtainmentResult);
        }
 public override Task HandleSaleDataAsync(SaleDataObtainmentResult dataObtainmentResult)
 {
     return(Task.Delay(100));
 }