private void SaveProduct(UnitOfWork uof, product item, string name, List <category> listCategories) { Articolo articolo = new Articolo { Titolo = name, Condizione = enCondizioneArticolo.Nuovo, }; articolo.ArticoloWeb.Testo = name; articolo.Iva = 22; articolo.ArticoloWeb.PrezzoWeb = item.wholesale_price; if (articolo.ArticoloWeb.PrezzoWeb == 0) { articolo.ArticoloWeb.PrezzoWeb = item.price * 1.22m; } articolo.TagImport = "DaSitoWeb"; if (item.condition.Contains("new")) { articolo.Condizione = enCondizioneArticolo.Nuovo; } else if (item.condition.Contains("use")) { articolo.Condizione = enCondizioneArticolo.UsatoGarantito; } else { } /*categoria non specificato*/ articolo.CategoriaID = 239; var categEcommerce = listCategories.Where(a => item.id_category_default.Value == a.id.Value).FirstOrDefault(); if (categEcommerce != null) { var categName = categEcommerce.name.First().Value; var categDb = uof.CategorieRepository.Find(a => a.Nome == categName).FirstOrDefault(); if (categDb != null) { articolo.Prezzo = (categDb.PercMaggDaWebaNegozio + 100) * articolo.ArticoloWeb.PrezzoWeb / 100; articolo.CategoriaID = categDb.ID; } } var immagini = ReadImmage(item); articolo.ArticoloWeb.DescrizioneHtml = item.description.FirstOrDefault().Value; articolo.ArticoloWeb.DescrizioneBreveHtml = item.description_short.FirstOrDefault().Value; articolo.CaricainECommerce = false; uof.ArticoliRepository.Add(articolo); uof.Commit(); var artImp = new ArticoloImportato() { CodiceArticoloEcommerce = item.id.Value.ToString(), XmlDatiProdotto = item.ToString() }; foreach (var itemImage in item.associations.images) { var image = _imageFactory.GetProductImage(item.id.Value, itemImage.id); if (artImp.Immagine1 == null) { artImp.Immagine1 = image; } else if (artImp.Immagine2 == null) { artImp.Immagine2 = image; } else if (artImp.Immagine3 == null) { artImp.Immagine3 = image; } } artImp.XmlDatiProdotto = StrumentiMusicali.Core.Manager.ManagerLog.SerializeXmlObject(item); uof.ArticoloImportatoWebRepository.Add(artImp); var agg = uof.AggiornamentoWebArticoloRepository.Find(a => articolo.ID == a.ArticoloID).First(); agg.CodiceArticoloEcommerce = item.id.Value.ToString(); agg.Link = item.link_rewrite.First().Value.ToString(); uof.AggiornamentoWebArticoloRepository.Update(agg); uof.Commit(); var depoPrinc = uof.DepositoRepository.Find(a => a.Principale == true).First(); uof.MagazzinoRepository.Add(new Library.Entity.Magazzino() { ArticoloID = articolo.ID, DepositoID = depoPrinc.ID, Qta = 1, PrezzoAcquisto = 0 }); uof.Commit(); if (immagini.Count() > 0 && !ImageArticoloSave.AddImageFiles( new ImageArticoloAddFiles(articolo, immagini, new ControllerFake()))) { throw new MessageException("Non si sono salvati correttamente le immagini degli articoli"); } try { item.reference = articolo.ID.ToString(); _productFactory.Update(item); } catch (Exception exT) { try { item.position_in_category = 0; _productFactory.Update(item); } catch (Exception ex) { } } }
private void AddImageFiles(ImageArticoloAddFiles args) { ImageArticoloSave.AddImageFiles(args); }