Ejemplo n.º 1
0
        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));
            }
        }