private void SynchronizeProductImages(ProductEntity product, PsProductEntity psProduct) { try { if (psProduct != null) { foreach (var psImage in psProduct.associations.images.ToList()) { if (!product.Images.Any(x => x.WebId.HasValue && x.WebId == psImage.id)) { prestaShopClient.ImageFactory.DeleteProductImage(psProduct.id.Value, psImage.id); psProduct.associations.images.Remove(psImage); } } foreach (var image in product.Images.Where(x => x.IsDeleted == false)) { SynchronizeImage(product, psProduct, image); } SaveOrUpdatePsProduct(psProduct, product); } } catch (Exception ex) { logger.LogError($"Synchronize product Id: {product.Id} error.{Environment.NewLine}{ex}"); } }
private void DeleteImage(ImageEntity localImage, PsProductEntity psProduct) { if (psProduct.associations.images.Any(x => x.id == localImage.WebId)) { DeletePsImage(psProduct.id.Value, localImage.WebId.Value); } localImage.Synchronize = Framework.SynchronizeType.Synchronized; localImage.IsDeleted = true; }
private void UpdateImage(ImageEntity localImage, PsProductEntity psProduct) { try { var image = prestaShopClient.ImageFactory.GetProductImage((long)psProduct.id, localImage.WebId.Value); } catch { UpdatePsImage(localImage, psProduct); } }
public IActionResult UpdateOrInsertProduct([FromBody] List <Bukimedia.PrestaSharp.Entities.product> mikroProductList) { Boolean degisiklikVarMi = false; var filter = new Dictionary <string, string> { { "isbn", null } }; List <Bukimedia.PrestaSharp.Entities.product> prestaProductList; foreach (var mikroProduct in mikroProductList) { degisiklikVarMi = false; filter["isbn"] = mikroProduct.isbn; // isbn'si ortusen productlar geliyor, unic oldugu icin 1 tane gelecek eger tabloda varsa prestaProductList = productFactory.GetByFilter(filter, null, null); Bukimedia.PrestaSharp.Entities.product prestaProduct = null; // getByFilter'dan dizi donuyor, eger bossa mikroProduct mikroya yeni eklenmis bir urundur if (prestaProductList.Count != 0) { // dizi bos degil, isbn de unic oldugu icin ilk elemani aliyoruz prestaProduct = prestaProductList[0]; // urunun isminde degisiklik varsa guncelliyoruz if (prestaProduct.name[0].Value != mikroProduct.name[0].Value) { prestaProduct.name[0].Value = mikroProduct.name[0].Value; degisiklikVarMi = true; } // yine urunun fiyatinda degisiklik varsa guncelliyoruz if (prestaProduct.price != mikroProduct.price) { prestaProduct.price = mikroProduct.price; degisiklikVarMi = true; } if (degisiklikVarMi) { productFactory.Update(prestaProduct); } } // eger buraya girerse bu urun mikroya yeni eklenmis bir urun, o halde prestashop'a ekliyoruz else { productFactory.Add(mikroProduct); } } return(Ok()); }
public void CargarArticulo(string reference, string titulo = "") { var PF = new ProductFactory(_BaseUrl, _Account, _Password); product = prestashop.CargarProductoPrestashopReferencia(reference); if (product != null) { textEditReferencia.Text = product.reference; textEditTitulo.Text = product.name[0].Value; memoEditDescripction.Text = product.description[0].Value; memoEditDescripction_short.Text = product.description_short[0].Value; simpleButtonGrabar.Text = "Grabar"; } else { Bukimedia.PrestaSharp.Entities.AuxEntities.language Lenguaje = new Bukimedia.PrestaSharp.Entities.AuxEntities.language(); Lenguaje.id = 1; product = new Bukimedia.PrestaSharp.Entities.product(); product.reference = reference; textEditTitulo.Text = ""; simpleButtonGrabar.Text = "Crear"; } //model = RajoteroDbcontext.ps_product.Where(w => w.reference == reference).FirstOrDefault(); //var model_lang = RajoteroDbcontext.ps_lang.ToList(); //repositoryItemLookUpEdit1.DataSource = model_lang; //textEditReferencia.Text = reference; //if (model != null) //{ // gridControl.DataSource = model.ps_product_lang; //} //else //{ // model = new ps_product(); // var model_pd_product_lang = new ps_product_lang(); // model_pd_product_lang.id_lang = RajoteroDbcontext.ps_lang.FirstOrDefault().id_lang; // model_pd_product_lang.name = titulo; // model.ps_product_lang = new List<ps_product_lang>(); // model.ps_product_lang.Add(model_pd_product_lang); // gridControl.DataSource = model.ps_product_lang; //} }
private void SynchronizeImage(ProductEntity localProduct, PsProductEntity psProduct, ImageEntity localImage) { if (localImage.WebId.HasValue && psProduct.associations.images.All(x => x.id != localImage.WebId)) { localImage.WebId = null; } if (localImage.WebId.HasValue && localImage.WebId > 0) { if (localImage.IsArchived) { DeleteImage(localImage, psProduct); } else if (localImage.IsSynchronizable) { UpdateImage(localImage, psProduct); } } else if (localImage.IsSynchronizable) { localImage.WebId = AddImage(localImage, psProduct); } }
private int AddImage(ImageEntity localImage, PsProductEntity psProduct) { return((int)prestaShopClient.ImageFactory.AddProductImage((long)psProduct.id, localImage.ImageBytes)); }
private void UpdatePsImage(ImageEntity localImage, PsProductEntity psProduct) { DeletePsImage((long)psProduct.id, localImage.WebId.Value); localImage.WebId = AddImage(localImage, psProduct); }
public IActionResult Product([FromBody] Bukimedia.PrestaSharp.Entities.product product) { productFactory.Add(product); return(Ok(product)); }