public ActionResult Create(InteCategoriesModels model) { try { byte[] photoByte = null; var countStoreFalse = model.ListStore.Where(ww => ww.Selected == true).Count(); if (countStoreFalse == 0) { ModelState.AddModelError("ListStore", CurrentUser.GetLanguageTextFromKey("Please choose store")); } if (countStoreFalse > 0) { List <string> LstStore = new List <string>(); if (model.ProductTypeID == Commons.EProductType.Dish.ToString("d")) { LstStore = model.ListStore.Where(w => w.Selected == true).Select(s => s.Value).ToList(); //model.ListCategories = GetSelectListParentCategory(LstStore, model.ProductTypeID); } } if (model.ParentID != null) { var parentName = model.ListProductType.Find(x => x.Value.Equals(model.ProductTypeID)).Text.ToLower(); if (!parentName.Equals("dish")) { model.ParentID = null; } } if (string.IsNullOrEmpty(model.Name)) { ModelState.AddModelError("Name", CurrentUser.GetLanguageTextFromKey("Name field is required")); } if (model.ListItemOnStores != null && model.ListItemOnStores.Count > 0) { model.ListItemOnStores = model.ListItemOnStores.Where(o => o.State == 0).ToList(); if (model.ListItemOnStores != null && model.ListItemOnStores.Count > 0) { for (int i = 0; i < model.ListItemOnStores.Count; i++) { if (Convert.ToInt32(model.ListItemOnStores[i].Sequence) < 0) { ModelState.AddModelError(string.Format("ListItemOnStores[{0}].Sequence", model.ListItemOnStores[i].OffSet), CurrentUser.GetLanguageTextFromKey("Limit must be more than 0")); } } } } if (model.PictureUpload != null && model.PictureUpload.ContentLength > 0) { Byte[] imgByte = new Byte[model.PictureUpload.ContentLength]; model.PictureUpload.InputStream.Read(imgByte, 0, model.PictureUpload.ContentLength); model.PictureByte = imgByte; model.ImageURL = Guid.NewGuid() + Path.GetExtension(model.PictureUpload.FileName); model.PictureUpload = null; photoByte = imgByte; } if (!ModelState.IsValid) { model.ListItemOnStores = model.ListItemOnStores.Where(o => o.State == 0).ToList(); List <string> LstStore = new List <string>(); LstStore = model.ListItemOnStores.Select(o => o.StoreID).ToList(); if (model.ListItemOnStores.Count > 0) { model.ListCategories = GetSelectListParentCategory(LstStore, model.ProductTypeID); // Updated 09222017 model.lstCateGroup = GetSelectListParentCategorySort(LstStore, model.ProductTypeID, model.ParentID); } if ((ModelState["PictureUpload"]) != null && (ModelState["PictureUpload"]).Errors.Count > 0) { model.ImageURL = ""; } var lstStore = (SelectList)ViewBag.StoreID; model.ListStore = lstStore.ToList(); return(View(model)); } if (model.ListItemOnStores != null && model.ListItemOnStores.Count > 0) { model.ListItemOnStores = model.ListItemOnStores.Where(o => o.State == 0).ToList(); foreach (var item in model.ListItemOnStores) { CategoryOnStoreWebDTO newItemOnStore = new CategoryOnStoreWebDTO(); newItemOnStore.StoreID = item.StoreID; newItemOnStore.StoreName = item.StoreName; newItemOnStore.IsShowInKiosk = item.IsShowInKiosk; newItemOnStore.IsShowInReservation = item.IsShowInReservation; newItemOnStore.Sequence = item.Sequence; model.ListCategoryOnStore.Add(newItemOnStore); } } //==================== string msg = ""; var tmp = model.PictureByte; model.PictureByte = null; bool result = _factory.InsertOrUpdateCategories(model, ref msg); if (result) { model.PictureByte = tmp; //Save Image on Server if (!string.IsNullOrEmpty(model.ImageURL) && model.PictureByte != null) { var originalDirectory = new DirectoryInfo(string.Format("{0}Uploads\\", Server.MapPath(@"\"))); var path = string.Format("{0}{1}", originalDirectory, model.ImageURL); MemoryStream ms = new MemoryStream(photoByte, 0, photoByte.Length); ms.Write(photoByte, 0, photoByte.Length); System.Drawing.Image imageTmp = System.Drawing.Image.FromStream(ms, true); ImageHelper.Me.SaveCroppedImage(imageTmp, path, model.ImageURL, ref photoByte); model.PictureByte = photoByte; FTP.Upload(model.ImageURL, model.PictureByte); ImageHelper.Me.TryDeleteImageUpdated(path); } return(RedirectToAction("Index")); } else { ModelState.AddModelError("Name", msg); // Updated 09222017 List <string> LstStore = model.ListItemOnStores.Select(o => o.StoreID).ToList(); model.lstCateGroup = GetSelectListParentCategorySort(LstStore, model.ProductTypeID, model.ParentID); var lstStore = (SelectList)ViewBag.StoreID; model.ListStore = lstStore.ToList(); return(View(model)); } } catch (Exception ex) { _logger.Error("Categories_Create: " + ex); return(new HttpStatusCodeResult(400, ex.Message)); } }