private void ProcesarUpc(IEnumerable <UPC> lstUpcs) { ItemLookupResponse responseUpc; OBitacora.GuardarLinea($"{ DateTime.Now:yyyy-MM-dd hh:mm:ss}|Productos|Generando la lista de UPC"); var lstUpc = lstUpcs.Select(upc => upc.Id).ToList(); OBitacora.GuardarLinea($"{ DateTime.Now:yyyy-MM-dd hh:mm:ss}|Productos|Dividiendo la lista de UPC en sublistas de 10"); var subLstUpc = lstUpc .Select((x, i) => new { Index = i, Value = x }) .GroupBy(x => x.Index / 10) .Select(x => x.Select(v => v.Value).ToList()) .ToList(); subLstUpc.ForEach(lst => { OBitacora.GuardarLinea($"{ DateTime.Now:yyyy-MM-dd hh:mm:ss}|Productos|Obteniendo datos de AWS de la lista UPC"); Thread.Sleep(2000); responseUpc = OAwsHelper.ItemLookUp(lst, ItemLookupRequestIdType.UPC); OBitacora.GuardarLinea($"{ DateTime.Now:yyyy-MM-dd hh:mm:ss}|Productos|Validando Productos UPC"); ValidacionProductosUpc(responseUpc); }); }
private void ProcesarAsin(IEnumerable <ASIN> lstAsins) { ItemLookupResponse responseAsin; OBitacora.GuardarLinea($"{ DateTime.Now:yyyy-MM-dd hh:mm:ss}|Productos|Generando la lista de ASIN"); var lstAsin = (from asin in lstAsins select asin.Id).ToList(); OBitacora.GuardarLinea($"{ DateTime.Now:yyyy-MM-dd hh:mm:ss}|Productos|Dividiendo la lista de ASIN en sublistas de 10"); var subLstAsin = lstAsin .Select((x, i) => new { Index = i, Value = x }) .GroupBy(x => x.Index / 10) .Select(x => x.Select(v => v.Value.Replace("\r", "").Replace("\n", "")).ToList()) .ToList(); subLstAsin.ForEach(lst => { OBitacora.GuardarLinea($"{ DateTime.Now:yyyy-MM-dd hh:mm:ss}|Productos|Obteniendo datos de AWS de la lista ASIN"); Thread.Sleep(2000); responseAsin = OAwsHelper.ItemLookUp(lst, ItemLookupRequestIdType.ASIN); if (responseAsin.Items.First().Item == null || responseAsin.Items.First().Item.Length != lst.Count) { foreach (var item in lst) { if (responseAsin.Items.First().Item == null) { if (!ProductosAdapter.Existe(item)) { ProductosAdapter.Insertar(new Producto { ASIN = item.Replace("\r\n", ""), Offers = "No esta disponible en la api" }); } else { ProductosAdapter.Actualizar(new Producto { ASIN = item, Offers = "No esta disponible en la api" }); } continue; } var response = responseAsin.Items.First().Item.Select(x => x.ASIN).ToList(); if (!response.Contains(item.Replace("\r\n", ""))) { if (!ProductosAdapter.Existe(item.Replace("\r\n", ""))) { ProductosAdapter.Insertar(new Producto { ASIN = item.Replace("\r\n", ""), Offers = "No esta disponible en la api" }); } else { ProductosAdapter.Actualizar(new Producto { ASIN = item.Replace("\r\n", ""), Offers = "No esta disponible en la api" }); } } } } OBitacora.GuardarLinea($"{ DateTime.Now:yyyy-MM-dd hh:mm:ss}|Productos|Validando Productos ASIN"); ValidacionProductosAsin(responseAsin); }); }