Exemplo n.º 1
0
        private void UpdateImage(ArticoloBase artDb, product artWeb, UnitOfWork uof)
        {
            DateTime date = DateTime.Now;

            /*cancello le immagini e le sovrascrivo*/
            foreach (var item in artWeb.associations.images)
            {
                _syncroBasePresta._imageFactory.DeleteProductImage(artWeb.id.Value, item.id);
            }
            var settingSito = SettingSitoValidator.ReadSetting();

            var imageList = uof.FotoArticoloRepository.Find(a => a.ArticoloID == artDb.ArticoloID).OrderBy(a => a.Ordine).ToList();

            var listFotoArticolo = imageList.Select(a => new ImmaginiFile <FotoArticolo>(Path.Combine(
                                                                                             settingSito.CartellaLocaleImmagini, a.UrlFoto)
                                                                                         , a.UrlFoto, a)).ToList();

            foreach (var item in listFotoArticolo)
            {
                _syncroBasePresta._imageFactory.AddProductImage(artWeb.id.Value, item.File);
            }
            var aggiornamento = artDb.Aggiornamento;

            aggiornamento.DataUltimoAggFoto    = date;
            aggiornamento.DataUltimoAggFotoWeb = date;
            SalvaAggiornamento(uof, aggiornamento);
        }
Exemplo n.º 2
0
        private void UpdateImage(ArticoloBase artDb, WooCommerceNET.WooCommerce.v3.Product artWeb, UnitOfWork uof)
        {
            //DateTime date = DateTime.Now;
            /*cancello le immagini e le sovrascrivo*/
            artWeb.images.Clear();
            foreach (var item in artWeb.images)
            {
            }
            var settingSito = SettingSitoValidator.ReadSetting();

            var imageList = uof.FotoArticoloRepository.Find(a => a.ArticoloID == artDb.ArticoloID).OrderBy(a => a.Ordine).ToList();

            var listFotoArticolo = imageList.Select(a => new ImmaginiFile <FotoArticolo>(Path.Combine(
                                                                                             settingSito.CartellaLocaleImmagini, a.UrlFoto)
                                                                                         , a.UrlFoto, a)).ToList();

            int ord = 0;

            foreach (var item in listFotoArticolo)
            {
                ///provaale.atwebpages.com/wp-content/uploads/2021/03
                artWeb.images.Add(new ProductImage()
                {
                    src = item.File, position = ord, name = item.Name, alt = artDb.ArticoloDb.Titolo
                });
                ord++;
            }
            //var aggiornamento = artDb.Aggiornamento;

            //aggiornamento.DataUltimoAggFoto = date;
            //aggiornamento.DataUltimoAggFotoWeb = date;
            //SalvaAggiornamento(uof, aggiornamento);
        }
Exemplo n.º 3
0
        //public void ImportaCsvArticoli()
        //{
        //    try
        //    {
        //        using (OpenFileDialog res = new OpenFileDialog())
        //        {
        //            res.Title = "Seleziona file da importare";
        //            //Filter
        //            res.Filter = "File csv|*.csv;";

        //            //When the user select the file
        //            if (res.ShowDialog() == DialogResult.OK)
        //            {
        //                //Get the file's path
        //                var fileName = res.FileName;

        //                using (var curs = new CursorManager())
        //                {
        //                    using (StreamReader sr = new StreamReader(fileName, Encoding.Default, true))
        //                    {
        //                        String line;
        //                        bool firstLine = true;
        //                        int progress = 1;
        //                        // Read and display lines from the file until the end of
        //                        // the file is reached.
        //                        using (var uof = new UnitOfWork())
        //                        {
        //                            while ((line = sr.ReadLine()) != null)
        //                            {
        //                                if (!firstLine)
        //                                {
        //                                    progress = ImportLine(line, progress, uof);
        //                                }
        //                                firstLine = false;
        //                            }
        //                            uof.Commit();
        //                        }
        //                    }
        //                }
        //                EventAggregator.Instance().Publish<UpdateList<Articolo>>(new UpdateList<Articolo>(this));
        //                MessageManager.NotificaInfo("Terminata importazione articoli");
        //            }
        //        }
        //    }
        //    catch (Exception ex)
        //    {
        //        ExceptionManager.ManageError(ex);
        //    }
        //}

        //private int ImportLine(string line, int progress, UnitOfWork uof)
        //{
        //    var dat = line.Split('§');
        //    var cond = enCondizioneArticolo.Nuovo;
        //    if (dat[2] == "N")
        //    {
        //        cond = enCondizioneArticolo.Nuovo;
        //    }
        //    else if (dat[2] == "U")
        //    {
        //        cond = enCondizioneArticolo.UsatoGarantito;
        //    }
        //    else if (dat[2] == "E")
        //    {
        //        cond = enCondizioneArticolo.ExDemo;
        //    }
        //    else
        //    {
        //        throw new Exception("Tipo dato non gestito o mancante nella condizione articolo.");
        //    }
        //    decimal prezzo = 0;
        //    decimal prezzoBarrato = 0;
        //    bool prezzoARichiesta = false;
        //    var strPrezzo = dat[6];
        //    if (strPrezzo == "NC")
        //    {
        //        prezzoARichiesta = true;
        //    }
        //    else if (strPrezzo.Contains(";"))
        //    {
        //        prezzo = decimal.Parse(strPrezzo.Split(';')[0]);

        //    }
        //    else
        //    {
        //        if (strPrezzo.Trim().Length > 0)
        //        {
        //            prezzo = decimal.Parse(strPrezzo);
        //        }
        //    }
        //    var artNew = (new Articolo()
        //    {
        //        CategoriaID = int.Parse(dat[1]),
        //        Condizione = cond,

        //        Titolo = dat[4],
        //        Testo = dat[5].Replace("<br>", Environment.NewLine),
        //        Prezzo = prezzo,


        //    });
        //    artNew.Strumento.Marca = dat[3];
        //    uof.ArticoliRepository.Add(artNew);
        //    var foto = dat[7];
        //    if (foto.Length > 0)
        //    {
        //        int ordine = 0;
        //        foreach (var item in foto.Split(';'))
        //        {
        //            var artFoto = new FotoArticolo()
        //            {
        //                Articolo = artNew,
        //                UrlFoto = item,
        //                Ordine = ordine
        //            };
        //            ordine++;
        //            uof.FotoArticoloRepository.Add(artFoto);
        //        }
        //    }

        //    return progress;
        //}

        private void DeleteArticolo(object obj)
        {
            try
            {
                if (!MessageManager.QuestionMessage("Sei sicuro di voler cancellare l'articolo selezionato?"))
                {
                    return;
                }
                using (var save = new SaveEntityManager())
                {
                    using (var immaginiController = new ControllerImmagini())
                    {
                        var item = save.UnitOfWork.ArticoliRepository.Find(a => a.ID ==
                                                                           this.SelectedItem.ID).FirstOrDefault();
                        _logger.Info(string.Format("Cancellazione articolo /r/n{0} /r/n{1}", item.Titolo, item.ID));

                        if (!immaginiController.CheckFolderImmagini())
                        {
                            return;
                        }

                        var folderFoto = SettingSitoValidator.ReadSetting().CartellaLocaleImmagini;
                        var listFile   = new List <string>();
                        foreach (var itemFoto in save.UnitOfWork.FotoArticoloRepository.Find(a => a.ArticoloID == item.ID))
                        {
                            immaginiController.RimuoviItemDaRepo(
                                folderFoto, listFile, save.UnitOfWork, itemFoto);
                        }
                        immaginiController.DeleteFile(listFile);
                        var mag = save.UnitOfWork.MagazzinoRepository.Find(a => a.ArticoloID == item.ID);
                        foreach (Magazzino itemMg in mag)
                        {
                            save.UnitOfWork.MagazzinoRepository.Delete(itemMg);
                        }
                        foreach (var itemAgg in save.UnitOfWork.AggiornamentoWebArticoloRepository.Find(a => a.ArticoloID == item.ID))
                        {
                            save.UnitOfWork.AggiornamentoWebArticoloRepository.Delete(itemAgg);
                        }

                        save.UnitOfWork.ArticoliRepository.Delete(item);

                        if (save.SaveEntity(enSaveOperation.OpDelete))
                        {
                            EventAggregator.Instance().Publish <UpdateList <Articolo> >(new UpdateList <Articolo>(this));
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                ExceptionManager.ManageError(ex);
            }
        }
Exemplo n.º 4
0
        public void UpdateFromWeb(bool onlyOne = false)
        {
            var _orderFact = _wc.Order;

            var setting = SettingSitoValidator.ReadSetting();

            DateTime StartDate = setting.WooCommerceSetting.DataUltimoOrdineGiacenza;

            //if (StartDate.Year == 1900)
            //{
            //    Core.Manager.ManagerLog.Logger.Warn(@"Occorre impostare la data ultimo ordine
            //        giacenza nei settaggi per il sito prestashop");
            //    return;
            //}
            if (StartDate.Year == 1900)
            {
                StartDate = DateTime.Now.AddDays(-45);
            }
            Dictionary <string, string> filter = new Dictionary <string, string>();
            string dFrom = StartDate.ToString("s", System.Globalization.CultureInfo.InvariantCulture);

            filter.Add("after", dFrom);
            filter.Add("orderby", "id");

            var ordersT = _orderFact.GetAll(filter);

            ordersT.Wait();
            var orders = ordersT.Result;

            if (orders.Count() == 0)
            {
                /*Non ci sono aggiornamenti*/
                return;
            }
            var maxUpdate = orders.Select(a => a.date_created.Value).ToList()
                            .Max(a => a);

            var righe = orders.SelectMany(a => a.line_items)
                        .Where(a => a.product_id.HasValue).Select(a => a.product_id.Value).Distinct().ToList();

            using (var uof = new UnitOfWork())
            {
                var depoPrinc = uof.DepositoRepository.Find(a => a.Principale == true).First();

                UpdateProdotti(righe, uof, depoPrinc);
                /*rileggo il dato per essere sicuro che sia atomica la transazione*/
                setting = SettingSitoValidator.ReadSetting();
                setting.WooCommerceSetting.DataUltimoOrdineGiacenza = maxUpdate.AddSeconds(1);
                uof.SettingSitoRepository.Update(setting);
                uof.Commit();
            }
        }
Exemplo n.º 5
0
        public static bool AddImageFiles(ImageArticoloAddFiles args)
        {
            if (!CheckFolderImmagini())
            {
                return(false);
            }
            try
            {
                var folderFoto = SettingSitoValidator.ReadSetting().CartellaLocaleImmagini;
                using (var save = new SaveEntityManager())
                {
                    var uof           = save.UnitOfWork;
                    var maxOrdineItem = uof.FotoArticoloRepository
                                        .Find(a => a.ArticoloID == args.Articolo.ID)
                                        .OrderByDescending(a => a.Ordine).FirstOrDefault();

                    var maxOrdine = 0;
                    if (maxOrdineItem != null)
                    {
                        maxOrdine = maxOrdineItem.Ordine + 1;
                    }

                    foreach (var item in args.Files)
                    {
                        var file = new FileInfo(item);

                        var newName = DateTime.Now.Ticks.ToString() + file.Extension;
                        File.Copy(item, Path.Combine(folderFoto, newName));

                        uof.FotoArticoloRepository.Add(
                            new FotoArticolo()
                        {
                            ArticoloID = args.Articolo.ID,
                            UrlFoto    = newName,
                            Ordine     = maxOrdine
                        });
                        maxOrdine++;
                    }

                    if (save.SaveEntity(string.Format(@"{0} Immagine\i aggiunta\e", args.Files.Count())))
                    {
                        EventAggregator.Instance().Publish <ImageListUpdate>(new ImageListUpdate());
                        return(true);
                    }
                }
            }
            catch (Exception ex)
            {
                ExceptionManager.ManageError(ex);
            }
            return(false);
        }
Exemplo n.º 6
0
        internal List <ImmaginiFile <FotoArticolo> > RefreshImageListData()
        {
            using (var uof = new UnitOfWork())
            {
                var settingSito = SettingSitoValidator.ReadSetting();

                var imageList = uof.FotoArticoloRepository.Find(a => a.Articolo.ID == this.EditItem.ID)
                                .OrderBy(a => a.Ordine).ToList();

                _listFotoArticolo = imageList.Select(a => new ImmaginiFile <FotoArticolo>(Path.Combine(
                                                                                              settingSito.CartellaLocaleImmagini, a.UrlFoto)
                                                                                          , a.UrlFoto, a)).ToList();

                return(_listFotoArticolo.ToList());
            }
        }
Exemplo n.º 7
0
        public void UpdateFromWeb(bool onlyOne = false)
        {
            var _orderFact = new OrderFactory(_url, _autKey, "");

            var setting = SettingSitoValidator.ReadSetting();

            DateTime StartDate = setting.PrestaShopSetting.DataUltimoOrdineGiacenza;

            if (StartDate.Year == 1900)
            {
                Core.Manager.ManagerLog.Logger.Warn(@"Occorre impostare la data ultimo ordine
                    giacenza nei settaggi per il sito prestashop");
                return;
            }
            DateTime EndDate = DateTime.Now.AddDays(1);
            Dictionary <string, string> filter = new Dictionary <string, string>();
            string dFrom = string.Format("{0:yyyy-MM-dd HH:mm:ss}", StartDate);
            string dTo   = string.Format("{0:yyyy-MM-dd HH:mm:ss}", EndDate);

            filter.Add("date_upd", "[" + dFrom + "," + dTo + "]");

            var orders = _orderFact.GetByFilter(filter, "date_upd_ASC", null);

            if (orders.Count() == 0)
            {
                /*Non ci sono aggiornamenti*/
                return;
            }
            var maxUpdate = orders.Select(a => a.date_upd).ToList()
                            .Select(a => DateTime.Parse(a)).Max(a => a);

            var righe = orders.SelectMany(a => a.associations.order_rows)
                        .Where(a => a.product_id.HasValue).Select(a => a.product_id.Value).Distinct().ToList();

            using (var uof = new UnitOfWork())
            {
                var depoPrinc = uof.DepositoRepository.Find(a => a.Principale == true).First();

                UpdateProdotti(righe, uof, depoPrinc);
                /*rileggo il dato per essere sicuro che sia atomica la transazione*/
                setting = SettingSitoValidator.ReadSetting();
                setting.PrestaShopSetting.DataUltimoOrdineGiacenza = maxUpdate.AddSeconds(1);
                uof.SettingSitoRepository.Update(setting);
                uof.Commit();
            }
        }
Exemplo n.º 8
0
        private void ShowViewDettaglio()
        {
            if (!SettingSitoValidator.CheckFolderImmagini())
            {
                return;
            }

            using (var view = new DettaglioArticoloView(this))
            {
                //view.BindProp(EditItem,"");
                view.OnSave += (a, b) =>
                {
                    view.Validate();
                    EventAggregator.Instance().Publish <Save <Articolo> >
                        (new Save <Articolo>(this));
                };

                ShowView(view, enAmbiente.StrumentiDetail);
            }
        }
Exemplo n.º 9
0
        private void ApriSettingSito()
        {
            var settingSito = SettingSitoValidator.ReadSetting();

            var view = new GenericSettingView(settingSito);
            {
                view.OnSave += (a, b) =>
                {
                    using (var cur = new CursorManager())
                    {
                        view.Validate();
                        using (var save = new SaveEntityManager())
                        {
                            save.UnitOfWork.SettingSitoRepository.Update(settingSito);
                            save.SaveEntity(enSaveOperation.OpSave);
                        }
                    }
                };
                this.ShowView(view, enAmbiente.SettingSito);
            }
        }
Exemplo n.º 10
0
        private void RemoveImage(ImageArticoloRemove obj)
        {
            if (!CheckFolderImmagini())
            {
                return;
            }
            var folderFoto = SettingSitoValidator.ReadSetting().CartellaLocaleImmagini;

            try
            {
                if (!MessageManager.QuestionMessage("Sei sicuro di voler cancellare l'immagine selezionata?"))
                {
                    return;
                }
                var listFileToDelete = new List <string>();
                using (var curs = new CursorManager())
                {
                    using (var uof = new UnitOfWork())
                    {
                        var item = uof.FotoArticoloRepository.Find(
                            a => a.ID == obj.FotoArticolo.ID).FirstOrDefault();
                        if (item == null)
                        {
                            return;
                        }
                        RimuoviItemDaRepo(folderFoto, listFileToDelete, uof, item);

                        uof.Commit();
                    }
                }
                EventAggregator.Instance().Publish <ImageListUpdate>(new ImageListUpdate());
                DeleteFile(listFileToDelete);
                MessageManager.NotificaInfo("Eliminazione avvenuta con successo");
            }
            catch (Exception ex)
            {
                ExceptionManager.ManageError(ex);
            }
        }
Exemplo n.º 11
0
 /// <summary>
 /// Controllo la cartella locale per le immagini se è correttamente settata e attiva
 /// </summary>
 /// <returns></returns>
 public bool CheckFolderImmagini()
 {
     return(SettingSitoValidator.CheckFolderImmagini());
 }
Exemplo n.º 12
0
 /// <summary>
 /// Controllo la cartella locale per le immagini se è correttamente settata e attiva
 /// </summary>
 /// <returns></returns>
 private static bool CheckFolderImmagini()
 {
     return(SettingSitoValidator.CheckFolderImmagini());
 }