public ActionResult Create(TerminalConfigurationViewModel model, string submit)
        {
            if (ModelState.IsValid)
            {
                //taruh logic Insert disini,
                TerminalConfiguration entSave = new TerminalConfiguration();
                entSave.TerminalId          = model.TerminalId;
                entSave.TerminalCategory    = model.TerminalCategory;
                entSave.TerminalGroup       = model.TerminalGroup;
                entSave.TerminalDescription = model.TerminalDescription;
                entSave.TerminalLocation    = model.TerminalLocation;
                entSave.IsAllergen          = model.IsAllergen;
                entSave.IsActive            = model.IsActive;
                ent.Resolve <TerminalConfiguration>().Add(entSave);
                ent.Save();
                return(RedirectToAction("Index"));
            }

            ViewBag.FormName = "Terminal Configuration";
            return(View(model));
        }
        public ViewResult Index(int?page, string filter, string cFilter, string sortKey, string sortDir, string cSortDir)
        {
            //DEFAULT
            if (sortKey == null && sortDir == null)
            {
                sortKey = ViewBag.SortKey = "TerminalId";                                               //yang harus diisi
                sortDir = "ASC";
            }

            //Page
            page = filter == null ? page : 1;
            int pageNumber = page ?? 1;
            int pageSize   = 5;                                                                     //yang harus diisi

            //NEW OR CURRENT --> FILTER & SORT
            filter  = filter == null ? cFilter : filter;
            sortDir = sortDir == null ? cSortDir : sortDir;

            //QUERY
            var query = from a in ent.Resolve <TerminalConfiguration>().AsQueryable()                       //yang harus dibikin
                        select new
            {
                TerminalId          = a.TerminalId,
                TerminalCategory    = a.TerminalCategory,
                TerminalGroup       = a.TerminalGroup,
                TerminalDescription = a.TerminalDescription,
                TerminalLocation    = a.TerminalLocation,
                IsAllergen          = a.IsAllergen,
                IsActive            = a.IsActive
            };

            //CUSTOM FILTER
            if (!string.IsNullOrEmpty(filter))
            {
                query = query.Where(x => x.TerminalCategory.Contains(filter) || x.TerminalLocation.Contains(filter));           //yang harus ditentukan
            }

            //ORDER BY & TOOGLE SORT DIRECTION
            query = query.OrderByField(sortKey, sortDir == "ASC" ? true : false);

            //GET PAGING
            var pagingResult = query.ToPaging(pageNumber, pageSize);

            //Map to VIEW MODEL
            TerminalConfigurationViewPaging pagingList = new TerminalConfigurationViewPaging();

            pagingList.Paging = pagingResult;
            pagingList.Data   = new List <TerminalConfigurationViewModel>();

            foreach (var item in pagingResult)
            {
                TerminalConfigurationViewModel data = new TerminalConfigurationViewModel();
                data.TerminalId          = item.TerminalId;
                data.TerminalCategory    = item.TerminalCategory;
                data.TerminalDescription = item.TerminalDescription;
                data.TerminalGroup       = item.TerminalGroup;
                data.TerminalLocation    = item.TerminalLocation;
                data.IsAllergen          = item.IsAllergen;
                data.IsActive            = item.IsActive;
                pagingList.Data.Add(data);
            }


            //Ga usah dirubah
            ViewBag.cSortDir = sortDir;                           //buat jaga kondisi sort
            ViewBag.SortDir  = sortDir == "ASC" ? "DESC" : "ASC"; //buat bolak balikin (Toogle)
            ViewBag.SortKey  = sortKey;
            ViewBag.cFilter  = filter;


            ViewBag.FormName = "Terminal Configuration";
            return(View(pagingList));
        }