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 }); }
// 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)); }
// 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)); }
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); }
// 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)); }
// 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)); }
// 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)); }
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); }
// 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)); }
// 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)); }
// 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)); }
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]); }
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 })); }
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); }
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)); }
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); }
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)); }
// 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); }
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); }
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); }
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)); }