using BLL; using BOL; using System; using System.Collections.Generic; using System.Linq; using System.Reflection; using System.Web; using System.Web.Mvc; namespace InventoryManagment.Areas.Admin.Controllers { public class CategoryController : Controller { private AdminBs objBs; public CategoryController() { objBs = new AdminBs(); } public ActionResult Index() { return View(); } public ActionResult Category(int id, string sortOrder, string sortBy, string Page) { ViewBag.SortOrder = sortOrder; ViewBag.SortBy = sortBy; var categorylist = objBs.CategoryBs.GetALL(); switch (sortBy) { case "Sysid": switch (sortOrder) { case "Asc": categorylist = categorylist.OrderBy(x => x.Sysid).ToList(); break; case "Desc": categorylist = categorylist.OrderByDescending(x => x.Sysid).ToList(); break; default: break; } break; case "CategoryName": switch (sortOrder) { case "Asc": categorylist = categorylist.OrderBy(x => x.CategoryName).ToList(); break; case "Desc": categorylist = categorylist.OrderByDescending(x => x.CategoryName).ToList(); break; default: break; } break; default: break; } ViewData["Operation"] = id; var obj = objBs.CategoryBs.GetByID(id); ViewBag.TotalPages = Math.Ceiling(objBs.CategoryBs.GetALL().Count() / 5.0); int page = int.Parse(Page == null ? "1" : Page); ViewBag.Page = page; categorylist = categorylist.Skip((page - 1) * 5).Take(5); ViewData["Category"] = categorylist; return View(obj); } [HttpPost] [ActionName("Category")] [OnAction(ButtonName = "Create")] public ActionResult Create(Tbl_Addnewcategory Category) { try { objBs.CategoryBs.Insert(Category); TempData["Msg"] = "Created Successfully"; return RedirectToAction("Category", new { id = 0, SortOrder = ViewBag.SortOrder == null ? "Desc" : ViewBag.SortOrder == "Desc" ? "Asc" : "Desc", SortBy = (ViewBag.SortBy == null ? "Sysid" : ViewBag.SortBy), Page = (ViewBag.Page == null ? "1" : ViewBag.Page) }); } catch (Exception Ex) { TempData["Msg"] = "Create Failed:" + Ex.Message.ToString(); return RedirectToAction("Category", new { id = 0, SortOrder = ViewBag.SortOrder == null ? "Desc" : ViewBag.SortOrder == "Desc" ? "Asc" : "Desc", SortBy = (ViewBag.SortBy == null ? "Sysid" : ViewBag.SortBy), Page = (ViewBag.Page == null ? "1" : ViewBag.Page) }); } } //[HttpPost] //public JsonResult Create(string CategoryName) //{ // try // { // Tbl_Addnewcategory obj = new Tbl_Addnewcategory(); // obj.CategoryName = CategoryName; // obj.Status = true; // objBs.CategoryBs.Insert(obj); // TempData["Msg"] = "Created Successfully"; // return Json("Inserted Successfully", JsonRequestBehavior.AllowGet); // } // catch // { // return Json("Some problem occur...try again", JsonRequestBehavior.AllowGet); // } //} [HttpPost] [ActionName("Category")] [OnAction(ButtonName = "Update")] public ActionResult Edit(Tbl_Addnewcategory Category) { try { objBs.CategoryBs.Update(Category); TempData["Msg"] = "Updated Successfully"; return RedirectToAction("Category", new { id = 0, SortOrder = ViewBag.SortOrder == null ? "Desc" : ViewBag.SortOrder == "Desc" ? "Asc" : "Desc", SortBy = (ViewBag.SortBy == null ? "Sysid" : ViewBag.SortBy) , Page = (ViewBag.Page == null ? "1" : ViewBag.Page) }); } catch (Exception Ex) { TempData["Msg"] = "Update Failed:" + Ex.Message.ToString(); return RedirectToAction("Category", new { id = 0, SortOrder = ViewBag.SortOrder == null ? "Desc" : ViewBag.SortOrder == "Desc" ? "Asc" : "Desc", SortBy = (ViewBag.SortBy == null ? "Sysid" : ViewBag.SortBy) , Page = (ViewBag.Page == null ? "1" : ViewBag.Page) }); } } public ActionResult Delete(int id) { try { objBs.CategoryBs.Delete(id); TempData["Msg"] = "Deleted Successfully"; return RedirectToAction("Category", new { id = 0, SortOrder = ViewBag.SortOrder == null ? "Desc" : ViewBag.SortOrder == "Desc" ? "Asc" : "Desc", SortBy = (ViewBag.SortBy == null ? "Sysid" : ViewBag.SortBy) , Page = (ViewBag.Page == null ? "1" : ViewBag.Page) }); } catch (Exception Ex) { TempData["Msg"] = "Delete Failed:" + Ex.Message.ToString(); return RedirectToAction("Category", new { id = 0, SortOrder = ViewBag.SortOrder == null ? "Desc" : ViewBag.SortOrder == "Desc" ? "Asc" : "Desc", SortBy = (ViewBag.SortBy == null ? "Sysid" : ViewBag.SortBy) , Page = (ViewBag.Page == null ? "1" : ViewBag.Page) }); } } public class OnActionAttribute : ActionMethodSelectorAttribute { public string ButtonName { get; set; } public override bool IsValidForRequest(ControllerContext controllerContext, MethodInfo methodInfo) { var req = controllerContext.RequestContext.HttpContext.Request; return !string.IsNullOrEmpty(req.Form[this.ButtonName]); } } } }