コード例 #1
0
        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)
                {
                }
            }
        }
コード例 #2
0
 private void AddImageFiles(ImageArticoloAddFiles args)
 {
     ImageArticoloSave.AddImageFiles(args);
 }