public async Task DoWork(APipeLineContext context) { var bContext = ((BonusContext)context); var noPriceItems = bContext.Items.Where(x => x.ForPriceInCents == 0 || x.FromPriceInCents == 0).ToList(); logger.LogInformation($"Looking up {noPriceItems.Count} items"); await GetProductPriceData(noPriceItems); }
public async Task DoWork(APipeLineContext context) { var bContext = ((BonusContext)context); logger.LogInformation($"Saving {bContext.Items.Count} items"); using (var connection = new SqlConnection(this.ConnectionString)) { await connection.OpenAsync(); /// 1 2 3 4 5 var insertPart = "insert into BonusProductsEvents(Year, Week, ID, Title, StartDate, EndDate, FromPriceInCents, ForPriceInCents, DiscountText, UnitSize, Category, Link, Brand, ActiveAtNumberOfProducts, Store) VALUES "; var valuePart = "({0}, {1}, {2}, '{3}', '{4}', '{5}', {6}, {7}, '{8}', '{9}', '{10}', '{11}', '{12}', {13}, '{14}')"; var index = 0; var buffer = new List <string>(); while (index < bContext.Items.Count) { var item = bContext.Items[index]; buffer.Add(string.Format(valuePart, item.Year, item.Week, item.Id, CleanString(item.Title), FormatDate(item.StartDate), FormatDate(item.EndDate), item.FromPriceInCents, item.ForPriceInCents, CleanString(item.DiscountText), CleanString(item.UnitSize), CleanString(item.Category), CleanString(item.Link), CleanString(item.Brand), item.ActiveAtNumberOfProducts, CleanString(item.Store))); if (index % 1000 == 999) { await FlushData(connection, insertPart, buffer); } index++; } await FlushData(connection, insertPart, buffer); await connection.CloseAsync(); } }
public Task DoWork(APipeLineContext context) { Console.WriteLine("Beep"); return(Task.CompletedTask); }
public async Task DoWork(APipeLineContext context) { ((BonusContext)context).Items = await Get(); }