Example #1
0
        public DataTableResultModel BuildResult(DataTableParamModel param)
        {
            var query = queryable;

            foreach (var sortModel in param.SortCol)
            {
                var columnIndex = sortModel.ColumnId;
                if (columnIndex >= sortAscendingExpressions.Count())
                {
                    continue;
                }

                query = sortModel.Ascending
                            ? sortAscendingExpressions[columnIndex](query)
                            : sortDescendingExpressions[columnIndex](query);
            }
            var total = query.Count();
            var range = query.Skip(param.iDisplayStart).Take(param.iDisplayLength);
            var data  = range.ToArray().Select(dataExpression);

            return(new DataTableResultModel
            {
                aaData = data,
                iTotalDisplayRecords = total,
                iTotalRecords = total,
                sEcho = param.sEcho
            });
        }
Example #2
0
        // for display datatable
        public ActionResult GetUsers(DataTableParamModel param)
        {
            var users = _db.Users.ToList();

            var viewUsers = users.Select(usr => new UserTableModel()
            {
                UserId = Convert.ToString(usr.UserName), UserName = usr.UserName, Email = usr.Email, IsApproved = usr.IsApproved == true ? "Yes" : "No"
            });

            IEnumerable <UserTableModel> filteredUsers;

            if (!string.IsNullOrEmpty(param.sSearch))
            {
                filteredUsers = viewUsers.Where(usr => (usr.UserName ?? "").Contains(param.sSearch)).ToList();
            }
            else
            {
                filteredUsers = viewUsers;
            }

            var viewOdjects = filteredUsers.Skip(param.iDisplayStart).Take(param.iDisplayLength);

            var result = from usrMdl in viewOdjects
                         select new[] { usrMdl.UserName, usrMdl.UserName, usrMdl.Email, usrMdl.IsApproved, usrMdl.UserName };

            return(Json(new
            {
                sEcho = param.sEcho,
                iTotalRecords = users.Count(),
                iTotalDisplayRecords = filteredUsers.Count(),
                aaData = result
            },
                        JsonRequestBehavior.AllowGet));
        }
Example #3
0
        // for display datatable
        public ActionResult GetCategories(DataTableParamModel param)
        {
            //http://www.justinmichaels.net/using-jquery-datatables-with-asp-net-mvc-for-serverside-filtering-sorting-and-paging
            var categoryList = _db.Categories.ToList();

            var viewCategoryList = categoryList.Select(cat => new CategoryTableModels()
            {
                CategoryId = Convert.ToString(cat.CategoryId), Name = cat.Name
            });

            IEnumerable <CategoryTableModels> filteredCategoryList;

            if (!string.IsNullOrEmpty(param.sSearch))
            {
                filteredCategoryList = viewCategoryList.Where(cat => (cat.Name ?? "").Contains(param.sSearch)).ToList();
            }
            else
            {
                filteredCategoryList = viewCategoryList;
            }

            var viewOdjects = filteredCategoryList.Skip(param.iDisplayStart).Take(param.iDisplayLength);

            var result = from catMdl in viewOdjects
                         select new[] { catMdl.CategoryId, catMdl.Name };

            return(Json(new
            {
                sEcho = param.sEcho,
                iTotalRecords = categoryList.Count(),
                iTotalDisplayRecords = filteredCategoryList.Count(),
                aaData = result
            },
                        JsonRequestBehavior.AllowGet));
        }
        // for display datatable
        public ActionResult GetBloodRequests(DataTableParamModel param)
        {
            var bloodRequests = _db.BloodRequests.ToList();

            var viewBloodRequests = bloodRequests.Select(m => new BloodRequestTableModel()
            {
                BloodRequestId = Convert.ToString(m.Id), RequesterName = m.RequesterName, RequesterContactNo = m.RequesterContactNo, RequesterAmount = m.RequesterAmount, PresentLocation = m.PresentLocation, DateOfDonation = Convert.ToString(m.DateOfDonation), AppealMessage = m.AppealMessage, RequiredBloodGroupId = Convert.ToString(m.RequiredBloodGroupId), RequiredBloodGroup = m.MemberBloodGroup != null ? m.MemberBloodGroup.BloodGroupName : null,
            });

            IEnumerable <BloodRequestTableModel> filteredBloodRequests;

            if (!string.IsNullOrEmpty(param.sSearch))
            {
                filteredBloodRequests = viewBloodRequests.Where(m => (m.RequesterName ?? "").Contains(param.sSearch) || (m.RequiredBloodGroup ?? "").Contains(param.sSearch)).ToList();
            }
            else
            {
                filteredBloodRequests = viewBloodRequests;
            }

            var viewOdjects = filteredBloodRequests.Skip(param.iDisplayStart).Take(param.iDisplayLength);

            var result = from pMdl in viewOdjects
                         select new[] { pMdl.RequesterName, pMdl.RequesterContactNo, pMdl.RequesterAmount, pMdl.PresentLocation, pMdl.DateOfDonation, pMdl.AppealMessage, pMdl.RequiredBloodGroupId, pMdl.RequiredBloodGroup, pMdl.BloodRequestId };

            return(Json(new
            {
                sEcho = param.sEcho,
                iTotalRecords = bloodRequests.Count(),
                iTotalDisplayRecords = filteredBloodRequests.Count(),
                aaData = result
            },
                        JsonRequestBehavior.AllowGet));
        }
Example #5
0
        private static DataTableParamModel BindLegacyModel(IValueProvider valueProvider, int columns)
        {
            DataTableParamModel obj = new DataTableParamModel(columns)
            {
                DisplayStart  = GetValue <int>(valueProvider, PropertyConst.DisplayStart),
                DisplayLength = GetValue <int>(valueProvider, PropertyConst.DisplayLength),
                Search        = GetValue <string>(valueProvider, PropertyConst.Search),
                EscapeRegex   = GetValue <bool>(valueProvider, PropertyConst.EscapeRegex),
                SortingCols   = GetValue <int>(valueProvider, PropertyConst.SortingCols),
                Echo          = GetValue <int>(valueProvider, PropertyConst.Echo)
            };

            for (int i = 0; i < obj.Columns; i++)
            {
                obj.ListIsSortable.Add(GetValue <bool>(valueProvider, $"{PropertyConst.Sortable}_{i}"));
                obj.ListIsSearchable.Add(GetValue <bool>(valueProvider, $"{PropertyConst.Searchable}_{i}"));

                // Important Legacy DataTable bind sSearch for sSearchValues
                obj.SearchValues.Add(GetValue <string>(valueProvider, $"{PropertyConst.Search}_{i}"));

                obj.ListIsEscapeRegexColumn.Add(GetValue <bool>(valueProvider, $"{PropertyConst.EscapeRegex}_{i}"));
                obj.SortCol.Add(GetValue <int>(valueProvider, $"{PropertyConst.SortCol}_{i}"));
                obj.SortDir.Add(GetValue <string>(valueProvider, $"{PropertyConst.SortDir}_{i}"));
            }
            return(obj);
        }
Example #6
0
        // for display datatable
        public ActionResult GetUsers(DataTableParamModel param)
        {
            var users = _iSecurityService.GetUsers().ToList();

            var viewUsers = users.Select(u => new UserTableModels()
            {
                UserName = u.UserName, Email = u.Email, FullName = u.Profile == null ? null : Convert.ToString(u.Profile.FullName), Address = u.Profile == null ? null : Convert.ToString(u.Profile.Address), Phone = u.Profile == null ? null : Convert.ToString(u.Profile.PhoneNumber), Mobile = u.Profile == null ? null : Convert.ToString(u.Profile.MobileNumber), CreateDate = u.Profile == null ? null : Convert.ToString(u.DateCreated)
            });

            IEnumerable <UserTableModels> filteredUsers;

            if (!string.IsNullOrEmpty(param.sSearch))
            {
                filteredUsers = viewUsers.Where(usr => (usr.UserName ?? "").Contains(param.sSearch) || (usr.FullName ?? "").Contains(param.sSearch)).ToList();
            }
            else
            {
                filteredUsers = viewUsers;
            }

            var viewOdjects = filteredUsers.Skip(param.iDisplayStart).Take(param.iDisplayLength);

            var result = from usrMdl in viewOdjects
                         select new[] { usrMdl.UserName, usrMdl.UserName, usrMdl.Email, usrMdl.FullName, usrMdl.Address, usrMdl.Phone, usrMdl.Mobile, usrMdl.CreateDate };

            return(Json(new
            {
                sEcho = param.sEcho,
                iTotalRecords = users.Count(),
                iTotalDisplayRecords = filteredUsers.Count(),
                aaData = result
            },
                        JsonRequestBehavior.AllowGet));
        }
        // for display datatable
        public ActionResult GetMemberHospitals(DataTableParamModel param)
        {
            var memberHospitals = _db.MemberHospitals.ToList();

            var viewMemberHospitals = memberHospitals.Select(mh => new MemberHospitalTableModel()
            {
                MemberHospitalId = Convert.ToString(mh.Id), HospitalName = mh.HospitalName, Address = mh.Address, LocationX = mh.LocationX, LocationY = mh.LocationY, MemberZoneId = Convert.ToString(mh.MemberZoneId), MemberZoneName = mh.MemberZone != null ? mh.MemberZone.ZoneName : null
            });

            IEnumerable <MemberHospitalTableModel> filteredMemberHospitals;

            if (!string.IsNullOrEmpty(param.sSearch))
            {
                filteredMemberHospitals = viewMemberHospitals.Where(mh => (mh.HospitalName ?? "").Contains(param.sSearch)).ToList();
            }
            else
            {
                filteredMemberHospitals = viewMemberHospitals;
            }

            var viewOdjects = filteredMemberHospitals.Skip(param.iDisplayStart).Take(param.iDisplayLength);

            var result = from mzMdl in viewOdjects
                         select new[] { mzMdl.HospitalName, mzMdl.Address, mzMdl.LocationX, mzMdl.LocationY, mzMdl.MemberZoneName, mzMdl.MemberHospitalId };

            return(Json(new
            {
                sEcho = param.sEcho,
                iTotalRecords = memberHospitals.Count(),
                iTotalDisplayRecords = filteredMemberHospitals.Count(),
                aaData = result
            },
                        JsonRequestBehavior.AllowGet));
        }
Example #8
0
        // for display datatable
        public ActionResult GetCategories(DataTableParamModel param)
        {
            var categories = _db.Categories.ToList();

            var viewProducts = categories.Select(cat => new CategoryTableModels()
            {
                CategoryId = Convert.ToString(cat.CategoryId), Name = cat.Name
            });

            IEnumerable <CategoryTableModels> filteredProducts;

            if (!string.IsNullOrEmpty(param.sSearch))
            {
                filteredProducts = viewProducts.Where(cat => (cat.Name ?? "").Contains(param.sSearch)).ToList();
            }
            else
            {
                filteredProducts = viewProducts;
            }

            var viewOdjects = filteredProducts.Skip(param.iDisplayStart).Take(param.iDisplayLength);

            var result = from catMdl in viewOdjects
                         select new[] { catMdl.CategoryId, catMdl.Name };

            return(Json(new
            {
                sEcho = param.sEcho,
                iTotalRecords = categories.Count(),
                iTotalDisplayRecords = filteredProducts.Count(),
                aaData = result
            },
                        JsonRequestBehavior.AllowGet));
        }
        // for display datatable
        public ActionResult GetProducts(DataTableParamModel param)
        {
            var products = _db.Products.ToList();

            var viewProducts = products.Select(pro => new ProductTableModels()
            {
                ProductId = Convert.ToString(pro.ProductId), Name = pro.Name, Price = Convert.ToString(pro.Price), CategoryId = pro.Category == null ? null : Convert.ToString(pro.Category.CategoryId), CategoryName = pro.Category == null ? null : pro.Category.Name
            });

            IEnumerable <ProductTableModels> filteredProducts;

            if (!string.IsNullOrEmpty(param.sSearch))
            {
                filteredProducts = viewProducts.Where(pro => (pro.Name ?? "").Contains(param.sSearch) || (pro.Price ?? "").Contains(param.sSearch) || (pro.CategoryName ?? "").Contains(param.sSearch)).ToList();
            }
            else
            {
                filteredProducts = viewProducts;
            }

            var viewOdjects = filteredProducts.Skip(param.iDisplayStart).Take(param.iDisplayLength);

            var result = from proMdl in viewOdjects
                         select new[] { proMdl.ProductId, proMdl.Name, proMdl.Price, proMdl.CategoryId, proMdl.CategoryName };

            return(Json(new
            {
                sEcho = param.sEcho,
                iTotalRecords = products.Count(),
                iTotalDisplayRecords = filteredProducts.Count(),
                aaData = result
            },
                        JsonRequestBehavior.AllowGet));
        }
        // for display datatable
        public ActionResult GetRoles(DataTableParamModel param)
        {
            var roles = _db.Roles.ToList();

            var viewRoles = roles.Select(rt => new RoleTableModel()
            {
                RoleName = rt.RoleName
            });

            IEnumerable <RoleTableModel> filteredRoles;

            if (!string.IsNullOrEmpty(param.sSearch))
            {
                filteredRoles = viewRoles.Where(r => (r.RoleName ?? "").Contains(param.sSearch)).ToList();
            }
            else
            {
                filteredRoles = viewRoles;
            }

            var viewOdjects = filteredRoles.Skip(param.iDisplayStart).Take(param.iDisplayLength);

            var result = from rMdl in viewOdjects
                         select new[] { rMdl.RoleName };

            return(Json(new
            {
                sEcho = param.sEcho,
                iTotalRecords = roles.Count(),
                iTotalDisplayRecords = filteredRoles.Count(),
                aaData = result
            },
                        JsonRequestBehavior.AllowGet));
        }
        // for display datatable
        public ActionResult GetPosts(DataTableParamModel param)
        {
            var posts = _db.Posts.ToList();

            var viewPosts = posts.Select(pt => new PostTableModel()
            {
                PostId = Convert.ToString(pt.Id), Title = pt.Title, Content = pt.Content, CreateDate = Convert.ToString(pt.CreateDate), UserName = pt.UserName,
            });

            IEnumerable <PostTableModel> filteredPosts;

            if (!string.IsNullOrEmpty(param.sSearch))
            {
                filteredPosts = viewPosts.Where(r => (r.Title ?? "").Contains(param.sSearch)).ToList();
            }
            else
            {
                filteredPosts = viewPosts;
            }

            var viewOdjects = filteredPosts.Skip(param.iDisplayStart).Take(param.iDisplayLength);

            var result = from pMdl in viewOdjects
                         select new[] { pMdl.Title, pMdl.Content, pMdl.CreateDate, pMdl.UserName, pMdl.PostId };

            return(Json(new
            {
                sEcho = param.sEcho,
                iTotalRecords = posts.Count(),
                iTotalDisplayRecords = filteredPosts.Count(),
                aaData = result
            },
                        JsonRequestBehavior.AllowGet));
        }
Example #12
0
        // for display datatable
        public ActionResult GetMemberDonateTypes(DataTableParamModel param)
        {
            var memberDonateTypes = _db.MemberDonateTypes.ToList();

            var viewMemberDonateTypes = memberDonateTypes.Select(mdt => new MemberDonateTypeTableModel()
            {
                MemberDonateTypeId = Convert.ToString(mdt.Id), DonateTypeName = mdt.DonateTypeName
            });

            IEnumerable <MemberDonateTypeTableModel> filteredMemberDonateTypes;

            if (!string.IsNullOrEmpty(param.sSearch))
            {
                filteredMemberDonateTypes = viewMemberDonateTypes.Where(mbg => (mbg.DonateTypeName ?? "").Contains(param.sSearch)).ToList();
            }
            else
            {
                filteredMemberDonateTypes = viewMemberDonateTypes;
            }

            var viewOdjects = filteredMemberDonateTypes.Skip(param.iDisplayStart).Take(param.iDisplayLength);

            var result = from mdtMdl in viewOdjects
                         select new[] { mdtMdl.DonateTypeName, mdtMdl.MemberDonateTypeId };

            return(Json(new
            {
                sEcho = param.sEcho,
                iTotalRecords = memberDonateTypes.Count(),
                iTotalDisplayRecords = filteredMemberDonateTypes.Count(),
                aaData = result
            },
                        JsonRequestBehavior.AllowGet));
        }
Example #13
0
        public DatatableResultViewModel <CarViewModel> GetCars(DataTableParamModel param)
        {
            var result = new DatatableResultViewModel <CarViewModel>();

            var cars = carService.GetAll();

            //Get search values
            var YearSearch         = GetSearchValueInt(nameof(Car.Year), param);
            var ManufacturerSearch = GetSearchValueString(nameof(Car.Manufacturer), param);

            //Apply search
            cars = cars
                   .WhereIf(YearSearch != null, c => c.Year.Year == YearSearch.Value)
                   .WhereIf(ManufacturerSearch != null, c => c.Manufacturer == (ManufacturerEnum)Enum.Parse(typeof(ManufacturerEnum), ManufacturerSearch));

            cars = OrderBys(cars, typeof(Car), param);

            result.RecordsFiltered = cars.Count();

            cars = cars
                   .Skip(param.Start)
                   .Take(param.Length);

            result.Result = mapper.Map <List <Car>, List <CarViewModel> >(cars.ToList());

            return(result);
        }
Example #14
0
        // for display datatable
        public ActionResult GetComments(DataTableParamModel param)
        {
            var comments = _db.Comments.ToList();

            var viewComments = comments.Select(ct => new CommentTableModel()
            {
                CommentId = Convert.ToString(ct.Id), Name = ct.Name, Email = ct.Email, Description = ct.Description, CreateDate = Convert.ToString(ct.CreateDate)
            });

            IEnumerable <CommentTableModel> filteredComments;

            if (!string.IsNullOrEmpty(param.sSearch))
            {
                filteredComments = viewComments.Where(c => (c.Name ?? "").Contains(param.sSearch)).ToList();
            }
            else
            {
                filteredComments = viewComments;
            }

            var viewOdjects = filteredComments.Skip(param.iDisplayStart).Take(param.iDisplayLength);

            var result = from cMdl in viewOdjects
                         select new[] { cMdl.Name, cMdl.Email, cMdl.Description, cMdl.CreateDate, cMdl.CommentId };

            return(Json(new
            {
                sEcho = param.sEcho,
                iTotalRecords = comments.Count(),
                iTotalDisplayRecords = filteredComments.Count(),
                aaData = result
            },
                        JsonRequestBehavior.AllowGet));
        }
Example #15
0
        // for display datatable
        public ActionResult GetMemberStatues(DataTableParamModel param)
        {
            var memberStatues = _db.MemberStatues.ToList();

            var viewMemberStatues = memberStatues.Select(ms => new MemberStatusTableModel()
            {
                MemberStatusId = Convert.ToString(ms.Id), MemberStatusTitle = ms.MemberStatusTitle, MemberStatusDescription = ms.MemberStatusDescription, MemberStatusIcon = ms.MemberStatusIcon
            });

            IEnumerable <MemberStatusTableModel> filteredMemberStatues;

            if (!string.IsNullOrEmpty(param.sSearch))
            {
                filteredMemberStatues = viewMemberStatues.Where(ms => (ms.MemberStatusTitle ?? "").Contains(param.sSearch)).ToList();
            }
            else
            {
                filteredMemberStatues = viewMemberStatues;
            }

            var viewOdjects = filteredMemberStatues.Skip(param.iDisplayStart).Take(param.iDisplayLength);

            var result = from mzMdl in viewOdjects
                         select new[] { mzMdl.MemberStatusTitle, mzMdl.MemberStatusDescription, mzMdl.MemberStatusIcon, mzMdl.MemberStatusId };

            return(Json(new
            {
                sEcho = param.sEcho,
                iTotalRecords = memberStatues.Count(),
                iTotalDisplayRecords = filteredMemberStatues.Count(),
                aaData = result
            },
                        JsonRequestBehavior.AllowGet));
        }
Example #16
0
        // for display datatable
        public ActionResult GetMembers(DataTableParamModel param)
        {
            var members = _db.Members.ToList();

            var viewMembers = members.Select(m => new MemberTableModel()
            {
                MemberId = Convert.ToString(m.Id), FullName = m.FullName, Address = m.Address, DateOfBirth = Convert.ToString(m.DateOfBirth), PhoneNumber = m.PhoneNumber, MobileNumber = m.MobileNumber, UserName = m.UserName,
            });

            IEnumerable <MemberTableModel> filteredMembers;

            if (!string.IsNullOrEmpty(param.sSearch))
            {
                filteredMembers = viewMembers.Where(m => (m.FullName ?? "").Contains(param.sSearch)).ToList();
            }
            else
            {
                filteredMembers = viewMembers;
            }

            var viewOdjects = filteredMembers.Skip(param.iDisplayStart).Take(param.iDisplayLength);

            var result = from pMdl in viewOdjects
                         select new[] { pMdl.FullName, pMdl.Address, pMdl.DateOfBirth, pMdl.PhoneNumber, pMdl.MobileNumber, pMdl.UserName, pMdl.MemberId };

            return(Json(new
            {
                sEcho = param.sEcho,
                iTotalRecords = members.Count(),
                iTotalDisplayRecords = filteredMembers.Count(),
                aaData = result
            },
                        JsonRequestBehavior.AllowGet));
        }
Example #17
0
        private static DataTablePropertyInfo FindColumn(DataTableParamModel dtParameters, DataTablePropertyInfo[] columns, int i)
        {
            if (dtParameters.ColumnNames.Any())
            {
                return(columns.First(x => x.PropertyInfo.Name == dtParameters.ColumnNames[i]));
            }

            return(columns[i]);
        }
Example #18
0
        public IActionResult GetCarsDataTable([FromBody] DataTableParamModel param)
        {
            var cars = carManager.GetCars(param);

            return(Json(new
            {
                draw = param.Draw++,
                recordsTotal = cars.RecordsFiltered,
                recordsFiltered = cars.RecordsFiltered,
                data = cars.Result
            }));
        }
Example #19
0
        private static DataTableParamModel BindModel(IValueProvider valueProvider)
        {
            DataTableParamModel obj = new DataTableParamModel
            {
                DisplayStart  = GetValue <int>(valueProvider, "start"),
                DisplayLength = GetValue <int>(valueProvider, "length"),
                Search        = GetValue <string>(valueProvider, "search[value]"),
                EscapeRegex   = GetValue <bool>(valueProvider, "search[regex]"),
                Echo          = GetValue <int>(valueProvider, "draw")
            };

            int colIdx = 0;

            while (true)
            {
                string colPrefix = $"columns[{colIdx}]";
                string colName   = GetValue <string>(valueProvider, $"{colPrefix}[data]");
                if (string.IsNullOrWhiteSpace(colName))
                {
                    break;
                }
                obj.ColumnNames.Add(colName);
                obj.ListIsSortable.Add(GetValue <bool>(valueProvider, $"{colPrefix}[orderable]"));
                obj.ListIsSearchable.Add(GetValue <bool>(valueProvider, $"{colPrefix}[searchable]"));
                obj.SearchValues.Add(GetValue <string>(valueProvider, $"{colPrefix}[search][value]"));
                obj.ListIsEscapeRegexColumn.Add(GetValue <bool>(valueProvider, $"{colPrefix}[searchable][regex]"));
                colIdx++;
            }
            obj.Columns = colIdx;
            colIdx      = 0;

            while (true)
            {
                string colPrefix = $"order[{colIdx}]";

                int?orderColumn = GetValue <int?>(valueProvider, $"{colPrefix}[column]");

                if (orderColumn.HasValue)
                {
                    obj.SortCol.Add(orderColumn.Value);
                    obj.SortDir.Add(GetValue <string>(valueProvider, $"{colPrefix}[dir]"));
                    colIdx++;
                }
                else
                {
                    break;
                }
            }
            obj.SortingCols = colIdx;
            return(obj);
        }
Example #20
0
        public JsonResult LoadBrowsersFull(DataTableParamModel param, string bwsrCreatedDate)
        {
            // Browser list
            var totalBrowserList = SrvBrowser.ListOfBrowsers();
            IEnumerable <BrowserModel> filteredBrowserList;

            // filter keyword search
            if (!string.IsNullOrEmpty(param.sSearch))
            {
                // limit search in column 1 and 2
                var isBrowserSearchable = Convert.ToBoolean(Request["bSearchable_1"]);
                var isEngineSearchable  = Convert.ToBoolean(Request["bSearchable_0"]);

                filteredBrowserList = totalBrowserList.Where(bwsr =>
                                                             isBrowserSearchable && Convert.ToString(bwsr.Browser).Contains(param.sSearch.ToLower()) ||
                                                             isEngineSearchable && bwsr.Engine.ToLower().Contains(param.sSearch.ToLower()));
            }
            else
            {
                // No search filter
                filteredBrowserList = totalBrowserList;
            }

            var isBrowserPlatformSortable = Convert.ToBoolean(Request["bSortable_2"]);
            var sortColumnIndex           = Convert.ToInt32(Request["iSortCol_0"]);
            Func <BrowserModel, string> orderingFunction = (bwsr =>
                                                            sortColumnIndex == 2 &&
                                                            isBrowserPlatformSortable ? Convert.ToString(bwsr.Platform) : "");


            var sortDirection = Request["sSortDir_0"];

            // asc or desc ofr column Platform
            filteredBrowserList = sortDirection == "asc"
                ? filteredBrowserList.OrderBy(orderingFunction)
                : filteredBrowserList.OrderByDescending(orderingFunction);

            var displayedFilteredBrowserList = filteredBrowserList.Skip(param.iDisplayStart).Take(param.iDisplayLength);

            var filteredResult = from b in displayedFilteredBrowserList
                                 select new[] { b.Engine, b.Browser, b.Platform, b.Version, b.Grade };

            return(Json(new
            {
                sEcho = param.sEcho,
                iTotalRecords = totalBrowserList.Count(),
                iTotalDisplayRecords = totalBrowserList.Count(),
                aaData = filteredResult
            },
                        JsonRequestBehavior.AllowGet));
        }
Example #21
0
        public Task BindModelAsync(ModelBindingContext bindingContext)
        {
            var valueProvider = bindingContext.ValueProvider;

            // Depend on "iColumns" property is have or not, we will known this is legacy model or
            // latest style model. Binding the value to model by the legacy or new style mapping.

            int columns = GetValue <int>(valueProvider, PropertyConst.Columns);

            DataTableParamModel dataTableParam = columns <= 0 ? BindModel(valueProvider) : BindLegacyModel(valueProvider, columns);

            // Keep all data to Data Property
            dataTableParam.Data = GetDataDictionary(bindingContext);

            // Bind data to result
            bindingContext.Result = ModelBindingResult.Success(dataTableParam);

            return(Task.CompletedTask);
        }
Example #22
0
        public JsonResult LoadBrowsers(DataTableParamModel param)
        {
            // Browser list
            var totalBrowserList = SrvBrowser.ListOfBrowsers();

            var filteredBrowserList = totalBrowserList.Skip(param.iDisplayStart).Take(param.iDisplayLength);

            var filteredResult = from b in filteredBrowserList
                                 select new[] { b.Engine, b.Browser, b.Platform, b.Version, b.Grade };

            return(Json(new
            {
                sEcho = param.sEcho,
                iTotalRecords = totalBrowserList.Count(),
                iTotalDisplayRecords = totalBrowserList.Count(),
                aaData = filteredResult
            },
                        JsonRequestBehavior.AllowGet));
        }
Example #23
0
        // for display datatable
        public ActionResult GetSendEmailInfos(DataTableParamModel param)
        {
            var sendEmailInfos = _db.SendEmailInfos.ToList();

            var viewSendEmailInfos = sendEmailInfos.Select(sei => new SendEmailInfoTableModel()
            {
                SendEmailInfoId   = Convert.ToString(sei.Id),
                SenderName        = sei.SenderName,
                SenderContactNo   = sei.SenderContactNo,
                Subject           = sei.Subject,
                Message           = sei.Message,
                MemberViewModelId = Convert.ToString(sei.MemberId),
                MemberName        = sei.Member
                                    != null ? sei.Member.FullName : null,
            });

            IEnumerable <SendEmailInfoTableModel> filteredSendEmailInfos;

            if (!string.IsNullOrEmpty(param.sSearch))
            {
                filteredSendEmailInfos = viewSendEmailInfos.Where(m => (m.SenderName ?? "").Contains(param.sSearch)).ToList();
            }
            else
            {
                filteredSendEmailInfos = viewSendEmailInfos;
            }

            var viewOdjects = filteredSendEmailInfos.Skip(param.iDisplayStart).Take(param.iDisplayLength);

            var result = from seiMdl in viewOdjects
                         select new[] { seiMdl.SenderName, seiMdl.SenderContactNo, seiMdl.Subject, seiMdl.Message, seiMdl.MemberName, seiMdl.SendEmailInfoId };

            return(Json(new
            {
                sEcho = param.sEcho,
                iTotalRecords = sendEmailInfos.Count(),
                iTotalDisplayRecords = filteredSendEmailInfos.Count(),
                aaData = result
            },
                        JsonRequestBehavior.AllowGet));
        }
        public ActionResult ListPatients(DataTableParamModel param)
        {
            try
            {
                string         searchString    = HttpContext.Request["search[value]"];
                int            recordsTotal    = 0;
                int            recordsFiltered = 0;
                List <Patient> patients        = _patientService.GetListToTable(Int32.Parse(User.Identity.GetUserId()), param.Start,
                                                                                param.Length, searchString, param.Order.ToList()[0].Column, param.Order.ToList()[0].Dir, out recordsTotal, out recordsFiltered);

                List <PatientListViewModel> items = new List <PatientListViewModel>();

                if (patients.Count > 0)
                {
                    Mapper.CreateMap <Patient, PatientListViewModel>()
                    .ForMember(d => d.FullName,
                               opt => opt.MapFrom(s => FullNameHelper.GetFullName(s.LastName, s.FirstName, s.SurName)))
                    .ForMember(d => d.Phones, opt => opt.MapFrom(s => s.MobilePhone + (s.MobilePhone != null ? ", ":"") + s.HomePhone))
                    .ForMember(d => d.VisitCount, opt => opt.MapFrom(s => s.PatientVisits.Count))
                    .ForMember(d => d.IsMale, opt => opt.MapFrom(s => (s.IsMale)))
                    .ForMember(d => d.LastVisit, opt => opt.MapFrom(s => s.PatientVisits.Count > 0 ? s.PatientVisits.OrderBy(x => x.VisitDate).Last().VisitDate : new DateTime?()));
                    items = Mapper.Map <List <Patient>, List <PatientListViewModel> >(patients);
                }

                return(Json(new
                {
                    draw = param.Draw,
                    recordsTotal = recordsTotal,
                    recordsFiltered = recordsFiltered,
                    data = items
                },
                            JsonRequestBehavior.AllowGet));
            }
            catch (Exception ex)
            {
                return(Json(new { Result = "ERROR", Message = ex.Message }));
            }
        }
        public ActionResult Index(
            DateTime?startDate,
            DateTime?endDate,
            string costCode,
            Guid?activityGroupId,
            DataTableParamModel request)
        {
            var today = DateTime.Today;

            startDate = startDate ?? new DateTime(today.Year, today.Month, 1);
            endDate   = endDate ?? startDate.Value.AddMonths(1).AddDays(-1);
            costCode  = costCode ?? Settings.Default.RootCostCentre;

            var model = new AuditHistoryModel
            {
                ActivityGroupId = activityGroupId,
                CostCode        = costCode,
                StartDate       = startDate.Value,
                EndDate         = endDate.Value
            };

            return(View(model));
        }
        public bool BindModel(HttpActionContext actionContext, ModelBindingContext bindingContext)
        {
            if (bindingContext.ModelType == typeof(DataTableParamModel))
            {
                DataTableParamModel paramModel = new DataTableParamModel();

                paramModel.PageSize     = bindingContext.GetValueOrDefault <int>("iDisplayLength");
                paramModel.Echo         = bindingContext.GetValueOrDefault("sEcho");
                paramModel.SearchText   = bindingContext.GetValueOrDefault("sSearch");
                paramModel.DisplayStart = bindingContext.GetValueOrDefault <int>("iDisplayStart");
                paramModel.NoofColumns  = bindingContext.GetValueOrDefault <int>("iColumns");
                int sortColumn = bindingContext.GetValueOrDefault <int>("iSortCol_0");
                paramModel.Columns       = bindingContext.GetValueOrDefault("sColumns").Split(new[] { "," }, StringSplitOptions.None);
                paramModel.SortColumn    = paramModel.Columns[sortColumn];
                paramModel.SortDirection = bindingContext.GetValueOrDefault("sSortDir_0");
                paramModel.PageNumber    = paramModel.DisplayStart / paramModel.PageSize;

                bindingContext.Model = paramModel;

                return(true);
            }

            return(false);
        }
Example #27
0
        public IQueryable <T> ApplyFiltersAndSort <T>(DataTableParamModel dtParameters, IQueryable <T> data, DataTablePropertyInfo[] columns)
        {
            if (!string.IsNullOrEmpty(dtParameters.Search))
            {
                var parts = new List <string>();

                var parameters = new List <object>();

                for (var i = 0; i < dtParameters.Columns; i++)
                {
                    if (dtParameters.ListIsSearchable[i])
                    {
                        try
                        {
                            parts.Add(GetFilterClause(dtParameters.Search, columns[i], parameters));
                        }
                        catch (Exception)
                        {
                            // if the clause doesn't work, skip it!
                            // ex: can't parse a string to enum or datetime type
                        }
                    }
                }
                var values = parts.Where(p => p != null);
                data = data.Where(string.Join(" or ", values), parameters.ToArray());
            }
            for (int i = 0; i < dtParameters.SearchValues.Count; i++)
            {
                if (dtParameters.ListIsSearchable[i])
                {
                    var searchColumn = dtParameters.SearchValues[i];
                    if (!string.IsNullOrWhiteSpace(searchColumn))
                    {
                        DataTablePropertyInfo column = FindColumn(dtParameters, columns, i);
                        var parameters   = new List <object>();
                        var filterClause = GetFilterClause(searchColumn, column, parameters);
                        if (!string.IsNullOrWhiteSpace(filterClause))
                        {
                            data = data.Where(filterClause, parameters.ToArray());
                        }
                    }
                }
            }
            string sortString = "";

            for (int i = 0; i < dtParameters.SortingCols; i++)
            {
                int columnNumber             = dtParameters.SortCol[i];
                DataTablePropertyInfo column = FindColumn(dtParameters, columns, columnNumber);
                string columnName            = column.PropertyInfo.Name;
                string sortDir = dtParameters.SortDir[i];
                if (i != 0)
                {
                    sortString += ", ";
                }
                sortString += columnName + " " + sortDir;
            }
            if (string.IsNullOrWhiteSpace(sortString))
            {
                sortString = columns[0].PropertyInfo.Name;
            }
            data = data.OrderBy(sortString);

            return(data);
        }
Example #28
0
        public static DataTableResponseDataModel <T> GetDataTableResponse <T>(this IQueryable <T> data, DataTableParamModel dataTableParamModel) where T : class, new()
        {
            var totalRecords = data.Count(); // annoying this, as it causes an extra evaluation..

            var filters = new DataTableFiltering();

            var outputProperties = DataTableTypeInfo <T> .Properties;

            var filteredData = filters.ApplyFiltersAndSort(dataTableParamModel, data, outputProperties);

            var totalDisplayRecords = filteredData.Count();

            var skipped = filteredData.Skip(dataTableParamModel.DisplayStart);

            var page = (dataTableParamModel.DisplayLength <= 0 ? skipped : skipped.Take(dataTableParamModel.DisplayLength)).ToArray();

            var result = new DataTableResponseDataModel <T>
            {
                TotalRecord        = totalRecords,
                TotalDisplayRecord = totalDisplayRecords,
                Echo = dataTableParamModel.Echo,
                Data = page.Cast <object>().ToArray()
            };

            return(result);
        }
        // for display datatable
        public ActionResult GetProducts(DataTableParamModel param)
        {
            var products = _productService.GetProducts().ToList();

            var viewProducts = products.Select(p => new ProductTableModels() { ProductId = Convert.ToString(p.ProductId), Name = p.Name, MainCost = Convert.ToString(p.MainCost), OtherCost = Convert.ToString(p.OtherCost), CategoryName = p.Category == null ? null : p.Category.Name, ProjectName = p.Project == null ? null : p.Project.Name, UnitValueName = p.Project == null ? null : Convert.ToString(p.Project.UnitValue.Name) });

            IEnumerable<ProductTableModels> filteredProducts;

            if (!string.IsNullOrEmpty(param.sSearch))
            {
                filteredProducts = viewProducts.Where(prod => (prod.Name ?? "").Contains(param.sSearch) || (prod.MainCost ?? "").Contains(param.sSearch) || (prod.CategoryName ?? "").Contains(param.sSearch) || (prod.ProjectName ?? "").Contains(param.sSearch)).ToList();
            }
            else
            {
                filteredProducts = viewProducts;
            }

            var viewOdjects = filteredProducts.Skip(param.iDisplayStart).Take(param.iDisplayLength);

            var result = from prodMdl in viewOdjects
                         select new[] { prodMdl.ProductId, prodMdl.Name, prodMdl.MainCost, prodMdl.OtherCost, prodMdl.CategoryName, prodMdl.ProjectName, prodMdl.UnitValueName };

            return Json(new
            {
                sEcho = param.sEcho,
                iTotalRecords = products.Count(),
                iTotalDisplayRecords = filteredProducts.Count(),
                aaData = result
            },
                            JsonRequestBehavior.AllowGet);
        }
        // for display datatable
        public ActionResult GetSuppliers(DataTableParamModel param)
        {
            var suppliers = _supplierService.GetSuppliers().ToList();

            var viewSuppliers = suppliers.Select(s => new SupplierTableModels() { SupplierId = Convert.ToString(s.SupplierId), Name = s.Name, Address = s.Address, Mobile = s.Mobile, Email = s.Email, ContactPerson = s.ContactPerson });

            IEnumerable<SupplierTableModels> filteredSuppliers;

            if (!string.IsNullOrEmpty(param.sSearch))
            {
                filteredSuppliers = viewSuppliers.Where(supp => (supp.Name ?? "").Contains(param.sSearch) || (supp.Mobile ?? "").Contains(param.sSearch) || (supp.Email ?? "").Contains(param.sSearch)).ToList();
            }
            else
            {
                filteredSuppliers = viewSuppliers;
            }

            var viewOdjects = filteredSuppliers.Skip(param.iDisplayStart).Take(param.iDisplayLength);

            var result = from suppMdl in viewOdjects
                         select new[] { suppMdl.SupplierId, suppMdl.Name, suppMdl.Address, suppMdl.Mobile, suppMdl.Email, suppMdl.ContactPerson };

            return Json(new
            {
                sEcho = param.sEcho,
                iTotalRecords = suppliers.Count(),
                iTotalDisplayRecords = filteredSuppliers.Count(),
                aaData = result
            },
                            JsonRequestBehavior.AllowGet);
        }
Example #31
0
        public ActionResult History(DataTableParamModel request)
        {
            var query =
                (from source in context.DataSources
                 join fileDataSource in context.Set <FileDataSource>() on source.Id equals fileDataSource.Id into
                 filejoin
                 from subFileSource in filejoin.DefaultIfEmpty()
                 join feedDataSource in context.Set <FeedDataSource>() on source.Id equals feedDataSource.Id into fjn
                 from subFeedDataSource in fjn.DefaultIfEmpty(null)
                 join manualDataSource in context.Set <ManualDataSource>() on source.Id equals manualDataSource.Id
                 into
                 manualjoin
                 from subManualSource in manualjoin.DefaultIfEmpty()
                 select new InputHistoryDataModel
            {
                Name = (subFileSource != null)
                            ? subFileSource.OriginalFileName
                            : (subFeedDataSource == null) ? "Manual Entry" : subFeedDataSource.SourceUrl,
                EditDate = source.DateEdit,
                UserName = source.UserName,
                Type = (subManualSource != null)
                            ? subManualSource.DisplayType
                            : (subFileSource != null) ? subFileSource.HandlerName : subFeedDataSource.HandlerName,
                Status = source.InputStatus,
                Id = source.Id
            });
            var builder = new DataTableResultModelBuilder <InputHistoryDataModel>();

            builder.AddQueryable(query);
            builder.AddDataExpression(arg => new object[]
            {
                HttpUtility.HtmlEncode(arg.Name),
                arg.EditDate.ToString(Constants.Constants.DateFormat),
                HttpUtility.HtmlEncode(arg.UserName),
                arg.Type,
                Enum.GetName(typeof(SourceStatus), arg.Status),
                arg.Id.ToString(),
                Url.RouteUrl("editsource", new { SourceId = arg.Id }),
                Url.Action("SelectSource", new { SourceId = arg.Id })
            });
            SourceStatus status;

            if (Enum.TryParse(request.sSearch, true, out status))
            {
                builder.AddSearchFilter(model => model.Status == status);
            }
            else
            {
                builder.AddSearchFilter(arg =>
                                        arg.Name.Contains(request.sSearch) ||
                                        arg.UserName.Contains(request.sSearch) ||
                                        arg.Type.Contains(request.sSearch));
            }
            builder.AddSortExpression(data => data.Name);
            builder.AddSortExpression(data => data.EditDate);
            builder.AddSortExpression(data => data.UserName);
            builder.AddSortExpression(data => data.Type);
            builder.AddSortExpression(data => data.Status);
            var result = builder.BuildResult(request);

            return(Json(result, JsonRequestBehavior.AllowGet));
        }
        // for display datatable
        public ActionResult GetUnitValues(DataTableParamModel param)
        {
            var unitValues = _unitValueService.GetUnitValues().ToList();

            var viewUnitValues = unitValues.Select(u => new UnitValueTableModels() { UnitValueId = Convert.ToString(u.UnitValueId), Name = u.Name, Note = u.Note, UnitTypeName = u.UnitType == null ? null : Convert.ToString(u.UnitType.Name) });

            IEnumerable<UnitValueTableModels> filteredUnitValues;

            if (!string.IsNullOrEmpty(param.sSearch))
            {
                filteredUnitValues = viewUnitValues.Where(usr => (usr.Name ?? "").Contains(param.sSearch) || (usr.UnitTypeName ?? "").Contains(param.sSearch)).ToList();
            }
            else
            {
                filteredUnitValues = viewUnitValues;
            }

            var viewOdjects = filteredUnitValues.Skip(param.iDisplayStart).Take(param.iDisplayLength);

            var result = from uvMdl in viewOdjects
                         select new[] { uvMdl.UnitValueId, uvMdl.Name, uvMdl.Note, uvMdl.UnitTypeName };

            return Json(new
            {
                sEcho = param.sEcho,
                iTotalRecords = unitValues.Count(),
                iTotalDisplayRecords = filteredUnitValues.Count(),
                aaData = result
            },
                            JsonRequestBehavior.AllowGet);
        }
        // for display datatable
        public ActionResult GetCategories(DataTableParamModel param)
        {
            var categorys = _categoryService.GetCategorys().ToList();

            var viewCategorys = categorys.Select(c => new CategoryTableModels() { CategoryId = Convert.ToString(c.CategoryId), Name = c.Name });

            IEnumerable<CategoryTableModels> filteredCategorys;

            if (!string.IsNullOrEmpty(param.sSearch))
            {
                filteredCategorys = viewCategorys.Where(cat => (cat.Name ?? "").Contains(param.sSearch)).ToList();
            }
            else
            {
                filteredCategorys = viewCategorys;
            }

            var viewOdjects = filteredCategorys.Skip(param.iDisplayStart).Take(param.iDisplayLength);

            var result = from catMdl in viewOdjects
                         select new[] { catMdl.CategoryId, catMdl.Name };

            return Json(new
            {
                sEcho = param.sEcho,
                iTotalRecords = categorys.Count(),
                iTotalDisplayRecords = filteredCategorys.Count(),
                aaData = result
            },
                            JsonRequestBehavior.AllowGet);
        }
        // for display datatable
        public ActionResult GetUsers(DataTableParamModel param)
        {
            var users = _iSecurityService.GetUsers().ToList();

            var viewUsers = users.Select(u => new UserTableModels() { UserName = u.UserName, Email = u.Email, FullName = u.Profile == null ? null : Convert.ToString(u.Profile.FullName), Address = u.Profile == null ? null : Convert.ToString(u.Profile.Address), Phone = u.Profile == null ? null : Convert.ToString(u.Profile.PhoneNumber), Mobile = u.Profile == null ? null : Convert.ToString(u.Profile.MobileNumber), CreateDate = u.Profile == null ? null : Convert.ToString(u.DateCreated) });

            IEnumerable<UserTableModels> filteredUsers;

            if (!string.IsNullOrEmpty(param.sSearch))
            {
                filteredUsers = viewUsers.Where(usr => (usr.UserName ?? "").Contains(param.sSearch) || (usr.FullName ?? "").Contains(param.sSearch)).ToList();
            }
            else
            {
                filteredUsers = viewUsers;
            }

            var viewOdjects = filteredUsers.Skip(param.iDisplayStart).Take(param.iDisplayLength);

            var result = from usrMdl in viewOdjects
                         select new[] { usrMdl.UserName, usrMdl.UserName, usrMdl.Email, usrMdl.FullName, usrMdl.Address, usrMdl.Phone, usrMdl.Mobile, usrMdl.CreateDate };

            return Json(new
            {
                sEcho = param.sEcho,
                iTotalRecords = users.Count(),
                iTotalDisplayRecords = filteredUsers.Count(),
                aaData = result
            },
                            JsonRequestBehavior.AllowGet);
        }
        public ActionResult AuditHistory(
            DateTime startDate,
            DateTime endDate,
            string costCode,
            Guid?activityGroupId,
            DataTableParamModel request)
        {
            var builder = new DataTableResultModelBuilder <AuditHistory>();

            var activityNode =
                (activityGroupId == null)
                    ? new HierarchyId("/")
                    : context.ActivityGroups.Find(activityGroupId).Node;
            var costCentreNode =
                context.CostCentres.Find(costCode).Node;
            var query =
                from e in context.CarbonEmissionEntries
                where
                (e.EntryDate >= startDate) &&
                (e.EntryDate <= endDate) &&
                (e.ActivityGroupNode.IsDescendantOf(activityNode)) &&
                (e.CostCentreNode.IsDescendantOf(costCentreNode))
                group new
            {
                e.Units,
                e.Money,
                e.CarbonEmissions
            } by e.SourceEntry.SourceId
            into g
            from source in context.DataSources
            join fileDataSource in context.Set <FileDataSource>() on
            source.Id equals fileDataSource.Id into filejoin
            from subFileSource in filejoin.DefaultIfEmpty()
            join manualDataSource in context.Set <ManualDataSource>() on
            source.Id equals manualDataSource.Id into manualjoin
            from subManualSource in manualjoin.DefaultIfEmpty()
            join feedDataSource in context.Set <FeedDataSource>() on
            source.Id equals feedDataSource.Id into fjn
            from subFeedDataSource in fjn.DefaultIfEmpty(null)
            where source.Id == g.Key
            select new AuditHistory
            {
                CurrentFileName = (subFileSource != null)
                        ? subFileSource.CurrentFileName
                        : (subFeedDataSource == null) ? null : subFeedDataSource.SourceUrl,
                Name        = (subFileSource == null) ? "Manual Entry" : subFileSource.OriginalFileName,
                DateEdit    = source.DateEdit,
                UserName    = source.UserName,
                HandlerName = (subManualSource != null)
                        ? subManualSource.DisplayType
                        : (subFileSource == null) ? subFeedDataSource.HandlerName : subFileSource.HandlerName,
                Emissions = g.Sum(arg => arg.CarbonEmissions) / 1000,
                Cost      = g.Sum(arg => arg.Money),
                Units     = g.Sum(arg => arg.Units),
                SourceId  = g.Key
            };

            builder.AddQueryable(query);
            builder.AddDataExpression(arg => new object[]
            {
                HttpUtility.HtmlEncode(arg.Name),
                arg.DateEdit.ToString(Constants.Constants.DateFormat),
                HttpUtility.HtmlEncode(arg.UserName),
                arg.Units.ToString(Constants.Constants.NumberFormat, CultureInfo.CurrentCulture),
                arg.Emissions.ToString(Constants.Constants.NumberFormat, CultureInfo.CurrentCulture),
                arg.Cost.ToString(Constants.Constants.NumberFormat, CultureInfo.CurrentCulture),
                arg.HandlerName,
                Url.RouteUrl("editsource", new { arg.SourceId }),
                Url.RouteUrl("selectsource", new { arg.SourceId })
            });

            builder.AddSearchFilter(arg =>
                                    arg.Name.Contains(request.sSearch) ||
                                    arg.UserName.Contains(request.sSearch) ||
                                    arg.HandlerName.Contains(request.sSearch));
            builder.AddSortExpression(data => data.Name);
            builder.AddSortExpression(data => data.DateEdit);
            builder.AddSortExpression(data => data.UserName);
            builder.AddSortExpression(data => data.Units);
            builder.AddSortExpression(data => data.Emissions);
            builder.AddSortExpression(data => data.Cost);
            builder.AddSortExpression(data => data.HandlerName);
            var result = builder.BuildResult(request);

            return(Json(result, JsonRequestBehavior.AllowGet));
        }