public void InsertManagerCatalogProduct(CatalogProductEditViewModel model) { var exported = Mapper.Map <Catalog_Products>(model); m_ContentContext.Catalog_Products.Add(exported); m_ContentContext.SaveChanges(); foreach (var propModel in model.Properties) { var propItem = Mapper.Map <Catalog_Products_Properties>(propModel); propItem.ProductId = exported.Id; m_ContentContext.Catalog_Products_Properties.Add(propItem); } foreach (var imgModel in model.Images) { var imgItem = Mapper.Map <Catalog_Product_Images>(imgModel); imgItem.ProductId = exported.Id; m_ContentContext.Catalog_Product_Images.Add(imgItem); } foreach (var relModel in model.Relations) { var relItem = Mapper.Map <Catalog_Products_Relations>(relModel); relItem.GroupId = Guid.NewGuid(); var thisItem = new Catalog_Products_Relations { GroupId = relItem.GroupId, ProductId = exported.Id }; m_ContentContext.Catalog_Products_Relations.Add(relItem); m_ContentContext.Catalog_Products_Relations.Add(thisItem); } m_ContentContext.SaveChanges(); }
public void UpdateManagerCatalogProductEdit(CatalogProductEditViewModel model) { var query = from p in m_ContentContext.Catalog_Products where p.Id == model.Id select p; var item = query.FirstOrDefault(); Mapper.Map(model, item); for (int i = item.Catalog_Products_Properties.Count - 1; i >= 0; i--) { if (!model.Properties.Any(a => a.Id == item.Catalog_Products_Properties.ToList()[i].Id)) { var itemProp = item.Catalog_Products_Properties.ToList()[i]; for (int k = itemProp.Catalog_Products_Properties_Lang.Count - 1; k >= 0; k--) { var langProp = itemProp.Catalog_Products_Properties_Lang.ToList()[k]; m_ContentContext.Catalog_Products_Properties_Lang.Remove(langProp); } m_ContentContext.Catalog_Products_Properties.Remove(itemProp); } else { var itemProp = item.Catalog_Products_Properties.ToList()[i]; var modelProp = model.Properties.FirstOrDefault(f => f.Id == itemProp.Id); Mapper.Map(modelProp, itemProp); } } foreach (var propModel in model.Properties) { if (!item.Catalog_Products_Properties.Any(f => f.Id == propModel.Id && propModel.Id != 0)) { var propItem = Mapper.Map <Catalog_Products_Properties>(propModel); propItem.ProductId = model.Id; m_ContentContext.Catalog_Products_Properties.Add(propItem); } } for (int i = item.Catalog_Product_Images.Count - 1; i >= 0; i--) { if (model.Images == null || !model.Images.Any(a => a.Id == item.Catalog_Product_Images.ToList()[i].Id)) { var itemImg = item.Catalog_Product_Images.ToList()[i]; m_ContentContext.Catalog_Product_Images.Remove(itemImg); } } foreach (var imgModel in model.Images ?? new List <CatalogProductImagesEditViewModel>()) { if (item.Catalog_Product_Images.Any(f => f.Id == imgModel.Id && imgModel.Id != 0)) { var imgItem = item.Catalog_Product_Images.FirstOrDefault(f => f.Id == imgModel.Id); Mapper.Map(imgModel, imgItem); } else { var imgItem = Mapper.Map <Catalog_Product_Images>(imgModel); imgItem.ProductId = model.Id; m_ContentContext.Catalog_Product_Images.Add(imgItem); } } var relids = item.Catalog_Products_Relations.Select(s => s.Id).ToArray(); m_ContentContext.Catalog_Products_Relations.RemoveRange(m_ContentContext.Catalog_Products_Relations.Where(w => relids.Contains(w.Id)).AsEnumerable()); foreach (var relModel in model.Relations) { var relItem = Mapper.Map <Catalog_Products_Relations>(relModel); relItem.GroupId = Guid.NewGuid(); var thisItem = new Catalog_Products_Relations { GroupId = relItem.GroupId, ProductId = item.Id }; m_ContentContext.Catalog_Products_Relations.Add(relItem); m_ContentContext.Catalog_Products_Relations.Add(thisItem); } m_ContentContext.SaveChanges(); }