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); }
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); }
//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); } }
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(); } }
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); }
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()); } }
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(); } }
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); } }
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); } }