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