public void CreateGood(Good good, int[] checkbselected, int[] radioselected, HttpPostedFileBase[] newfiles) { Good newgood = good; //сначала добавляем полученные изображения в БД newgood.Images.Clear(); if (newfiles != null) { int i=0;//для отслеживания главного изображения foreach (HttpPostedFileBase file in newfiles) { if (file != null) { Image item = new Image(); item.Id = 0; item.Description = ""; item.IsMain = (i == radioselected[0]) ? true : false; item.ImageMimeType = file.ContentType; item.ImageContent = new byte[file.ContentLength]; file.InputStream.Read(item.ImageContent, 0, file.ContentLength); SaveImage(item); newgood.Images.Add(item); } i++; } } //определяем категории товара newgood.Categories.Clear(); if (checkbselected != null) { foreach (Category c in Categories().Where(cat => checkbselected.Contains(cat.Id))) { newgood.Categories.Add(c); } } dbcontex.Goods.Add(newgood); dbcontex.SaveChanges(); }
public void DeleteGood(Good good) { dbcontex.Goods.Remove(good); dbcontex.SaveChanges(); }
public void SaveEditedGood(Good good, int[] checkbselected, int[] radioselected, int[] imageids, HttpPostedFileBase[] newfiles, int startnumberofnewfiles ) { Good newgood = FindFullGood(good.Id); //обновляем поля этого товара в БД newgood.Title = good.Title; newgood.Description = good.Description; newgood.Amount = good.Amount; //сначала добавляем полученные изображения в БД newgood.Images.Clear(); newgood.Categories.Clear(); dbcontex.Entry(newgood).State = EntityState.Modified; dbcontex.SaveChanges(); if (imageids != null) { foreach (int i in imageids) { Image im = FindImage(i); if (im != null) { if (radioselected.Contains(im.Id)) { im.IsMain = true; } else { im.IsMain = false; } dbcontex.Entry(im).State = EntityState.Modified; dbcontex.SaveChanges(); newgood.Images.Add(im); } } } if (newfiles != null) { int i = startnumberofnewfiles;//для отслеживания главного изображения foreach (HttpPostedFileBase file in newfiles) { if (file != null) { Image item = new Image(); item.Id = 0; item.Description = ""; item.IsMain = (i == radioselected[0]) ? true : false; item.ImageMimeType = file.ContentType; item.ImageContent = new byte[file.ContentLength]; file.InputStream.Read(item.ImageContent, 0, file.ContentLength); SaveImage(item); newgood.Images.Add(item); } i++; } } //определяем категории товара if (checkbselected != null) { foreach (Category c in Categories().Where(cat => checkbselected.Contains(cat.Id))) { newgood.Categories.Add(c); } } dbcontex.Entry(newgood).State = EntityState.Modified; dbcontex.SaveChanges(); }
public ActionResult EditGood(int Id, string Title, string Description, int Amount, int[] checkbselected, int[] radioselected, int[] imageids, HttpPostedFileBase[] newfiles) { Good newgood = new Good() {Id = Id, Title = Title, Description = Description, Amount = Amount }; //здесь надо получить последнюю запись в таблице изображений int startnumberofnewfiles = repository.GetLastImage().Id + 1; repository.SaveEditedGood(newgood, checkbselected, radioselected, imageids, newfiles, startnumberofnewfiles); return RedirectToAction("GoodsList"); }
public ActionResult CreateGood(string Title, string Description, int Amount, int[] checkbselected, int[] radioselected, HttpPostedFileBase[] newfiles) { Good newgood = new Good() { Title = Title, Description = Description, Amount = Amount }; repository.CreateGood(newgood, checkbselected, radioselected, newfiles); // перенаправляем на главную страницу*/ return RedirectToAction("GoodsList"); }
public ActionResult CreateGood() { ViewBag.Categories = repository.Categories().ToList(); //здесь надо получить последнюю запись в таблице изображений // вот способ хороший - db.Таблица.OrderByDescending(x => x.ПервичныйКлюч).FirstOrDefault() ViewBag.ImageStartNumber = new System.Web.Script.Serialization.JavaScriptSerializer().Serialize(0); Good newitem = new Good(); return PartialView("PartialCreateGood", newitem); //return View("CreateGood", newitem); }