public void DeleteCatalog(Model.Local.Catalog catalog) { Model.Local.ArticleCatalogRepository ArticleCatalogRepository = new Model.Local.ArticleCatalogRepository(); //Suppression de tous les liens articles foreach (var articleCatalog in ArticleCatalogRepository.ListCatalog(catalog.Cat_Id)) { ArticleCatalogRepository.Delete(articleCatalog); } //Suppression image Model.Local.CatalogImageRepository CatalogImageRepository = new Model.Local.CatalogImageRepository(); if (catalog.CatalogImage != null && catalog.CatalogImage.Count > 0) { foreach (Model.Local.CatalogImage catalogimage in CatalogImageRepository.ListCatalog(catalog.Cat_Id)) { catalogimage.EraseFiles(); CatalogImageRepository.Delete(catalogimage); } } CatalogRepository.Delete(catalog); // <JG> 04/02/2013 ajout de la tentative de suppression du catalogue Prestashop try { if (catalog.Pre_Id != null) { Model.Prestashop.PsCategoryRepository PsCategoryRepository = new Model.Prestashop.PsCategoryRepository(); if (PsCategoryRepository.ExistId((int)catalog.Pre_Id)) { PsCategoryRepository.Delete(PsCategoryRepository.ReadId((UInt32)catalog.Pre_Id)); Core.Global.LaunchAlternetis_RegenerateCategoryTree(); Core.Global.LaunchAlternetis_ClearSmartyCache(); } } } catch (Exception ex) { Core.Error.SendMailError(ex.ToString()); } this.LoadCatalogs(); }
private void ExecLocalDistantImage(Model.Local.Catalog Catalog, Model.Prestashop.PsCategory PsCategory) { // We need to send pictures Model.Local.CatalogImageRepository CatalogImageRepository = new Model.Local.CatalogImageRepository(); Model.Local.CatalogImage CatalogImage = CatalogImageRepository.ReadCatalog(Catalog.Cat_Id, true); if (CatalogImage != null) { Model.Prestashop.PsImageTypeRepository PsImageTypeRepository = new Model.Prestashop.PsImageTypeRepository(); List <Model.Prestashop.PsImageType> ListPsImageType = PsImageTypeRepository.ListCategorie(1); if (Core.Global.GetConfig().ConfigFTPActive) { String FTP = Core.Global.GetConfig().ConfigFTPIP; String User = Core.Global.GetConfig().ConfigFTPUser; String Password = Core.Global.GetConfig().ConfigFTPPassword; string extension = System.IO.Path.GetExtension(CatalogImage.ImaCat_Image); String PathImgTmp = System.IO.Path.Combine(Global.GetConfig().Folders.TempCatalog, String.Format("{0}" + extension, CatalogImage.ImaCat_Id)); if (System.IO.File.Exists(PathImgTmp)) { string ftpfullpath = FTP + "/img/c/" + PsCategory.IDCategory + ".jpg"; System.Net.FtpWebRequest ftp = (System.Net.FtpWebRequest)System.Net.FtpWebRequest.Create(ftpfullpath); ftp.Credentials = new System.Net.NetworkCredential(User, Password); //userid and password for the ftp server to given ftp.UseBinary = true; ftp.UsePassive = true; ftp.EnableSsl = Core.Global.GetConfig().ConfigFTPSSL; ftp.Method = System.Net.WebRequestMethods.Ftp.UploadFile; System.IO.FileStream fs = System.IO.File.OpenRead(PathImgTmp); byte[] buffer = new byte[fs.Length]; fs.Read(buffer, 0, buffer.Length); fs.Close(); System.IO.Stream ftpstream = ftp.GetRequestStream(); ftpstream.Write(buffer, 0, buffer.Length); ftpstream.Close(); ftp.Abort(); foreach (Model.Prestashop.PsImageType PsImageType in ListPsImageType) { String PathImg = System.IO.Path.Combine(Global.GetConfig().Folders.RootCatalog, String.Format("{0}-{1}" + extension, CatalogImage.ImaCat_Id, PsImageType.Name)); if (System.IO.File.Exists(PathImg)) { ftpfullpath = FTP + "/img/c/" + PsCategory.IDCategory + "-" + PsImageType.Name + ".jpg"; ftp = (System.Net.FtpWebRequest)System.Net.FtpWebRequest.Create(ftpfullpath); ftp.Credentials = new System.Net.NetworkCredential(User, Password); //userid and password for the ftp server to given ftp.UseBinary = true; ftp.UsePassive = true; ftp.EnableSsl = Core.Global.GetConfig().ConfigFTPSSL; ftp.Method = System.Net.WebRequestMethods.Ftp.UploadFile; fs = System.IO.File.OpenRead(PathImg); buffer = new byte[fs.Length]; fs.Read(buffer, 0, buffer.Length); fs.Close(); ftpstream = ftp.GetRequestStream(); ftpstream.Write(buffer, 0, buffer.Length); ftpstream.Close(); ftp.Abort(); } } Core.Temp.SyncCatalogue_ClearSmartyCache = true; Core.Temp.SyncCatalogue_RegenerateTree = true; } } } }
private Boolean UpdateCatalogs(List <Model.Local.Catalog> Catalogs) { Boolean updated = false; DateTime now = DateTime.Now; foreach (var catalog in Catalogs) { if (catalog.HasLocalChild && catalog.HasUpdatedOrChild) { if (UpdateCatalogs(catalog.Catalog2.ToList())) { updated = true; } } if (catalog.HasNewImage) { try { Model.Local.CatalogImageRepository catalogImageRepository = new Model.Local.CatalogImageRepository(); bool isNew = false; Model.Local.CatalogImage image = catalogImageRepository.ReadCatalogImageByCatalog(catalog.Cat_Id); if (isNew = (image == null)) { image = new Model.Local.CatalogImage() { Cat_Id = catalog.Cat_Id, ImaCat_Image = string.Empty, }; catalogImageRepository.Add(image); } String extension = System.IO.Path.GetExtension(catalog.SmallImagePath).ToLower(); string uri = catalog.SmallImagePath.Replace("File:///", "").Replace("file:///", "").Replace("File://", "\\\\").Replace("file://", "\\\\").Replace("/", "\\"); string tempFile = System.IO.Path.Combine(Global.GetConfig().Folders.TempCatalog, String.Format("{0}" + extension, image.ImaCat_Id)); System.IO.File.Copy(catalog.SmallImagePath, tempFile, true); Model.Prestashop.PsImageTypeRepository PsImageTypeRepository = new Model.Prestashop.PsImageTypeRepository(); List <Model.Prestashop.PsImageType> ListPsImageType = PsImageTypeRepository.ListCategorie(1); System.Drawing.Image img = System.Drawing.Image.FromFile(tempFile); foreach (Model.Prestashop.PsImageType PsImageType in ListPsImageType) { Core.Img.resizeImage(img, Convert.ToInt32(PsImageType.Width), Convert.ToInt32(PsImageType.Height), System.IO.Path.Combine(Global.GetConfig().Folders.RootCatalog, String.Format("{0}-{1}" + extension, image.ImaCat_Id, PsImageType.Name))); } Core.Img.resizeImage(img, Core.Global.GetConfig().ConfigImageMiniatureWidth, Core.Global.GetConfig().ConfigImageMiniatureHeight, System.IO.Path.Combine(Global.GetConfig().Folders.SmallCatalog, String.Format("{0}" + extension, image.ImaCat_Id))); img.Dispose(); if (isNew || image.ImaCat_Image != String.Format("{0}" + extension, image.ImaCat_Id)) { image.ImaCat_Image = String.Format("{0}" + extension, image.ImaCat_Id); catalogImageRepository.Save(); } } catch (Exception ex) { Core.Error.SendMailError(ex.ToString()); } } if (catalog.HasUpdated || catalog.HasNewImage) { catalog.Cat_Date = now; catalog.HasUpdated = false; catalog.ReloadImage(); updated = true; } } return(updated); }