コード例 #1
0
ファイル: Productos.cs プロジェクト: Marcosibushak/BuyBox
        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);
            });
        }
コード例 #2
0
ファイル: Productos.cs プロジェクト: Marcosibushak/BuyBox
        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);
            });
        }