private async Task ImportInventory(List <CSVDataSummary> eslst) { var itmlst = from i in eslst group i by i.ItemNumber.ToUpper() into g select new { ItemNumber = g.Key, g.FirstOrDefault().ItemDescription }; using (var ctx = new InventoryItemService()) { foreach (var item in itmlst) { var i = BaseDataModel.Instance.InventoryCache.GetSingle( x => x.ItemNumber.ToUpper() == item.ItemNumber.ToUpper()); if (i == null) { i = new InventoryItem() { Description = item.ItemDescription, ItemNumber = item.ItemNumber }; await ctx.CreateInventoryItem(i).ConfigureAwait(false); BaseDataModel.Instance.InventoryCache.AddItem(i); } } } }
private async Task ImportInventory(List <CSVDataSummary> eslst) { var itmlst = from i in eslst group i by i.ItemNumber.ToUpper() into g select new { ItemNumber = g.Key, g.FirstOrDefault().ItemDescription, g.FirstOrDefault().TariffCode }; using (var ctx = new InventoryItemService() { StartTracking = true }) { foreach (var item in itmlst) { var i = await ctx.GetInventoryItemByKey(item.ItemNumber, null, true).ConfigureAwait(false); if (i == null) { i = new InventoryItem(true) { Description = item.ItemDescription, ItemNumber = item.ItemNumber, TrackingState = TrackingState.Added }; if (!string.IsNullOrEmpty(item.TariffCode)) { i.TariffCode = item.TariffCode; } await ctx.CreateInventoryItem(i).ConfigureAwait(false); } else { i.StartTracking(); i.Description = item.ItemDescription; if (!string.IsNullOrEmpty(item.TariffCode)) { i.TariffCode = item.TariffCode; } await ctx.UpdateInventoryItem(i).ConfigureAwait(false); } } } }