Ejemplo n.º 1
0
        /// <summary>
        /// Tutti gli articoli che sono con il flag CaricainECommerce e
        /// </summary>
        public void AggiornaWeb()
        {
            using (var uof = new UnitOfWork())
            {
                using (var groupsync = new CategorySync())
                {
                    groupsync.AllineaCategorieReparti();
                }
                var listArt = UpdateProducts(uof);

                using (var stockPr = new StockProducts(this))
                {
                    var listStockArt = stockPr.UpdateStock(uof);

                    listArt.AddRange(listStockArt);
                }
                using (var imgPr = new ImageProduct(this))
                {
                    listArt.AddRange(imgPr.UpdateImages(uof));
                }
                var listArtId = listArt.FindAll(a => a.Aggiornamento.ForzaAggiornamento == true).Select(a => a.ArticoloID).Distinct().ToList();

                var aggToFix = uof.AggiornamentoWebArticoloRepository.Find(a => listArtId.Contains(a.ArticoloID) && a.ForzaAggiornamento).ToList();
                foreach (var item in aggToFix)
                {
                    uof.AggiornamentoWebArticoloRepository.Update(item);
                }
                uof.Commit();
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Salva quelli che non sono presenti in locale
        /// </summary>
        /// <returns>ritorna quanti sono stati inseriti</returns>
        public int SaveLocalFromSite()
        {
            int count = 0;

            using (var uof = new UnitOfWork())
            {
                using (var categ = new CategorySync())
                {
                    var listCategories = categ.LeggiCategorieDalWeb();

                    //Dictionary<string, string> filter = new Dictionary<string, string>();
                    //filter.Add("Name", "EKO RANGER");
                    var listProd = new List <product>();

                    var codiciGiaPresenti = uof.AggiornamentoWebArticoloRepository.Find(a => a.CodiceArticoloEcommerce != null).Select(a => a.CodiceArticoloEcommerce).ToList();
                    var listIdProdWeb     = _productFactory.GetIds().OrderBy(a => a).Select(a => a.ToString()).ToList();
                    //prendo quelli che non sono già salvati
                    foreach (var item in listIdProdWeb.Where(a => !codiciGiaPresenti.Contains(a)))
                    {
                        var prod = _productFactory.Get(long.Parse(item));
                        listProd.Add(prod);
                        Console.WriteLine("Prodotto :" + prod.name.First().Value);
                    }
                    foreach (var item in listProd)
                    {
                        var codice = item.id.Value.ToString();

                        var name     = item.name.First().Value;
                        var articolo = uof.AggiornamentoWebArticoloRepository.Find(a => a.CodiceArticoloEcommerce == codice).Select(a => a.Articolo).FirstOrDefault();
                        if (articolo == null)
                        {
                            try
                            {
                                Console.WriteLine("avvio salvataggio per codice articolo web:" + codice);
                                SaveProduct(uof, item, name, listCategories);
                                Console.WriteLine("Salvato nuovo articolo dal web:" + name);
                                count++;
                            }
                            catch (Exception ex)
                            {
                                Console.WriteLine("Errore:" + ex.Message);

                                Console.WriteLine("Vuoi continuare ? Y/N");
                                if (Console.ReadLine().ToUpperInvariant() != "Y")
                                {
                                    return(count);
                                }
                            }
                        }
                        else
                        {
                            Console.WriteLine("Articolo già presente per codice:" + name);
                        }
                    }
                }
            }
            return(count);
        }