public static void RegisterGrids() { MVCGridDefinitionTable.Add("SampleGrid", new MVCGridBuilder <Customer>() .WithAuthorizationType(AuthorizationType.AllowAnonymous) .AddColumns(cols => { // Add your columns here cols.Add().WithColumnName("CustomerId").WithHeaderText("Customer ID") .WithValueExpression(i => i.CustomerId.ToString()); // use the Value Expression to return the cell text for this column cols.Add().WithColumnName("FirstName").WithHeaderText("First Name").WithValueExpression(i => i.FirstName); cols.Add().WithColumnName("LastName").WithHeaderText("Last Name").WithValueExpression(i => i.LastName); cols.Add().WithColumnName("FullaName").WithHeaderText("Full Name").WithValueTemplate("{Model.FirstName} {Model.LastName}") .WithVisibility(visible: false, allowChangeVisibility: true).WithSorting(true); cols.Add().WithColumnName("OrderDate").WithHeaderText("Order Date") .WithValueExpression(i => i.OrderDate.ToString()); cols.Add().WithColumnName("Status").WithHeaderText("Status").WithValueExpression(i => i.Status); }) .WithRetrieveDataMethod((context) => { // Query your data here. Obey Ordering, paging and filtering parameters given in the context.QueryOptions. // Use Entity Framework, a module from your IoC Container, or any other method. // Return QueryResult object containing IEnumerable<YouModelItem> var lists = new QueryResult <Customer>(); using (MyDbContext db = new MyDbContext()) { lists.Items = db.Customers.ToList(); } return(lists); }) ); }
public override void RegisterGrids() { MVCGridDefinitionTable.Add("ContainerGrid", new MVCGridBuilder <Person>() .AddColumns(cols => { cols.Add("Id").WithValueExpression((p, c) => p.Id.ToString()); cols.Add("FirstName").WithHeaderText("First Name") .WithValueExpression((p, c) => p.FirstName); cols.Add("LastName").WithHeaderText("Last Name") .WithValueExpression((p, c) => p.LastName); }) .WithRenderingMode(RenderingMode.Controller) .WithViewPath("~/Views/MVCGrid/_Grid.cshtml") .WithContainerViewPath("~/Views/MVCGrid/_Container.cshtml") .WithRetrieveDataMethod((options) => { var result = new QueryResult <Person>(); using (var db = new SampleDatabaseEntities()) { result.Items = db.People.Where(p => p.Employee).ToList(); } return(result); }) ); }
private static void RegisterGrid(GridDefaults gridDefaults, ColumnDefaults colDefauls, string gridName) { MVCGridDefinitionTable.Add(GRID_NAME, new MVCGridBuilder <ProductItemModel>(gridDefaults, colDefauls) .WithAuthorizationType(AuthorizationType.AllowAnonymous) .AddColumns(cols => { BuildColumns(cols); }) .WithSorting(true, "Name", SortDirection.Asc) .WithFiltering(true) .WithAdditionalQueryOptionNames(FILTER_NAME, FILTER_DESC) .WithRetrieveDataMethod((context) => { var service = DependencyResolver.Current.GetService <IProductsService>(); var result = service.GetProducts(); var options = context.QueryOptions; var query = result.Items.AsQueryable(); var name = options.GetAdditionalQueryOptionString(FILTER_NAME); var desc = options.GetAdditionalQueryOptionString(FILTER_DESC); query = FilterData(options, query, name, desc); return(new QueryResult <ProductItemModel>() { Items = query.ToList(), TotalRecords = result.Items.Count() }); }) ); }
internal static string GenerateGrid(string gridName, out int statusCode, NameValueCollection nameValueCollection = null) { if (nameValueCollection == null) { nameValueCollection = new NameValueCollection(); } statusCode = 200; IMVCGridDefinition grid = MVCGridDefinitionTable.GetDefinitionInterface(gridName); QueryOptions options = QueryStringParser.ParseOptions(grid, nameValueCollection); GridContext gridContext = MVCGrid.NetCore.Utility.GridContextUtility.Create(/*context, */ gridName, grid, options); GridEngine engine = new GridEngine(); if (!engine.CheckAuthorization(gridContext)) { //Forbidden statusCode = 403; return(string.Empty); } IMVCGridRenderingEngine renderingEngine = GridEngine.GetRenderingEngine(gridContext); // TODO: Reimplement this for csv exports and other rendering responses. //renderingEngine.PrepareResponse(context.Response); StringBuilder sb = new StringBuilder(); TextWriter htmlWriter = new StringWriter(sb); engine.Run(renderingEngine, gridContext, htmlWriter); string html = sb.ToString(); return(html); }
internal static void Register() { GridDefaults employeeGridDefauls = new GridDefaults() { Paging = true, ItemsPerPage = 10, Sorting = true, NoResultsMessage = "No hay mas usuarios para mostrar", NextButtonCaption = string.Empty, PreviousButtonCaption = string.Empty, SummaryMessage = "Viendo {0} a {1} de {2} registros" }; MVCGridDefinitionTable.Add("PadresGrid", new MVCGridBuilder <Padre>(employeeGridDefauls) .WithAuthorizationType(AuthorizationType.AllowAnonymous) .AddColumns(cols => { // Add your columns here cols.Add().WithColumnName("Nombre").WithHeaderText("Nombre").WithValueExpression(i => i.Nombre).WithSorting(false); cols.Add().WithColumnName("Apellido").WithHeaderText("Apellido").WithValueExpression(i => i.Apellido).WithSorting(false); cols.Add().WithColumnName("Email").WithHeaderText("Email").WithValueExpression(i => i.Email).WithSorting(false); cols.Add().WithColumnName("Hijos").WithHeaderText("Hijos").WithValueExpression(i => i.Hijos != null ? string.Join(", ", i.Hijos.Select(x => x.Nombre)) : string.Empty).WithSorting(false); cols.Add().WithColumnName("Details").WithHeaderText("").WithCellCssClassExpression((i, c) => "action").WithHtmlEncoding(false) .WithValueExpression((i, c) => string.Format("{0}{1}{2}", string.Format("<a data-modal='' class='text-info' href='{0}' id='{1}' title='Asignar hijos'><span class='fa fa-server'></span></a>", c.UrlHelper.Action("Assign", "Padres", new { id = i.Id }), i.Id), string.Format("<a data-modal='' class='text-info' href='{0}' id='{1}' title='Editar'><span class='fa fa-pencil'></span></a>", c.UrlHelper.Action("Form", "Padres", new { id = i.Id }), i.Id), string.Format("<a data-modal='' class='text-info' href='{0}' id='{1}' title='Eliminar'><span class='fa fa-trash'></span></a>", c.UrlHelper.Action("Form", "Padres", new { id = i.Id, readOnly = true, delete = true }), i.Id) )); }) .WithPaging(true, 10, true, 100) .WithSorting(true, "Id") .WithAdditionalQueryOptionNames("search") .WithPageParameterNames("user") .WithRetrieveDataMethod((context) => { var options = context.QueryOptions; var result = new QueryResult <Padre>(); string globalSearch = options.GetAdditionalQueryOptionString("search"); UsuarioLogueado usuarioLogueado = JsonConvert.DeserializeObject <UsuarioLogueado>(options.GetPageParameterString("user")); IServicioWeb servicio = new ImplementacionService.ImplementacionService(); //BaseController.CreateService(); var data = servicio.ObtenerPadres(usuarioLogueado, options.PageIndex.Value, options.ItemsPerPage.Value, globalSearch); return(new QueryResult <Padre>() { Items = data.Lista.ToArray(), TotalRecords = data.CantidadRegistros, }); }) ); }
private static void RegisterProductGrid() { MVCGridDefinitionTable.Add("ProductGrid", new MVCGridBuilder <Product>() .WithAuthorizationType(AuthorizationType.AllowAnonymous) .WithSorting(sorting: true, defaultSortColumn: "Id", defaultSortDirection: SortDirection.Dsc) .WithPaging(paging: true, itemsPerPage: 10, allowChangePageSize: true, maxItemsPerPage: 100) .WithClientSideLoadingMessageFunctionName("showLoading") .WithClientSideLoadingCompleteFunctionName("finalizeGrid") .WithAdditionalQueryOptionNames("search") .AddColumns(cols => { cols.Add("BarCode").WithHeaderText("BarCode") .WithVisibility(true, true) .WithSorting(true) .WithValueExpression(p => p.BarCode); cols.Add("ItemName").WithHeaderText("ItemName") .WithVisibility(true, true) .WithSorting(true) .WithValueExpression(p => p.ItemName); cols.Add("Prices").WithSorting(false) .WithHeaderText("Prices") .WithHtmlEncoding(false) .WithValueExpression(p => p.BarCode) .WithValueTemplate("<a data-fieldid='{Value}' class='fieldbtn btn btn-default fieldId-btn'>Prices</a>"); }) .WithRetrieveDataMethod((context) => { var options = context.QueryOptions; int totalRecords; string globalSearch = string.IsNullOrEmpty(options.GetAdditionalQueryOptionString("search")) ? string.Empty : options.GetAdditionalQueryOptionString("search").ToLower(); string sortColumn = options.GetSortColumnData <string>(); var productService = new ProductService(new ProductRepository(new JsonWebServiceClient <Product>())); var items = productService.GetProducts(); totalRecords = items.Count; if (!string.IsNullOrEmpty(globalSearch)) { items = items.Where(ent => ent.BarCode.ToLower().Contains(globalSearch)).ToList(); } return(new QueryResult <Product>() { Items = items, TotalRecords = totalRecords }); }) ); }
public static void RegisterGrids() { MVCGridDefinitionTable.Add("UsageExample", new MVCGridBuilder <DBESearchAdmin.Models.DBECompany>() .WithPaging(paging: true, itemsPerPage: 10, allowChangePageSize: true, maxItemsPerPage: 100) .WithRetrieveDataMethod((context) => { return(new QueryResult <YourModelItem>() { Items = new List <YourModelItem>(), TotalRecords = 0 // if paging is enabled, return the total number of records of all pages }); }) ); }
public static void RegisterGrids() { MVCGridDefinitionTable.Add("Users", new MVCGridBuilder <User>(new ColumnDefaults { EnableSorting = true }) .WithAuthorizationType(AuthorizationType.AllowAnonymous) .AddColumns(cols => { cols.Add().WithColumnName("UserName") .WithHeaderText("User Name") .WithValueExpression(i => i.Username); cols.Add().WithColumnName("BrandName") .WithHeaderText("Brand") .WithValueExpression(i => i.Brand.BrandName); cols.Add().WithColumnName("Roles") .WithHeaderText("Roles") .WithValueExpression(i => string.Join(", ", i.Roles.OrderBy(r => r.RoleName).Select(r => r.RoleName))); cols.Add("Edit") .WithHtmlEncoding(false) .WithSorting(false) .WithHeaderText(" ") .WithValueExpression((i, c) => c.UrlHelper.Action("Detail", "Users", new { id = i.UserId })) .WithValueTemplate("<a href='{Value}' class='btn btn-primary' role='button'>Edit</a>"); }) .WithSorting(true, "Username") .WithPaging(true, 20) .WithRetrieveDataMethod((context) => { var resolver = DependencyResolver.Current; var userRepository = resolver.GetService <IUserRepository>(); var mapper = resolver.GetService <IMapper>(); var options = context.QueryOptions; var sortAscending = options.SortDirection == SortDirection.Asc || options.SortDirection == SortDirection.Unspecified; var users = userRepository.GetAll(options.SortColumnName, sortAscending); return(new QueryResult <User>() { Items = users, TotalRecords = users.Count }); }) ); }
public static void RegisterGrids() { var db = new JCold_UVU_MVC_InventoryDb(); MVCGridDefinitionTable.Add("CheckBookGrid", new MVCGridBuilder <CheckOutBook>() .AddColumns (cols => { //Add your columns here cols.Add("Book Name").WithValueExpression(p => p.Books.Title.ToString()); cols.Add("Department Name").WithValueExpression(p => p.Department.DepName); cols.Add("Student Name").WithValueExpression(p => p.Students.StudentName); cols.Add("Returned Book").WithValueExpression(p => p.ReturnedBook ? "Yes" : "No"); cols.Add("Due Date").WithValueExpression(p => p.DueDate.ToShortDateString()); cols.Add("Returned Date").WithValueExpression(p => p.ReturnedDate.ToString()); cols.Add("Check out date").WithValueExpression(p => p.CheckedOutDate.ToShortDateString()); }).WithSorting(true, "Due Date") .WithRetrieveDataMethod((context) => { //Query your data here. Obey Ordering, paging and filtering parameters given in the context.QueryOptions. // Use Entity Framework, a module from your IoC Container, or any other method. // Return QueryResult object containing IEnumerable<YouModelItem> var options = context.QueryOptions; var result = new QueryResult <CheckOutBook>(); var query = db.CheckOutBooks; //if (!String.IsNullOrWhiteSpace(options.SortColumnName)) //{ // switch (options.SortColumnName.ToLower()) // { // case "firstname": // query = query.OrderBy(p => p.Books.Title, options.SortDirection); // break; // case "lastname": // query = query.OrderBy(p => p.Department.DepName, options.SortDirection); // break; // } //} result.Items = query.ToList(); return(result); }) ); }
public static void GetGridDefinition() { var colDefaults = new ColumnDefaults() { EnableSorting = true }; MVCGridDefinitionTable.Add(USERS_LIST, new MVCGridBuilder <UserDTO>(colDefaults) .WithAuthorizationType(AuthorizationType.AllowAnonymous) .WithSorting(sorting: true, defaultSortColumn: nameof(UserDTO.FirstName), defaultSortDirection: SortDirection.Dsc) .WithPaging(paging: true, itemsPerPage: 15, allowChangePageSize: true, maxItemsPerPage: 100) .WithAdditionalQueryOptionNames("search") .AddColumns(cols => { cols.Add("Username").WithHeaderText("User Name").WithVisibility(true, true).WithValueExpression(p => p.FirstName).WithSorting(false); cols.Add("FirstName").WithHeaderText("First Name").WithVisibility(true, true).WithValueExpression(p => p.LastName).WithSorting(false); cols.Add("CellNumber").WithHeaderText("Cell Number").WithVisibility(true, true).WithValueExpression(p => p.Cellphone).WithSorting(false); cols.Add("Actions").WithHtmlEncoding(false) .WithSorting(false) .WithHeaderText("Actions") .WithValueExpression(x => { return($"<a id='{Security.Encrypt(x.UserId)}' class='btn btn-success btn-sm' style='color: #fff;' onclick='EditUser(this)'> <i class='fa fa-edit' aria-hidden='true'></i> Edit</a> " + $"<a id='{Security.Encrypt(x.UserId)}' class='btn btn-danger btn-sm ' style='color: #fff;' onclick='DeleteUser(this)'><i class='fa fa-trash' aria-hidden='true'></i> Delete</a>"); }); }) .WithAdditionalSetting(MVCGrid.Rendering.BootstrapRenderingEngine.SettingNameTableClass, "table table-striped table-bordered table-hover table-sm") // Example of changing table css class .WithRetrieveDataMethod((context) => { var options = context.QueryOptions; var globalSearch = options.GetAdditionalQueryOptionString("search"); var sortColumn = options.GetSortColumnData <string>(); var userServiceClient = new UserServiceClient(); var usersList = userServiceClient.GetUsers().ToList(); if (options.GetLimitOffset().HasValue) { usersList = usersList.Skip(options.GetLimitOffset().Value).Take(options.GetLimitRowcount().Value).ToList(); } return(new QueryResult <UserDTO>() { Items = usersList, TotalRecords = usersList.Count, }); }) ); }
public static void RegisterGrids() { ColumnDefaults colDefauls = new ColumnDefaults() { EnableSorting = true }; MVCGridDefinitionTable.Add("AuthorSearch", new MVCGridBuilder <Author>(colDefauls) .WithAuthorizationType(AuthorizationType.AllowAnonymous) .AddColumns(cols => { cols.Add("Delete").WithHtmlEncoding(false) .WithSorting(false) .WithHeaderText(" ") .WithValueExpression(p => p.AuthorId.ToString()) .WithValueTemplate("<a class='authorSelectLink' value='{Value}' ><i class='glyphicon glyphicon-arrow-left'></i><span class='sr-only'>Details</span></span> </a>"); cols.Add("AuthorFirstName").WithHeaderText("Name") .WithValueExpression(p => p.AuthorFirstName); cols.Add("AuthorMiddleName").WithHeaderText("Mid. name") .WithValueExpression(p => p.AuthorMiddleName); cols.Add("AuthorLastName").WithHeaderText("Last name") .WithValueExpression(p => p.AuthorLastName); }) .WithAdditionalQueryOptionNames("Search") .WithAdditionalSetting("RenderLoadingDiv", false) .WithSorting(true, "AuthorLastName") .WithPaging(true, 5) .WithRetrieveDataMethod((context) => { var options = context.QueryOptions; int totalRecords; var repo = new UnitOfWork(new DAL.HLibDBContext()); string globalSearch = options.GetAdditionalQueryOptionString("Search"); var items = repo.AuthorsRP.GetData(out totalRecords, globalSearch, options.SortColumnName, options.SortDirection == SortDirection.Dsc, options.GetLimitOffset(), options.GetLimitRowcount()); return(new QueryResult <Author>() { Items = items, TotalRecords = totalRecords }); }) ); }
public static void RegisterGrids() { MVCGridDefinitionTable.Add("PersonListGrid", new MVCGridBuilder <PersonModel>() .WithAuthorizationType(AuthorizationType.AllowAnonymous) .WithSorting(sorting: false) .WithPaging(paging: true, itemsPerPage: 10, allowChangePageSize: true, maxItemsPerPage: 100) .AddColumns(cols => { cols.Add("Id").WithValueExpression((p, c) => c.UrlHelper.Action("PersonDetail", "Home", new { id = p.Id })) .WithValueTemplate("<a href='{Value}'>{Model.Id}</a>", false) .WithPlainTextValueExpression(p => p.Id.ToString()); cols.Add("Name").WithHeaderText("Name") .WithVisibility(true, true) .WithValueExpression(p => p.Name); cols.Add("Age").WithHeaderText("Age") .WithVisibility(true, true) .WithValueExpression(p => p.Age.ToString()); cols.Add("Gender").WithValueExpression((p, c) => p.Gender) .WithAllowChangeVisibility(true); cols.Add("Email") .WithVisibility(visible: false, allowChangeVisibility: true) .WithValueExpression(p => p.Email); cols.Add("Url").WithVisibility(false) .WithValueExpression((p, c) => c.UrlHelper.Action("detail", "demo", new { id = p.Id })); }) //.WithAdditionalSetting(MVCGrid.Rendering.BootstrapRenderingEngine.SettingNameTableClass, "notreal") // Example of changing table css class .WithRetrieveDataMethod((context) => { var options = context.QueryOptions; int totalRecords; var repo = DependencyResolver.Current.GetService <IPersonService>(); string globalSearch = options.GetAdditionalQueryOptionString("search"); string sortColumn = options.GetSortColumnData <string>(); var items = repo.GetAll(options.GetLimitOffset() ?? 1, options.GetLimitRowcount() ?? 10, out totalRecords); return(new QueryResult <PersonModel>() { Items = items, TotalRecords = totalRecords }); }) ); }
public static void RegisterGrids() { MVCGridDefinitionTable.Add("ManageUsersGrid", new MVCGridBuilder <ManagePersonVm>() .WithAuthorizationType(AuthorizationType.Authorized) .WithSorting(true, "FullName") .WithPaging(paging: true, itemsPerPage: 2, allowChangePageSize: true, maxItemsPerPage: 50) .AddColumns(cols => { cols.Add("FullName").WithHeaderText("Name").WithValueExpression(p => p.FullName).WithFiltering(true); cols.Add("Address").WithHeaderText("Address").WithValueExpression(p => p.Address).WithFiltering(true); cols.Add("Phone").WithHeaderText("Phone").WithValueExpression(p => p.Phone).WithFiltering(true); cols.Add("PhoneConfirmed").WithHeaderText("Phone Confirmed").WithValueExpression(p => p.PhoneConfirmed ? "Yes" : "No").WithFiltering(true); cols.Add("Email").WithHeaderText("Email").WithValueExpression(p => p.Email).WithFiltering(true); cols.Add("EmailConfirmed").WithHeaderText("Email Confirmed").WithValueExpression(p => p.EmailConfirmed ? "Yes" : "No").WithFiltering(true); cols.Add("Gender").WithHeaderText("Gender").WithValueExpression(p => p.Gender).WithFiltering(true); }).WithRetrieveDataMethod((context) => { var service = DependencyResolver.Current.GetService <IUserService>(); var options = context.QueryOptions; var result = new QueryResult <ManagePersonVm>(); if (!options.GetLimitOffset().HasValue) { return(result); } var query = service.GetAllUsers().AsQueryable(); var limitOffset = options.GetLimitOffset(); var limitRowcount = options.GetLimitRowcount(); result.TotalRecords = query.Count(); if (limitOffset != null && limitRowcount != null) { query = query.Skip(limitOffset.Value).Take(limitRowcount.Value); } result.Items = query.ToList(); return(result); })); }
public ActionResult Index() { GridDefinition <YourModelItem> def = new GridDefinition <YourModelItem>(); GridColumn <YourModelItem> column = new GridColumn <YourModelItem>(); column.ColumnName = "UniqueColumnName"; column.HeaderText = "Any Header"; column.ValueExpression = (i, c) => i.YourProperty; def.AddColumn(column); def.RetrieveData = (options) => new QueryResult <YourModelItem>() { Items = _modelItems, TotalRecords = 0 }; MVCGridDefinitionTable.Add("NonFluentUsageExample", def); return(View()); }
public static void RegisterGrids() { MVCGridDefinitionTable.Add("GridAllUsers", new MVCGridBuilder <ADItem>() .WithAuthorizationType(AuthorizationType.AllowAnonymous) .AddColumns(cols => { cols.Add("sAMAccountName").WithHeaderText("sAMAccountName") .WithFiltering(true) .WithValueExpression(p => p.sAMAccountName); cols.Add("givenName").WithHeaderText("givenName") .WithValueExpression(p => p.givenName); cols.Add("sn").WithHeaderText("sn") .WithValueExpression(p => p.sn); cols.Add("distinguishedName").WithHeaderText("distinguishedName") .WithValueExpression(p => p.distinguishedName); cols.Add("userPrincipalName").WithHeaderText("userPrincipalName") .WithValueExpression(p => p.userPrincipalName); }) .WithFiltering(true) .WithRetrieveDataMethod((context) => { HttpClient HttpClient = new HttpClient(); var option = context.QueryOptions; var deffilter = option.GetFilterString("Permission"); var result = new QueryResult <ADItem>(); var task = Task.Run(async() => await DemoWebinar.GetAllUsers()); var x = task.Result; result.Items = task.Result; return(result); }) ); }
public static void RegisterGrids() { MVCGridDefinitionTable.Add("WaitingDocumentGrid", new MVCGridBuilder <Document>() .WithAuthorizationType(AuthorizationType.AllowAnonymous) .WithSorting(sorting: true, defaultSortColumn: "Id", defaultSortDirection: SortDirection.Dsc) //.WithPaging(true, 5) .WithAdditionalQueryOptionNames("search") .AddColumns(cols => { // Add your columns here cols.Add("code").WithColumnName("code") .WithHeaderText("Mã đơn") .WithValueExpression(i => i.code); // use the Value Expression to return the cell text for this column cols.Add("status").WithColumnName("status") .WithHeaderText("Trạng thái") .WithValueExpression((i, c) => { if (i.status == 0) { return("Chờ duyệt"); } else if (i.status == 99) { return("Đã duyệt"); } return("Đã hủy"); }); cols.Add("createdAt").WithColumnName("createdAt") .WithHeaderText("Thời gian tạo") .WithValueExpression((i, c) => { return(new DateTime(1970, 1, 1, 0, 0, 0, 0).AddSeconds(Math.Round(System.Convert.ToDouble(i.createdAt) / 1000d)).ToLocalTime().ToString()); }); cols.Add("createdBy").WithColumnName("createdBy") .WithHeaderText("Người tạo") .WithValueExpression(i => i.createdBy.username); cols.Add("startDate").WithColumnName("startDate") .WithHeaderText("Ngày bắt dầu") .WithValueExpression((i, c) => { return(new DateTime(1970, 1, 1, 0, 0, 0, 0).AddSeconds(Math.Round(System.Convert.ToDouble(i.startDate) / 1000d)).ToLocalTime().ToString()); }); cols.Add("endDate").WithColumnName("endDate") .WithHeaderText("Ngày kết thúc") .WithValueExpression((i, c) => { return(new DateTime(1970, 1, 1, 0, 0, 0, 0).AddSeconds(Math.Round(System.Convert.ToDouble(i.endDate) / 1000d)).ToLocalTime().ToString()); }); cols.Add("count").WithColumnName("count") .WithHeaderText("Số ngày nghỉ") .WithValueExpression((i, c) => { int count = (int)((i.endDate - i.startDate) / 1000 / 3600 / 24); if (count == 0) { return("1 ngày"); } else { return(count.ToString() + " ngày"); } }); cols.Add("VerifyBtn").WithSorting(false) .WithHeaderText("") .WithHtmlEncoding(false) .WithValueExpression((p, c) => c.UrlHelper.Action("VerifyDocument", "DonNghiPhep", new { id = p.C_id })) .WithValueTemplate("<a href='{Value}' class='btn btn-primary btn-verify' role='button' data-form-method='post'>Duyệt</a>"); cols.Add("CancelBtn").WithSorting(false) .WithHeaderText("") .WithHtmlEncoding(false) .WithValueExpression((p, c) => c.UrlHelper.Action("CancelDocument", "DonNghiPhep", new { id = p.C_id })) .WithValueTemplate("<a href='{Value}' class='btn btn-danger btn-cancel'>Hủy</a>"); cols.Add("DetailBtn").WithSorting(false) .WithHeaderText("") .WithHtmlEncoding(false) .WithValueExpression((p, c) => c.UrlHelper.Action("ViewDocument", "DonNghiPhep", new { id = p.C_id })) .WithValueTemplate("<a href='{Value}' class='btn btn-primary'>Chi tiết</a>"); }) .WithRetrieveDataMethod((context) => { var result = new QueryResult <Document>(); NghiphepEntities db = new NghiphepEntities(); // Query your data here. Obey Ordering, paging and filtering parameters given in the context.QueryOptions. // Use Entity Framework, a module from your IoC Container, or any other method. // Return QueryResult object containing IEnumerable<YouModelItem> var options = context.QueryOptions; var query = (from doc in db.Documents join user in db.Users on doc.createdById equals user.C_id where doc.status == 0 select new { C_id = doc.C_id, createdBy = user, code = doc.code, status = doc.status, createdAt = doc.createdAt, startDate = doc.startDate, endDate = doc.endDate }); System.Diagnostics.Debug.WriteLine(options.GetLimitOffset().HasValue); var documents = query.ToList().Select(r => new Document { C_id = r.C_id, createdBy = r.createdBy, code = r.code, status = r.status, createdAt = r.createdAt, startDate = r.startDate, endDate = r.endDate }).ToList(); //System.Diagnostics.Debug.WriteLine(options.GetLimitRowcount().Value); int count = 0; //if (options.GetLimitOffset().HasValue) //{ // documents = documents.Skip(options.GetLimitOffset().Value).Take(options.GetLimitRowcount().Value).ToList(); //} count = documents.Count; return(new QueryResult <Document>() { Items = documents, TotalRecords = count // if paging is enabled, return the total number of records of all pages }); }) ); MVCGridDefinitionTable.Add("WaitingDocumentGridEm", new MVCGridBuilder <Document>() .WithAuthorizationType(AuthorizationType.AllowAnonymous) .WithSorting(sorting: true, defaultSortColumn: "Id", defaultSortDirection: SortDirection.Dsc) //.WithPaging(true, 5) .WithAdditionalQueryOptionNames("search") .AddColumns(cols => { // Add your columns here cols.Add("code").WithColumnName("code") .WithHeaderText("Mã đơn") .WithValueExpression(i => i.code); // use the Value Expression to return the cell text for this column cols.Add("status").WithColumnName("status") .WithHeaderText("Trạng thái") .WithValueExpression((i, c) => { if (i.status == 0) { return("Chờ duyệt"); } else if (i.status == 99) { return("Đã duyệt"); } return("Đã hủy"); }); cols.Add("createdAt").WithColumnName("createdAt") .WithHeaderText("Thời gian tạo") .WithValueExpression((i, c) => { return(new DateTime(1970, 1, 1, 0, 0, 0, 0).AddSeconds(Math.Round(System.Convert.ToDouble(i.createdAt) / 1000d)).ToLocalTime().ToString()); }); cols.Add("createdBy").WithColumnName("createdBy") .WithHeaderText("Người tạo") .WithValueExpression(i => i.createdBy.username); cols.Add("startDate").WithColumnName("startDate") .WithHeaderText("Ngày bắt dầu") .WithValueExpression((i, c) => { return(new DateTime(1970, 1, 1, 0, 0, 0, 0).AddSeconds(Math.Round(System.Convert.ToDouble(i.startDate) / 1000d)).ToLocalTime().ToString()); }); cols.Add("endDate").WithColumnName("endDate") .WithHeaderText("Ngày kết thúc") .WithValueExpression((i, c) => { return(new DateTime(1970, 1, 1, 0, 0, 0, 0).AddSeconds(Math.Round(System.Convert.ToDouble(i.endDate) / 1000d)).ToLocalTime().ToString()); }); cols.Add("count").WithColumnName("count") .WithHeaderText("Số ngày nghỉ") .WithValueExpression((i, c) => { int count = (int)((i.endDate - i.startDate) / 1000 / 3600 / 24); if (count == 0) { return("1 ngày"); } else { return(count.ToString() + " ngày"); } }); cols.Add("DetailBtn").WithSorting(false) .WithHeaderText("") .WithHtmlEncoding(false) .WithValueExpression((p, c) => c.UrlHelper.Action("ViewDocument", "DonNghiPhep", new { id = p.C_id })) .WithValueTemplate("<a href='{Value}' class='btn btn-primary'>Chi tiết</a>"); }) .WithRetrieveDataMethod((context) => { var result = new QueryResult <Document>(); NghiphepEntities db = new NghiphepEntities(); // Query your data here. Obey Ordering, paging and filtering parameters given in the context.QueryOptions. // Use Entity Framework, a module from your IoC Container, or any other method. // Return QueryResult object containing IEnumerable<YouModelItem> var options = context.QueryOptions; var query = (from doc in db.Documents join user in db.Users on doc.createdById equals user.C_id where doc.status == 0 select new { C_id = doc.C_id, createdBy = user, code = doc.code, status = doc.status, createdAt = doc.createdAt, startDate = doc.startDate, endDate = doc.endDate }); System.Diagnostics.Debug.WriteLine(options.GetLimitOffset().HasValue); var documents = query.ToList().Select(r => new Document { C_id = r.C_id, createdBy = r.createdBy, code = r.code, status = r.status, createdAt = r.createdAt, startDate = r.startDate, endDate = r.endDate }).ToList(); //System.Diagnostics.Debug.WriteLine(options.GetLimitRowcount().Value); int count = 0; //if (options.GetLimitOffset().HasValue) //{ // documents = documents.Skip(options.GetLimitOffset().Value).Take(options.GetLimitRowcount().Value).ToList(); //} count = documents.Count; return(new QueryResult <Document>() { Items = documents, TotalRecords = count // if paging is enabled, return the total number of records of all pages }); }) ); MVCGridDefinitionTable.Add("VerifyDocumentGrid", new MVCGridBuilder <Document>() .WithAuthorizationType(AuthorizationType.AllowAnonymous) .WithSorting(sorting: true, defaultSortColumn: "Id", defaultSortDirection: SortDirection.Dsc) //.WithPaging(true, 5) .WithAdditionalQueryOptionNames("search") .AddColumns(cols => { // Add your columns here cols.Add("code").WithColumnName("code") .WithHeaderText("Mã đơn") .WithValueExpression(i => i.code); // use the Value Expression to return the cell text for this column cols.Add("status").WithColumnName("status") .WithHeaderText("Trạng thái") .WithValueExpression((i, c) => { if (i.status == 0) { return("Chờ duyệt"); } else if (i.status == 99) { return("Đã duyệt"); } return("Đã hủy"); }); cols.Add("createdAt").WithColumnName("createdAt") .WithHeaderText("Thời gian tạo") .WithValueExpression((i, c) => { return(new DateTime(1970, 1, 1, 0, 0, 0, 0).AddSeconds(Math.Round(System.Convert.ToDouble(i.createdAt) / 1000d)).ToLocalTime().ToString()); }); cols.Add("createdBy").WithColumnName("createdBy") .WithHeaderText("Người tạo") .WithValueExpression(i => i.createdBy.username); cols.Add("startDate").WithColumnName("startDate") .WithHeaderText("Ngày bắt dầu") .WithValueExpression((i, c) => { return(new DateTime(1970, 1, 1, 0, 0, 0, 0).AddSeconds(Math.Round(System.Convert.ToDouble(i.startDate) / 1000d)).ToLocalTime().ToString()); }); cols.Add("endDate").WithColumnName("endDate") .WithHeaderText("Ngày kết thúc") .WithValueExpression((i, c) => { return(new DateTime(1970, 1, 1, 0, 0, 0, 0).AddSeconds(Math.Round(System.Convert.ToDouble(i.endDate) / 1000d)).ToLocalTime().ToString()); }); cols.Add("count").WithColumnName("count") .WithHeaderText("Số ngày nghỉ") .WithValueExpression((i, c) => { int count = (int)((i.endDate - i.startDate) / 1000 / 3600 / 24); if (count == 0) { return("1 ngày"); } else { return(count.ToString() + " ngày"); } }); }) .WithRetrieveDataMethod((context) => { var result = new QueryResult <Document>(); NghiphepEntities db = new NghiphepEntities(); // Query your data here. Obey Ordering, paging and filtering parameters given in the context.QueryOptions. // Use Entity Framework, a module from your IoC Container, or any other method. // Return QueryResult object containing IEnumerable<YouModelItem> var options = context.QueryOptions; var query = (from doc in db.Documents join user in db.Users on doc.createdById equals user.C_id where doc.status == 99 select new { C_id = doc.C_id, createdBy = user, code = doc.code, status = doc.status, createdAt = doc.createdAt, startDate = doc.startDate, endDate = doc.endDate }); System.Diagnostics.Debug.WriteLine(options.GetLimitOffset().HasValue); var documents = query.ToList().Select(r => new Document { C_id = r.C_id, createdBy = r.createdBy, code = r.code, status = r.status, createdAt = r.createdAt, startDate = r.startDate, endDate = r.endDate }).ToList(); //System.Diagnostics.Debug.WriteLine(options.GetLimitRowcount().Value); int count = 0; if (options.GetLimitOffset().HasValue) { documents = documents.Skip(options.GetLimitOffset().Value).Take(options.GetLimitRowcount().Value).ToList(); } count = documents.Count; return(new QueryResult <Document>() { Items = documents, TotalRecords = count // if paging is enabled, return the total number of records of all pages }); }) ); MVCGridDefinitionTable.Add("VerifyDocumentGridEm", new MVCGridBuilder <Document>() .WithAuthorizationType(AuthorizationType.AllowAnonymous) .WithSorting(sorting: true, defaultSortColumn: "Id", defaultSortDirection: SortDirection.Dsc) //.WithPaging(true, 5) .WithAdditionalQueryOptionNames("search") .AddColumns(cols => { // Add your columns here cols.Add("code").WithColumnName("code") .WithHeaderText("Mã đơn") .WithValueExpression(i => i.code); // use the Value Expression to return the cell text for this column cols.Add("status").WithColumnName("status") .WithHeaderText("Trạng thái") .WithValueExpression((i, c) => { if (i.status == 0) { return("Chờ duyệt"); } else if (i.status == 99) { return("Đã duyệt"); } return("Đã hủy"); }); cols.Add("createdAt").WithColumnName("createdAt") .WithHeaderText("Thời gian tạo") .WithValueExpression((i, c) => { return(new DateTime(1970, 1, 1, 0, 0, 0, 0).AddSeconds(Math.Round(System.Convert.ToDouble(i.createdAt) / 1000d)).ToLocalTime().ToString()); }); cols.Add("createdBy").WithColumnName("createdBy") .WithHeaderText("Người tạo") .WithValueExpression(i => i.createdBy.username); cols.Add("startDate").WithColumnName("startDate") .WithHeaderText("Ngày bắt dầu") .WithValueExpression((i, c) => { return(new DateTime(1970, 1, 1, 0, 0, 0, 0).AddSeconds(Math.Round(System.Convert.ToDouble(i.startDate) / 1000d)).ToLocalTime().ToString()); }); cols.Add("endDate").WithColumnName("endDate") .WithHeaderText("Ngày kết thúc") .WithValueExpression((i, c) => { return(new DateTime(1970, 1, 1, 0, 0, 0, 0).AddSeconds(Math.Round(System.Convert.ToDouble(i.endDate) / 1000d)).ToLocalTime().ToString()); }); cols.Add("count").WithColumnName("count") .WithHeaderText("Số ngày nghỉ") .WithValueExpression((i, c) => { int count = (int)((i.endDate - i.startDate) / 1000 / 3600 / 24); if (count == 0) { return("1 ngày"); } else { return(count.ToString() + " ngày"); } }); cols.Add("DetailBtn").WithSorting(false) .WithHeaderText("") .WithHtmlEncoding(false) .WithValueExpression((p, c) => c.UrlHelper.Action("ViewDocument", "DonNghiPhep", new { id = p.C_id })) .WithValueTemplate("<a href='{Value}' class='btn btn-primary'>Chi tiết</a>"); }) .WithRetrieveDataMethod((context) => { var result = new QueryResult <Document>(); NghiphepEntities db = new NghiphepEntities(); // Query your data here. Obey Ordering, paging and filtering parameters given in the context.QueryOptions. // Use Entity Framework, a module from your IoC Container, or any other method. // Return QueryResult object containing IEnumerable<YouModelItem> var options = context.QueryOptions; var query = (from doc in db.Documents join user in db.Users on doc.createdById equals user.C_id where doc.status == 99 select new { C_id = doc.C_id, createdBy = user, code = doc.code, status = doc.status, createdAt = doc.createdAt, startDate = doc.startDate, endDate = doc.endDate }); System.Diagnostics.Debug.WriteLine(options.GetLimitOffset().HasValue); var documents = query.ToList().Select(r => new Document { C_id = r.C_id, createdBy = r.createdBy, code = r.code, status = r.status, createdAt = r.createdAt, startDate = r.startDate, endDate = r.endDate }).ToList(); //System.Diagnostics.Debug.WriteLine(options.GetLimitRowcount().Value); int count = 0; if (options.GetLimitOffset().HasValue) { documents = documents.Skip(options.GetLimitOffset().Value).Take(options.GetLimitRowcount().Value).ToList(); } count = documents.Count; return(new QueryResult <Document>() { Items = documents, TotalRecords = count // if paging is enabled, return the total number of records of all pages }); }) ); MVCGridDefinitionTable.Add("CancelDocumentGrid", new MVCGridBuilder <Document>() .WithAuthorizationType(AuthorizationType.AllowAnonymous) .WithSorting(sorting: true, defaultSortColumn: "Id", defaultSortDirection: SortDirection.Dsc) //.WithPaging(true, 5) .WithAdditionalQueryOptionNames("search") .AddColumns(cols => { // Add your columns here cols.Add("code").WithColumnName("code") .WithHeaderText("Mã đơn") .WithValueExpression(i => i.code); // use the Value Expression to return the cell text for this column cols.Add("status").WithColumnName("status") .WithHeaderText("Trạng thái") .WithValueExpression((i, c) => { if (i.status == 0) { return("Chờ duyệt"); } else if (i.status == 99) { return("Đã duyệt"); } return("Đã hủy"); }); cols.Add("createdAt").WithColumnName("createdAt") .WithHeaderText("Thời gian tạo") .WithValueExpression((i, c) => { return(new DateTime(1970, 1, 1, 0, 0, 0, 0).AddSeconds(Math.Round(System.Convert.ToDouble(i.createdAt) / 1000d)).ToLocalTime().ToString()); }); cols.Add("createdBy").WithColumnName("createdBy") .WithHeaderText("Người tạo") .WithValueExpression(i => i.createdBy.username); cols.Add("startDate").WithColumnName("startDate") .WithHeaderText("Ngày bắt dầu") .WithValueExpression((i, c) => { return(new DateTime(1970, 1, 1, 0, 0, 0, 0).AddSeconds(Math.Round(System.Convert.ToDouble(i.startDate) / 1000d)).ToLocalTime().ToString()); }); cols.Add("endDate").WithColumnName("endDate") .WithHeaderText("Ngày kết thúc") .WithValueExpression((i, c) => { return(new DateTime(1970, 1, 1, 0, 0, 0, 0).AddSeconds(Math.Round(System.Convert.ToDouble(i.endDate) / 1000d)).ToLocalTime().ToString()); }); cols.Add("count").WithColumnName("count") .WithHeaderText("Số ngày nghỉ") .WithValueExpression((i, c) => { int count = (int)((i.endDate - i.startDate) / 1000 / 3600 / 24); if (count == 0) { return("1 ngày"); } else { return(count.ToString() + " ngày"); } }); cols.Add("DetailBtn").WithSorting(false) .WithHeaderText("") .WithHtmlEncoding(false) .WithValueExpression((p, c) => c.UrlHelper.Action("ViewDocument", "DonNghiPhep", new { id = p.C_id })) .WithValueTemplate("<a href='{Value}' class='btn btn-primary'>Chi tiết</a>"); }) .WithRetrieveDataMethod((context) => { var result = new QueryResult <Document>(); NghiphepEntities db = new NghiphepEntities(); // Query your data here. Obey Ordering, paging and filtering parameters given in the context.QueryOptions. // Use Entity Framework, a module from your IoC Container, or any other method. // Return QueryResult object containing IEnumerable<YouModelItem> var options = context.QueryOptions; var query = (from doc in db.Documents join user in db.Users on doc.createdById equals user.C_id where doc.status == 100 select new { C_id = doc.C_id, createdBy = user, code = doc.code, status = doc.status, createdAt = doc.createdAt, startDate = doc.startDate, endDate = doc.endDate }); System.Diagnostics.Debug.WriteLine(options.GetLimitOffset().HasValue); var documents = query.ToList().Select(r => new Document { C_id = r.C_id, createdBy = r.createdBy, code = r.code, status = r.status, createdAt = r.createdAt, startDate = r.startDate, endDate = r.endDate }).ToList(); //System.Diagnostics.Debug.WriteLine(options.GetLimitRowcount().Value); int count = 0; if (options.GetLimitOffset().HasValue) { documents = documents.Skip(options.GetLimitOffset().Value).Take(options.GetLimitRowcount().Value).ToList(); } count = documents.Count; return(new QueryResult <Document>() { Items = documents, TotalRecords = count // if paging is enabled, return the total number of records of all pages }); }) ); MVCGridDefinitionTable.Add("CancelDocumentGridEm", new MVCGridBuilder <Document>() .WithAuthorizationType(AuthorizationType.AllowAnonymous) .WithSorting(sorting: true, defaultSortColumn: "Id", defaultSortDirection: SortDirection.Dsc) //.WithPaging(true, 5) .WithAdditionalQueryOptionNames("search") .AddColumns(cols => { // Add your columns here cols.Add("code").WithColumnName("code") .WithHeaderText("Mã đơn") .WithValueExpression(i => i.code); // use the Value Expression to return the cell text for this column cols.Add("status").WithColumnName("status") .WithHeaderText("Trạng thái") .WithValueExpression((i, c) => { if (i.status == 0) { return("Chờ duyệt"); } else if (i.status == 99) { return("Đã duyệt"); } return("Đã hủy"); }); cols.Add("createdAt").WithColumnName("createdAt") .WithHeaderText("Thời gian tạo") .WithValueExpression((i, c) => { return(new DateTime(1970, 1, 1, 0, 0, 0, 0).AddSeconds(Math.Round(System.Convert.ToDouble(i.createdAt) / 1000d)).ToLocalTime().ToString()); }); cols.Add("createdBy").WithColumnName("createdBy") .WithHeaderText("Người tạo") .WithValueExpression(i => i.createdBy.username); cols.Add("startDate").WithColumnName("startDate") .WithHeaderText("Ngày bắt dầu") .WithValueExpression((i, c) => { return(new DateTime(1970, 1, 1, 0, 0, 0, 0).AddSeconds(Math.Round(System.Convert.ToDouble(i.startDate) / 1000d)).ToLocalTime().ToString()); }); cols.Add("endDate").WithColumnName("endDate") .WithHeaderText("Ngày kết thúc") .WithValueExpression((i, c) => { return(new DateTime(1970, 1, 1, 0, 0, 0, 0).AddSeconds(Math.Round(System.Convert.ToDouble(i.endDate) / 1000d)).ToLocalTime().ToString()); }); cols.Add("count").WithColumnName("count") .WithHeaderText("Số ngày nghỉ") .WithValueExpression((i, c) => { int count = (int)((i.endDate - i.startDate) / 1000 / 3600 / 24); if (count == 0) { return("1 ngày"); } else { return(count.ToString() + " ngày"); } }); cols.Add("DetailBtn").WithSorting(false) .WithHeaderText("") .WithHtmlEncoding(false) .WithValueExpression((p, c) => c.UrlHelper.Action("ViewDocument", "DonNghiPhep", new { id = p.C_id })) .WithValueTemplate("<a href='{Value}' class='btn btn-primary'>Chi tiết</a>"); }) .WithRetrieveDataMethod((context) => { var result = new QueryResult <Document>(); NghiphepEntities db = new NghiphepEntities(); // Query your data here. Obey Ordering, paging and filtering parameters given in the context.QueryOptions. // Use Entity Framework, a module from your IoC Container, or any other method. // Return QueryResult object containing IEnumerable<YouModelItem> var options = context.QueryOptions; var query = (from doc in db.Documents join user in db.Users on doc.createdById equals user.C_id where doc.status == 100 select new { C_id = doc.C_id, createdBy = user, code = doc.code, status = doc.status, createdAt = doc.createdAt, startDate = doc.startDate, endDate = doc.endDate }); System.Diagnostics.Debug.WriteLine(options.GetLimitOffset().HasValue); var documents = query.ToList().Select(r => new Document { C_id = r.C_id, createdBy = r.createdBy, code = r.code, status = r.status, createdAt = r.createdAt, startDate = r.startDate, endDate = r.endDate }).ToList(); //System.Diagnostics.Debug.WriteLine(options.GetLimitRowcount().Value); int count = 0; if (options.GetLimitOffset().HasValue) { documents = documents.Skip(options.GetLimitOffset().Value).Take(options.GetLimitRowcount().Value).ToList(); } count = documents.Count; return(new QueryResult <Document>() { Items = documents, TotalRecords = count // if paging is enabled, return the total number of records of all pages }); }) ); MVCGridDefinitionTable.Add("UserGrid", new MVCGridBuilder <User>() .WithAuthorizationType(AuthorizationType.AllowAnonymous) .WithSorting(sorting: true, defaultSortColumn: "Id", defaultSortDirection: SortDirection.Dsc) //.WithPaging(true, 5) .WithAdditionalQueryOptionNames("search") .AddColumns(cols => { // Add your columns here cols.Add("username").WithColumnName("username") .WithHeaderText("Mã nhân viên") .WithValueExpression(i => i.username); // use the Value Expression to return the cell text for this column cols.Add("ContractType").WithColumnName("ContractType") .WithHeaderText("Ngày phép") .WithValueExpression((i, c) => { return(i.ContractType.dayOff.ToString()); }); cols.Add("dateOff").WithColumnName("dateOff") .WithHeaderText("Ngày phép còn lại") .WithValueExpression((i, c) => { return(i.dayOff.ToString()); }); cols.Add("createdAt").WithColumnName("createdAt") .WithHeaderText("Thời gian tạo") .WithValueExpression((i, c) => { return(new DateTime(1970, 1, 1, 0, 0, 0, 0).AddSeconds(Math.Round(System.Convert.ToDouble(i.createdAt) / 1000d)).ToLocalTime().ToString()); }); cols.Add("ContractType").WithColumnName("ContractTypeName") .WithHeaderText("Hợp đồng") .WithValueExpression((i, c) => { return(i.ContractType.name); }); cols.Add("VerifyBtn").WithSorting(false) .WithHeaderText("") .WithHtmlEncoding(false) .WithValueExpression((p, c) => c.UrlHelper.Action("Edit", "NguoiDung", new { id = p.C_id })) .WithValueTemplate("<a href='{Value}' class='btn btn-primary' role='button' data-form-method='post'>Sửa</a>"); cols.Add("CancelBtn").WithSorting(false) .WithHeaderText("") .WithHtmlEncoding(false) .WithValueExpression((p, c) => c.UrlHelper.Action("DeleteUser", "NguoiDung", new { id = p.C_id })) .WithValueTemplate("<a href='{Value}' class='btn btn-danger'>Xóa</a>"); }) .WithRetrieveDataMethod((context) => { var result = new QueryResult <User>(); NghiphepEntities db = new NghiphepEntities(); // Query your data here. Obey Ordering, paging and filtering parameters given in the context.QueryOptions. // Use Entity Framework, a module from your IoC Container, or any other method. // Return QueryResult object containing IEnumerable<YouModelItem> var options = context.QueryOptions; var query = (from user in db.Users join contract in db.ContractTypes on user.contractId equals contract.C_id where user.isActive == true select new { C_id = user.C_id, username = user.username, dayOff = user.dayOff, createdAt = user.createdAt, ContractType = contract }); System.Diagnostics.Debug.WriteLine(options.GetLimitOffset().HasValue); var users = query.ToList().Select(r => new User { C_id = r.C_id, username = r.username, dayOff = r.dayOff, createdAt = r.createdAt, ContractType = r.ContractType }).ToList(); //System.Diagnostics.Debug.WriteLine(options.GetLimitRowcount().Value); int count = 0; //if (options.GetLimitOffset().HasValue) //{ // documents = documents.Skip(options.GetLimitOffset().Value).Take(options.GetLimitRowcount().Value).ToList(); //} System.Diagnostics.Debug.WriteLine(users.Count); count = users.Count; return(new QueryResult <User>() { Items = users, TotalRecords = count // if paging is enabled, return the total number of records of all pages }); }) ); }
public override void RegisterGrids() { UrlHelper UrlHelper = new UrlHelper(); //Issue6Grid MVCGridDefinitionTable.Add("InitialDateGrid", new MVCGridBuilder <IReportInvoiceLine>() .WithSorting(false) .WithPaging(false) .WithAllowChangingPageSize(false) .WithFiltering(true) .WithNoResultsMessage("Please enter a year to search for. No results found.") .AddColumns(cols => { cols.Add("Year").WithHeaderText("Year") .WithFiltering(true) .WithValueExpression(a => a.Year.ToString()); cols.Add("InvoiceNo").WithHeaderText("Invoice No.") .WithVisibility(true, true) .WithValueExpression(a => a.InvoiceNumber.ToString()); cols.Add("City").WithHeaderText("City") .WithVisibility(true, true) .WithValueExpression(a => a.City); }) .WithRetrieveDataMethod((context) => { IList <IReportInvoiceLine> list = new List <IReportInvoiceLine>(); int totalRecords = 0; string syear = context.QueryOptions.GetFilterString("Year"); int year; if (Int32.TryParse(syear, out year)) { list = ReportInvoiceLines(year); totalRecords = list.Count; } return(new QueryResult <IReportInvoiceLine>() { Items = list, TotalRecords = totalRecords }); }) ); //Issue6Grid MVCGridDefinitionTable.Add("Issue6Grid", new MVCGridBuilder <Job>() .WithSorting(true) .WithDefaultSortColumn("Id") .WithPaging(true) .WithAllowChangingPageSize(true) .WithMaxItemsPerPage(100) .WithItemsPerPage(10) .WithAdditionalQueryOptionName("globalsearch") .AddColumns(cols => { cols.Add("Id", "Id", row => row.JobId.ToString()).WithSorting(true); cols.Add("Name", "Name", row => row.Name).WithSorting(true); cols.Add("Contact") .WithHeaderText("Contact") .WithSorting(false) .WithHtmlEncoding(false) .WithValueExpression((p, c) => p.Contact != null ? UrlHelper.Action("Edit", "Contact", new { id = p.Contact.Id }) : "") .WithValueTemplate("<a href='{Value}'>{Model.Contact.FullName}</a>").WithPlainTextValueExpression((p, c) => p.Contact != null ? p.Contact.FullName : ""); cols.Add("Delete") .WithHtmlEncoding(false) .WithSorting(false) .WithFiltering(false) .WithHeaderText("<input type='checkbox' id='chkselectall'>") .WithValueExpression((p, c) => UrlHelper.Action("Save", "Country", new { area = "General", id = p.JobId })) .WithValueTemplate("<input type='checkbox' class='select' value='{Model.JobId}'>") .WithPlainTextValueExpression((p, c) => ""); }) .WithRetrieveDataMethod((context) => { var options = context.QueryOptions; string globalsearch = options.GetAdditionalQueryOptionString("globalsearch"); JobRepo repo = new JobRepo(); int totalRecords; var data = repo.GetData(out totalRecords, globalsearch, options.GetLimitOffset(), options.GetLimitRowcount(), options.GetSortColumnData <string>(), options.SortDirection == SortDirection.Dsc); return(new QueryResult <Job>() { Items = data, TotalRecords = totalRecords }); }) ); //Issue21Grid //ńłóźćłąę. MVCGridDefinitionTable.Add("Issue21Grid", new MVCGridBuilder <TestItem>() .WithAuthorizationType(AuthorizationType.AllowAnonymous) .AddColumns(cols => { cols.Add("Col1").WithValueExpression(p => "ńłóźćłąę."); cols.Add("Col2").WithValueExpression(p => p.Col2); }) .WithSorting(true, "Col1") .WithPaging(true, 10) .WithFiltering(true) .WithRetrieveDataMethod((context) => { var options = context.QueryOptions; string col3Filter = context.QueryOptions.GetFilterString("FromDate"); TestItemRepository repo = new TestItemRepository(); int totalRecords; var items = repo.GetData(out totalRecords, col3Filter, options.GetLimitOffset(), options.GetLimitRowcount(), options.GetSortColumnData <string>(), options.SortDirection == SortDirection.Dsc); return(new QueryResult <TestItem>() { Items = items, TotalRecords = totalRecords }); }) ); //Issue17Grid MVCGridDefinitionTable.Add("Issue17Grid", new MVCGridBuilder <TestItem>() .WithAuthorizationType(AuthorizationType.AllowAnonymous) .AddColumns(cols => { cols.Add("Col1").WithValueExpression(p => p.Col1); cols.Add("Col2").WithValueExpression(p => p.Col2); cols.Add("FromDate").WithHeaderText("From Date").WithFiltering(true).WithValueExpression(x => x.Col3); }) .WithSorting(true, "Col1") .WithPaging(true, 10) .WithFiltering(true) .WithRetrieveDataMethod((context) => { var options = context.QueryOptions; string col3Filter = context.QueryOptions.GetFilterString("FromDate"); TestItemRepository repo = new TestItemRepository(); int totalRecords; var items = repo.GetData(out totalRecords, col3Filter, options.GetLimitOffset(), options.GetLimitRowcount(), options.GetSortColumnData <string>(), options.SortDirection == SortDirection.Dsc); return(new QueryResult <TestItem>() { Items = items, TotalRecords = totalRecords }); }) ); //Issue28Grid MVCGridDefinitionTable.Add("Issue28Grid", new MVCGridBuilder <TestItem>() .WithAuthorizationType(AuthorizationType.AllowAnonymous) .AddColumns(cols => { cols.Add("Col1").WithValueExpression(p => p.Col1); cols.Add("Col2").WithValueExpression(p => p.Col2); cols.Add("Active").WithValueExpression(p => p.Col4.ToString()); cols.Add("Actions").WithHtmlEncoding(false).WithValueExpression((p, c) => { // here's how to get an action url string url = UrlHelper.Action("action1", "test"); // build whatever html you want StringBuilder sb = new StringBuilder(); sb.Append("<img src='action1.png' onclick='someFunction()'>"); sb.Append("<img src='action2.png' onclick='someFunction()'>"); // conditional html if (p.Col4) { sb.Append("<img src='action3.png' onclick='someFunction()'>"); } return(sb.ToString()); }); }) .WithSorting(true, "Col1") .WithPaging(true, 10) .WithFiltering(true) .WithRetrieveDataMethod((context) => { var options = context.QueryOptions; TestItemRepository repo = new TestItemRepository(); int totalRecords; var items = repo.GetData(out totalRecords, null, options.GetLimitOffset(), options.GetLimitRowcount(), options.GetSortColumnData <string>(), options.SortDirection == SortDirection.Dsc); return(new QueryResult <TestItem>() { Items = items, TotalRecords = totalRecords }); }) ); }
public static void RegisterMVCGrid <T>(this IApplicationBuilder app, string name, MVCGridBuilder <T> builder) { MVCGridDefinitionTable.Add(name, builder); }
public static void RegisterGrids() { var isViewer = false; if (HttpContext.Current != null && HttpContext.Current.User != null) { isViewer = HttpContext.Current.User.IsInRole("Viewer"); } MVCGridDefinitionTable.Add("MembersGrid", new MVCGridBuilder <Member>() .WithAuthorizationType(AuthorizationType.AllowAnonymous) .WithAdditionalQueryOptionNames("search") .AddColumns(cols => { // Add your columns here //cols.Add("View").WithHtmlEncoding(false) // .WithSorting(false) // .WithHeaderText(" ") // .WithValueExpression((p, c) => c.UrlHelper.Action("Details", "Members", new { id = p.Id })) // .WithValueTemplate("<a href='{Value}' class='btn btn-default' role='button'>View</a>"); cols.Add("Edit").WithHtmlEncoding(false) .WithSorting(false) .WithHeaderText(" ") .WithValueExpression((p, c) => c.UrlHelper.Action("Edit", "Members", new { id = p.Id })) .WithVisibility(!isViewer) .WithValueTemplate("<a href='{Value}' class='btn btn-default' role='button'>Edit</a>"); //cols.Add("Delete").WithHtmlEncoding(false) // .WithSorting(false) // .WithHeaderText(" ") // .WithValueExpression((p, c) => c.UrlHelper.Action("Delete", "Members", new { id = p.Id })) // .WithVisibility(!isViewer) // .WithValueTemplate("<a href='{Value}' class='btn btn-danger' role='button'>Delete</a>"); cols.Add("MemNum") .WithSorting(true) .WithHeaderText("Mem Num") .WithAllowChangeVisibility(true) .WithValueExpression(i => i.MemNum.ToString()); cols.Add("Status") .WithSorting(true) .WithFiltering(true) .WithHeaderText("Status") .WithAllowChangeVisibility(true) .WithValueExpression(i => i.Status.Name); cols.Add("LastName") .WithSorting(true) .WithAllowChangeVisibility(true) .WithHeaderText("Last") .WithValueExpression(i => i.LastName); cols.Add("FirstName") .WithSorting(true) .WithHeaderText("First") .WithAllowChangeVisibility(true) .WithValueExpression(i => i.FirstName); cols.Add("MiddleName") .WithSorting(true) .WithAllowChangeVisibility(true) .WithHeaderText("Middle") .WithValueExpression(i => i.MiddleName); cols.Add("NickName") .WithSorting(true) .WithAllowChangeVisibility(true) .WithHeaderText("Nick") .WithValueExpression(i => i.NickName); cols.Add("Title") .WithSorting(true) .WithAllowChangeVisibility(true) .WithHeaderText("Title") .WithValueExpression(i => i.Title); cols.Add("Suffix") .WithSorting(true) .WithAllowChangeVisibility(true) .WithHeaderText("Suffix") .WithValueExpression(i => i.Suffix); cols.Add("HomePhone") .WithSorting(true) .WithAllowChangeVisibility(true) .WithHeaderText("HomePhone") .WithValueExpression(i => i.HomePhone); cols.Add("CellPhone") .WithSorting(true) .WithAllowChangeVisibility(true) .WithHeaderText("CellPhone") .WithValueExpression(i => i.CellPhone); cols.Add("OfficePhone") .WithSorting(true) .WithAllowChangeVisibility(true) .WithHeaderText("OfficePhone") .WithValueExpression(i => i.OfficePhone); cols.Add("StreetAddress") .WithSorting(true) .WithAllowChangeVisibility(true) .WithHeaderText("Street") .WithValueExpression(i => i.StreetAddress); cols.Add("City") .WithSorting(true) .WithAllowChangeVisibility(true) .WithHeaderText("City") .WithValueExpression(i => i.City); cols.Add("State") .WithSorting(true) .WithAllowChangeVisibility(true) .WithHeaderText("State") .WithValueExpression(i => i.State); cols.Add("Zip") .WithSorting(true) .WithAllowChangeVisibility(true) .WithHeaderText("Zip") .WithValueExpression(i => i.Zip); cols.Add("Email") .WithSorting(true) .WithAllowChangeVisibility(true) .WithHeaderText("Email") .WithValueExpression(i => i.Email); cols.Add("Spouse") .WithSorting(true) .WithAllowChangeVisibility(true) .WithHeaderText("Spouse") .WithValueExpression(i => i.Spouse); cols.Add("Clan") .WithSorting(true) .WithAllowChangeVisibility(true) .WithHeaderText("Clan") .WithValueExpression(i => i.Clan); cols.Add("Business") .WithSorting(true) .WithAllowChangeVisibility(true) .WithHeaderText("Business") .WithValueExpression(i => i.Business); cols.Add("WaitingStatus") .WithSorting(true) .WithAllowChangeVisibility(true) .WithHeaderText("WaitingStatus") .WithValueExpression(i => i.WaitingStatus); cols.Add("NewMemberOrientation") .WithSorting(true) .WithAllowChangeVisibility(true) .WithHeaderText("NMOrientation") .WithValueExpression(i => i.NewMemberOrientation); cols.Add("Kilted") .WithSorting(true) .WithAllowChangeVisibility(true) .WithHeaderText("Kilted") .WithValueExpression(i => i.Kilted); cols.Add("ApplicationDate") .WithSorting(true) .WithAllowChangeVisibility(true) .WithHeaderText("Application") .WithValueExpression(i => i.ApplicationDate.HasValue ? i.ApplicationDate.Value.ToString("MM/dd/yyyy") : ""); cols.Add("ElectionDate") .WithSorting(true) .WithAllowChangeVisibility(true) .WithHeaderText("Election") .WithValueExpression(i => i.ElectionDate.HasValue ? i.ElectionDate.Value.ToString("MM/dd/yyyy") : ""); cols.Add("ActivitionDate") .WithSorting(true) .WithAllowChangeVisibility(true) .WithHeaderText("Activition") .WithValueExpression(i => i.ActivitionDate.HasValue ? i.ActivitionDate.Value.ToString("MM/dd/yyyy") : ""); cols.Add("TerminationDate") .WithSorting(true) .WithAllowChangeVisibility(true) .WithHeaderText("Termination") .WithValueExpression(i => i.TerminationDate.HasValue ? i.TerminationDate.Value.ToString("MM/dd/yyyy") : ""); cols.Add("Reason") .WithSorting(true) .WithAllowChangeVisibility(true) .WithHeaderText("Reason") .WithValueExpression(i => i.Reason); cols.Add("LastUpdate") .WithSorting(true) .WithAllowChangeVisibility(true) .WithHeaderText("LastUpdate") .WithValueExpression(i => i.LastUpdate.ToString("MM/dd/yyyy")); }) .WithSorting(true, "MemNum") .WithPaging(true, 20) .WithFiltering(true) .WithRetrieveDataMethod((context) => { try { var options = context.QueryOptions; var result = new QueryResult <Member>(); string globalSearch = options.GetAdditionalQueryOptionString("search"); var status = options.GetFilterString("Status"); var statusId = string.IsNullOrEmpty(status) ? -1 : Convert.ToInt32(status); using (var db = new ApplicationDbContext()) { var query = db.Members.Where(x => (string.IsNullOrEmpty(globalSearch) || (x.FirstName.Contains(globalSearch) || x.LastName.Contains(globalSearch) || x.Email.Contains(globalSearch) || x.Clan.Contains(globalSearch) || x.Business.Contains(globalSearch) || x.City.Contains(globalSearch))) && (statusId == -1 || x.StatusId == statusId)) .Include(x => x.Status) .OrderBy(x => x.MemNum) .AsQueryable(); result.TotalRecords = query.Count(); if (!String.IsNullOrWhiteSpace(options.SortColumnName)) { switch (options.SortColumnName) { case "Status": if (options.SortDirection == SortDirection.Asc) { query = query.OrderBy(p => p.StatusId); } else { query = query.OrderByDescending(p => p.StatusId); } break; case "FirstName": if (options.SortDirection == SortDirection.Asc) { query = query.OrderBy(p => p.FirstName); } else { query = query.OrderByDescending(p => p.FirstName); } break; case "MiddleName": if (options.SortDirection == SortDirection.Asc) { query = query.OrderBy(p => p.MiddleName); } else { query = query.OrderByDescending(p => p.MiddleName); } break; case "NickName": if (options.SortDirection == SortDirection.Asc) { query = query.OrderBy(p => p.NickName); } else { query = query.OrderByDescending(p => p.NickName); } break; case "LastName": if (options.SortDirection == SortDirection.Asc) { query = query.OrderBy(p => p.LastName); } else { query = query.OrderByDescending(p => p.LastName); } break; case "Title": if (options.SortDirection == SortDirection.Asc) { query = query.OrderBy(p => p.Title); } else { query = query.OrderByDescending(p => p.Title); } break; case "Suffix": if (options.SortDirection == SortDirection.Asc) { query = query.OrderBy(p => p.Suffix); } else { query = query.OrderByDescending(p => p.Suffix); } break; case "StreetAddress": if (options.SortDirection == SortDirection.Asc) { query = query.OrderBy(p => p.StreetAddress); } else { query = query.OrderByDescending(p => p.StreetAddress); } break; case "City": if (options.SortDirection == SortDirection.Asc) { query = query.OrderBy(p => p.City); } else { query = query.OrderByDescending(p => p.City); } break; case "State": if (options.SortDirection == SortDirection.Asc) { query = query.OrderBy(p => p.State); } else { query = query.OrderByDescending(p => p.State); } break; case "Zip": if (options.SortDirection == SortDirection.Asc) { query = query.OrderBy(p => p.Zip); } else { query = query.OrderByDescending(p => p.Zip); } break; case "HomePhone": if (options.SortDirection == SortDirection.Asc) { query = query.OrderBy(p => p.HomePhone); } else { query = query.OrderByDescending(p => p.HomePhone); } break; case "OfficePhone": if (options.SortDirection == SortDirection.Asc) { query = query.OrderBy(p => p.OfficePhone); } else { query = query.OrderByDescending(p => p.OfficePhone); } break; case "CellPhone": if (options.SortDirection == SortDirection.Asc) { query = query.OrderBy(p => p.CellPhone); } else { query = query.OrderByDescending(p => p.CellPhone); } break; case "Email": if (options.SortDirection == SortDirection.Asc) { query = query.OrderBy(p => p.Email); } else { query = query.OrderByDescending(p => p.Email); } break; case "Clan": if (options.SortDirection == SortDirection.Asc) { query = query.OrderBy(p => p.Clan); } else { query = query.OrderByDescending(p => p.Clan); } break; case "Kilted": if (options.SortDirection == SortDirection.Asc) { query = query.OrderBy(p => p.Kilted); } else { query = query.OrderByDescending(p => p.Kilted); } break; case "Business": if (options.SortDirection == SortDirection.Asc) { query = query.OrderBy(p => p.Business); } else { query = query.OrderByDescending(p => p.Business); } break; case "ApplicationDate": if (options.SortDirection == SortDirection.Asc) { query = query.OrderBy(p => p.ApplicationDate); } else { query = query.OrderByDescending(p => p.ApplicationDate); } break; case "ElectionDate": if (options.SortDirection == SortDirection.Asc) { query = query.OrderBy(p => p.ElectionDate); } else { query = query.OrderByDescending(p => p.ElectionDate); } break; case "ActivitionDate": if (options.SortDirection == SortDirection.Asc) { query = query.OrderBy(p => p.ActivitionDate); } else { query = query.OrderByDescending(p => p.ActivitionDate); } break; case "TerminationDate": if (options.SortDirection == SortDirection.Asc) { query = query.OrderBy(p => p.TerminationDate); } else { query = query.OrderByDescending(p => p.TerminationDate); } break; case "Reason": if (options.SortDirection == SortDirection.Asc) { query = query.OrderBy(p => p.Reason); } else { query = query.OrderByDescending(p => p.Reason); } break; case "NewMemberOrientation": if (options.SortDirection == SortDirection.Asc) { query = query.OrderBy(p => p.NewMemberOrientation); } else { query = query.OrderByDescending(p => p.NewMemberOrientation); } break; case "WaitingStatus": if (options.SortDirection == SortDirection.Asc) { query = query.OrderBy(p => p.WaitingStatus); } else { query = query.OrderByDescending(p => p.WaitingStatus); } break; case "LastUpdate": if (options.SortDirection == SortDirection.Asc) { query = query.OrderBy(p => p.LastUpdate); } else { query = query.OrderByDescending(p => p.LastUpdate); } break; case "Spouse": if (options.SortDirection == SortDirection.Asc) { query = query.OrderBy(p => p.Spouse); } else { query = query.OrderByDescending(p => p.Spouse); } break; case "MemNum": if (options.SortDirection == SortDirection.Asc) { query = query.OrderBy(p => p.MemNum); } else { query = query.OrderByDescending(p => p.MemNum); } break; } } if (options.GetLimitOffset().HasValue) { query = query.Skip(options.GetLimitOffset().Value).Take(options.GetLimitRowcount().Value); } result.Items = query.ToList(); } return(result); } catch (Exception e) { return(null); } }) ); }
public static void RegisterGrids() { GridDefaults gridDefaults = new GridDefaults() { Paging = true, ItemsPerPage = 20, Sorting = true, NoResultsMessage = "Sorry, no results were found" }; ColumnDefaults colDefaults = new ColumnDefaults() { EnableSorting = true }; MVCGridDefinitionTable.Add("StudentGrid", new MVCGridBuilder <tblStudent>(colDefaults) .WithAuthorizationType(AuthorizationType.AllowAnonymous) .AddColumns(cols => { // Add your columns here cols.Add("StudID").WithValueExpression(p => p.StudID.ToString()); cols.Add("StudCode").WithValueExpression(p => p.StudCode.ToString()); cols.Add("FullName").WithHeaderText("FullName") .WithValueExpression(p => p.FullName); }) .WithSorting(true, "StudCode") .WithPaging(true, 10) .WithRetrieveDataMethod((context) => { var result = new QueryResult <tblStudent>(); using (var db = new SchoolTimeContext()) { result.Items = db.tblStudents.ToList(); } return(result); }) ); MVCGridDefinitionTable.Add("SujectsGrid", new MVCGridBuilder <tblSuject>() .WithAuthorizationType(AuthorizationType.AllowAnonymous) .AddColumns(cols => { // Add your columns here cols.Add("SujectID").WithValueExpression(p => p.SujectID.ToString()); cols.Add("SujectCode").WithValueExpression(p => p.SujectCode.ToString()); cols.Add("SujectName").WithValueExpression(p => p.SujectName.ToString()); }) .WithRetrieveDataMethod((context) => { var result = new QueryResult <tblSuject>(); using (var db = new SchoolTimeContext()) { result.Items = db.tblSujects.ToList(); } return(result); }) ); MVCGridDefinitionTable.Add("TeacherGrid", new MVCGridBuilder <tblTeacher>() .WithAuthorizationType(AuthorizationType.AllowAnonymous) .AddColumns(cols => { // Add your columns here cols.Add("teachID").WithValueExpression(p => p.teachID.ToString()); cols.Add("teachCode").WithValueExpression(p => p.teachCode.ToString()); cols.Add("FullName").WithValueExpression(p => p.FullName.ToString()); }) .WithRetrieveDataMethod((context) => { var result = new QueryResult <tblTeacher>(); using (var db = new SchoolTimeContext()) { result.Items = db.tblTeachers.ToList(); } return(result); }) ); }
/// <summary> /// Register all the MVCGrid.Net /// </summary> public static void RegisterGrids() { #region " MVCGrid.Net Example " /* Example: * MVCGridDefinitionTable.Add("UsageExample", new MVCGridBuilder<YourModelItem>() * .WithAuthorizationType(AuthorizationType.AllowAnonymous) * .AddColumns(cols => * { * // Add your columns here * cols.Add().WithColumnName("UniqueColumnName") * .WithHeaderText("Any Header") * .WithValueExpression(i => i.YourProperty); // use the Value Expression to return the cell text for this column * cols.Add().WithColumnName("UrlExample") * .WithHeaderText("Edit") * .WithValueExpression((i, c) => c.UrlHelper.Action("detail", "demo", new { id = i.Id })); * }) * .WithRetrieveDataMethod((context) => * { * // Query your data here. Obey Ordering, paging and filtering parameters given in the context.QueryOptions. * // Use Entity Framework, a module from your IoC Container, or any other method. * // Return QueryResult object containing IEnumerable<YouModelItem> * * return new QueryResult<YourModelItem>() * { * Items = new List<YourModelItem>(), * TotalRecords = 0 // if paging is enabled, return the total number of records of all pages * }; * * }) * ); */ #endregion #region " The Search Page Grid " // The Search Page MVCGridDefinitionTable.Add("SearchGrid", new MVCGridBuilder <Models.Character>() .WithAuthorizationType(AuthorizationType.AllowAnonymous) .AddColumns(cols => { // Add your columns here cols.Add().WithColumnName("Name") .WithHeaderText("Name") .WithSorting(true) .WithValueTemplate("<a href='{Value}'>{Model.Name}</a>", false) .WithValueExpression((p, c) => c.UrlHelper.Action("Character", "WGO", new { name = p.Name, realm = p.Realm })); cols.Add().WithColumnName("Level") .WithHeaderText("Level") .WithSorting(true) .WithValueExpression(i => i.Level.ToString()) .WithCellCssClassExpression(p => DateModifiedLately(p.Modified_Level) ? "table-success" : ""); cols.Add().WithColumnName("Class") .WithSorting(true) .WithValueExpression(i => i.Class); cols.Add().WithColumnName("AchievementPoints") .WithHeaderText("Achievement Points") .WithSorting(true) .WithValueExpression(i => i.AchievementPoints.ToString()) .WithCellCssClassExpression(p => DateModifiedLately(p.Modified_AchievementPoints) ? "table-success" : ""); cols.Add().WithColumnName("MaxiLevel") .WithHeaderText("Max iLevel") .WithSorting(true) .WithValueExpression(i => i.Max_iLevel.ToString()) .WithCellCssClassExpression(p => DateModifiedLately(p.Modified_Max_iLevel) ? "table-success" : ""); cols.Add().WithColumnName("EquippediLevel") .WithHeaderText("Equipped iLevel") .WithSorting(true) .WithValueExpression(i => i.Equipped_iLevel.ToString()) .WithCellCssClassExpression(p => DateModifiedLately(p.Modified_Equipped_iLevel) ? "table-success" : ""); cols.Add().WithColumnName("LastModified") .WithHeaderText("Last Modified") .WithSorting(true) .WithValueExpression(i => i.LastUpdated.ToString()); }) .WithPageParameterNames("name") .WithPageParameterNames("realm") //.WithQueryOnPageLoad(false) // this does not seem to work - Grid will flash, but then will disappear .WithPreloadData(false) .WithSorting(true, "EquippediLevel") .WithRetrieveDataMethod((context) => { // Query your data here. Obey Ordering, paging and filtering parameters given in the context.QueryOptions. // Use Entity Framework, a module from your IoC Container, or any other method. // Return QueryResult object containing IEnumerable<YouModelItem> var options = context.QueryOptions; string searchName = options.GetPageParameterString("name"); string searchRealm = options.GetPageParameterString("realm"); Models.WGODBContext db = new Models.WGODBContext(); var query = db.Characters.Where(s => s.Name == searchName && s.Realm == searchRealm).OrderByDescending(s => s.Equipped_iLevel); int itemCount = query.Count(); return(new QueryResult <Models.Character>() { // Return the List of Characters Items = query, // if paging is enabled, return the total number of records of all pages TotalRecords = query.Count() }); }) ); #endregion #region " The Guild Page Grid " // The Guild Page MVCGridDefinitionTable.Add("GuildRoster", new MVCGridBuilder <Models.RankedCharacter>() .WithAuthorizationType(AuthorizationType.AllowAnonymous) .WithSorting(sorting: true, defaultSortColumn: "default", defaultSortDirection: SortDirection.Dsc) .WithPaging(paging: true, itemsPerPage: 10, allowChangePageSize: true, maxItemsPerPage: 100) .WithAdditionalQueryOptionNames("search") .AddColumns(cols => { cols.Add().WithColumnName("Rank") .WithHeaderText("#") .WithValueExpression(i => i.Rank.ToString()); cols.Add().WithColumnName("Name") .WithHeaderText("Name") .WithSorting(true) .WithValueTemplate("<a href='{Value}'>{Model.Name}</a>", false) .WithValueExpression((p, c) => c.UrlHelper.Action("Character", "WGO", new { name = p.Name, realm = p.Realm })); cols.Add().WithColumnName("Level") .WithHeaderText("Level") .WithSorting(true) .WithValueExpression(i => i.Level.ToString()) .WithCellCssClassExpression(p => DateModifiedLately(p.Modified_Level) ? "table-success" : ""); cols.Add().WithColumnName("Class") .WithSorting(true) .WithValueExpression(i => i.Class); cols.Add().WithColumnName("AchievementPoints") .WithHeaderText("Achievement Points") .WithSorting(true) .WithValueExpression(i => i.AchievementPoints.ToString()) .WithCellCssClassExpression(p => DateModifiedLately(p.Modified_AchievementPoints) ? "table-success" : ""); cols.Add().WithColumnName("Max_iLevel") .WithHeaderText("Max iLevel") .WithSorting(true) .WithValueExpression(i => i.Max_iLevel.ToString()) .WithCellCssClassExpression(p => DateModifiedLately(p.Modified_Max_iLevel) ? "table-success" : ""); cols.Add().WithColumnName("Equipped_iLevel") .WithHeaderText("Equipped iLevel") .WithSorting(true) .WithValueExpression(i => i.Equipped_iLevel.ToString()) .WithCellCssClassExpression(p => DateModifiedLately(p.Modified_Equipped_iLevel) ? "table-success" : ""); cols.Add().WithColumnName("LastUpdated") .WithHeaderText("Last Updated") .WithSorting(true) .WithValueExpression(i => i.LastUpdated.ToString()) .WithCellCssClassExpression(i => "small"); cols.Add("Rescan").WithHtmlEncoding(false) .WithSorting(false) .WithHeaderText(" ") .WithValueExpression((p, c) => c.UrlHelper.Action("Rescan", "WGO", new { name = p.Name, realm = p.Realm })) .WithValueTemplate("<a href='{Value}' class='btn btn-primary' role='button' onclick=$.blockUI()>Rescan</a>"); }) .WithRetrieveDataMethod((context) => { // Query your data here. Obey Ordering, paging and filtering parameters given in the context.QueryOptions. var options = context.QueryOptions; string globalSearch = options.GetAdditionalQueryOptionString("search") == null ? string.Empty : options.GetAdditionalQueryOptionString("search"); string sortColumn = options.GetSortColumnData <string>() == null ? string.Empty : options.GetSortColumnData <string>().ToLower(); var result = new QueryResult <Models.RankedCharacter>(); // Dependency Setup... int totalRecords = 0; var repo = DependencyResolver.Current.GetService <IRankedCharacterRepository>(); // Check to see if the dependency was found if (repo != null) { var test = repo.GetData(out totalRecords, WGOConstants.GuildRoster, globalSearch, options.GetLimitOffset(), options.GetLimitRowcount(), sortColumn, options.SortDirection == SortDirection.Asc); result.TotalRecords = totalRecords; result.Items = test; } return(result); }) ); #endregion #region " The Raid Page Grid " // The Raid page MVCGridDefinitionTable.Add("RaidRoster", new MVCGridBuilder <Models.Character>() .WithAuthorizationType(AuthorizationType.AllowAnonymous) .AddColumns(cols => { // Add your columns here cols.Add().WithColumnName("Role") .WithHeaderText("Role") .WithSorting(true) .WithValueExpression(i => i.Role); cols.Add().WithColumnName("Name") .WithHeaderText("Name") .WithSorting(true) .WithValueTemplate("<a href='{Value}'>{Model.Name}</a>", false) .WithValueExpression((p, c) => c.UrlHelper.Action("Character", "WGO", new { name = p.Name, realm = p.Realm })); cols.Add().WithColumnName("Level") .WithHeaderText("Level") .WithSorting(true) .WithValueExpression(i => i.Level.ToString()) .WithCellCssClassExpression(p => DateModifiedLately(p.Modified_Level) ? "table-success" : ""); cols.Add().WithColumnName("Class") .WithSorting(true) .WithValueExpression(i => i.Class); cols.Add().WithColumnName("AchievementPoints") .WithHeaderText("Achievement Points") .WithSorting(true) .WithValueExpression(i => i.AchievementPoints.ToString()) .WithCellCssClassExpression(p => DateModifiedLately(p.Modified_AchievementPoints) ? "table-success" : ""); cols.Add().WithColumnName("MaxiLevel") .WithHeaderText("Max iLevel") .WithSorting(true) .WithValueExpression(i => i.Max_iLevel.ToString()) .WithCellCssClassExpression(p => DateModifiedLately(p.Modified_Max_iLevel) ? "table-success" : ""); cols.Add().WithColumnName("EquippediLevel") .WithHeaderText("Equipped iLevel") .WithSorting(true) .WithValueExpression(i => i.Equipped_iLevel.ToString()) .WithCellCssClassExpression(p => DateModifiedLately(p.Modified_Equipped_iLevel) ? "table-success" : ""); cols.Add().WithColumnName("LastModified") .WithHeaderText("Last Modified") .WithSorting(true) .WithValueExpression(i => i.LastUpdated.ToString()); cols.Add("Recan").WithHtmlEncoding(false) .WithSorting(false) .WithHeaderText(" ") .WithValueExpression((p, c) => c.UrlHelper.Action("Rescan", "WGO", new { name = p.Name, realm = p.Realm, role = p.Role })) .WithValueTemplate("<a href='{Value}' class='btn btn-primary' role='button' onclick=$.blockUI()>Rescan</a>"); cols.Add("Delete").WithHtmlEncoding(false) .WithSorting(false) .WithHeaderText(" ") .WithValueExpression((p, c) => c.UrlHelper.Action("Delete", "WGO", new { name = p.Name, realm = p.Realm, role = p.Role })) .WithValueTemplate("<a href='{Value}' class='btn btn-danger' role='button' onclick=$.blockUI()>Delete</a>"); }) .WithPreloadData(false) .WithSorting(sorting: true, defaultSortColumn: "EquippediLevel", defaultSortDirection: SortDirection.Dsc) .WithPaging(true, 20) .WithClientSideLoadingCompleteFunctionName("hideLoading") .WithRetrieveDataMethod((context) => { var options = context.QueryOptions; string globalSearch = options.GetAdditionalQueryOptionString("search"); string sortColumn = options.GetSortColumnData <string>(); var result = new QueryResult <Models.Character>(); // Get the current data now... using (var db = new Models.WGODBContext()) { // Get the data var query = db.Characters.AsQueryable().Where(s => s.Roster == WGOConstants.RaidRoster); // Sort the data switch (options.SortColumnName.ToLower()) { case "role": query = query.OrderByDescending(p => p.Role).ThenByDescending(p => p.Level).ThenByDescending(p => p.Equipped_iLevel).ThenBy(p => p.Name); break; case "name": query = options.SortDirection == SortDirection.Asc ? query.OrderBy(p => p.Name) : query.OrderByDescending(p => p.Name); break; case "level": query = options.SortDirection == SortDirection.Asc ? query.OrderBy(p => p.Level) : query.OrderByDescending(p => p.Level); break; case "class": query = options.SortDirection == SortDirection.Asc ? query.OrderBy(p => p.Class) : query.OrderByDescending(p => p.Class); break; case "achievementpoints": query = options.SortDirection == SortDirection.Asc ? query.OrderBy(p => p.AchievementPoints) : query.OrderByDescending(p => p.AchievementPoints); break; case "maxilevel": query = query.OrderByDescending(p => p.Role).ThenByDescending(p => p.Level).ThenByDescending(p => p.Max_iLevel).ThenBy(p => p.Name); break; case "equippedilevel": query = query.OrderByDescending(p => p.Role).ThenByDescending(p => p.Level).ThenByDescending(p => p.Equipped_iLevel).ThenBy(p => p.Name); break; case "lastmodified": query = options.SortDirection == SortDirection.Asc ? query.OrderBy(p => p.LastUpdated) : query.OrderByDescending(p => p.LastUpdated); break; default: query = query.OrderByDescending(p => p.Role).ThenByDescending(p => p.Level).ThenByDescending(p => p.Equipped_iLevel).ThenBy(p => p.Name); break; } // Get the full record count, before the paging result.TotalRecords = query.Count(); // Paging if (options.GetLimitOffset().HasValue) { query = query.Skip(options.GetLimitOffset().Value).Take(options.GetLimitRowcount().Value); } // Done! result.Items = query.ToList(); } return(result); }) ); #endregion #region " The My Roster Page Grid " // The Raid page MVCGridDefinitionTable.Add("MyRoster", new MVCGridBuilder <Models.Character>() .WithAuthorizationType(AuthorizationType.AllowAnonymous) .AddColumns(cols => { // Add your columns here cols.Add().WithColumnName("Role") .WithHeaderText("Role") .WithSorting(true) .WithValueExpression(i => i.Role); cols.Add().WithColumnName("Name") .WithHeaderText("Name") .WithSorting(true) .WithValueTemplate("<a href='{Value}'>{Model.Name}</a>", false) .WithValueExpression((p, c) => c.UrlHelper.Action("Character", "WGO", new { name = p.Name, realm = p.Realm })); cols.Add().WithColumnName("Level") .WithHeaderText("Level") .WithSorting(true) .WithValueExpression(i => i.Level.ToString()) .WithCellCssClassExpression(p => DateModifiedLately(p.Modified_Level) ? "table-success" : ""); cols.Add().WithColumnName("Class") .WithSorting(true) .WithValueExpression(i => i.Class); cols.Add().WithColumnName("AchievementPoints") .WithHeaderText("Achievement Points") .WithSorting(true) .WithValueExpression(i => i.AchievementPoints.ToString()) .WithCellCssClassExpression(p => DateModifiedLately(p.Modified_AchievementPoints) ? "table-success" : ""); cols.Add().WithColumnName("MaxiLevel") .WithHeaderText("Max iLevel") .WithSorting(true) .WithValueExpression(i => i.Max_iLevel.ToString()) .WithCellCssClassExpression(p => DateModifiedLately(p.Modified_Max_iLevel) ? "table-success" : ""); cols.Add().WithColumnName("EquippediLevel") .WithHeaderText("Equipped iLevel") .WithSorting(true) .WithValueExpression(i => i.Equipped_iLevel.ToString()) .WithCellCssClassExpression(p => DateModifiedLately(p.Modified_Equipped_iLevel) ? "table-success" : ""); cols.Add().WithColumnName("LastModified") .WithHeaderText("Last Modified") .WithSorting(true) .WithValueExpression(i => i.LastUpdated.ToString()); cols.Add("Recan").WithHtmlEncoding(false) .WithSorting(false) .WithHeaderText(" ") .WithValueExpression((p, c) => c.UrlHelper.Action("Rescan", "WGO", new { name = p.Name, realm = p.Realm, role = p.Role })) .WithValueTemplate("<a href='{Value}' class='btn btn-primary' role='button' onclick=$.blockUI()>Rescan</a>"); cols.Add("Delete").WithHtmlEncoding(false) .WithSorting(false) .WithHeaderText(" ") .WithValueExpression((p, c) => c.UrlHelper.Action("Delete", "WGO", new { name = p.Name, realm = p.Realm, role = p.Role })) .WithValueTemplate("<a href='{Value}' class='btn btn-danger' role='button' onclick=$.blockUI()>Delete</a>"); }) .WithPreloadData(false) .WithSorting(sorting: true, defaultSortColumn: "EquippediLevel", defaultSortDirection: SortDirection.Dsc) .WithPaging(true, 20) .WithClientSideLoadingCompleteFunctionName("hideLoading") .WithRetrieveDataMethod((context) => { var options = context.QueryOptions; string globalSearch = options.GetAdditionalQueryOptionString("search"); string sortColumn = options.GetSortColumnData <string>(); var result = new QueryResult <Models.Character>(); // Get the current data now... using (var db = new Models.WGODBContext()) { // Get the data var query = db.Characters.AsQueryable().Where(s => s.Roster == WGOConstants.MyRoster); // Sort the data switch (options.SortColumnName.ToLower()) { case "role": query = query.OrderByDescending(p => p.Role).ThenByDescending(p => p.Level).ThenByDescending(p => p.Equipped_iLevel).ThenBy(p => p.Name); break; case "name": query = options.SortDirection == SortDirection.Asc ? query.OrderBy(p => p.Name) : query.OrderByDescending(p => p.Name); break; case "level": query = options.SortDirection == SortDirection.Asc ? query.OrderBy(p => p.Level) : query.OrderByDescending(p => p.Level); break; case "class": query = options.SortDirection == SortDirection.Asc ? query.OrderBy(p => p.Class) : query.OrderByDescending(p => p.Class); break; case "achievementpoints": query = options.SortDirection == SortDirection.Asc ? query.OrderBy(p => p.AchievementPoints) : query.OrderByDescending(p => p.AchievementPoints); break; case "maxilevel": query = query.OrderByDescending(p => p.Role).ThenByDescending(p => p.Level).ThenByDescending(p => p.Max_iLevel).ThenBy(p => p.Name); break; case "equippedilevel": query = query.OrderByDescending(p => p.Role).ThenByDescending(p => p.Level).ThenByDescending(p => p.Equipped_iLevel).ThenBy(p => p.Name); break; case "lastmodified": query = options.SortDirection == SortDirection.Asc ? query.OrderBy(p => p.LastUpdated) : query.OrderByDescending(p => p.LastUpdated); break; default: query = query.OrderByDescending(p => p.Role).ThenByDescending(p => p.Level).ThenByDescending(p => p.Equipped_iLevel).ThenBy(p => p.Name); break; } // Get the full record count, before the paging result.TotalRecords = query.Count(); // Paging if (options.GetLimitOffset().HasValue) { query = query.Skip(options.GetLimitOffset().Value).Take(options.GetLimitRowcount().Value); } // Done! result.Items = query.ToList(); } return(result); }) ); #endregion }
public async Task <ActionResult> Index(long?ntId) { if (ntId.HasValue) { InsuranceBusiness.BusinessLayer.MarkNotificationAsRead(ntId.Value); } UsersManagementViewModel model = new UsersManagementViewModel(); if (null != this.User && this.User.Identity.IsAuthenticated) { var UserManager = HttpContext.GetOwinContext().GetUserManager <ApplicationUserManager>(); var user = await UserManager.FindByNameAsync(this.User.Identity.Name); if (null != user) { FillModel(model, user.Id, false); //model.Profile = InsuranceBusiness.BusinessLayer.GetUserProfile(user.Id); } else { return(RedirectToAction("LogOff", "Account")); } } else { return(RedirectToAction("Login", "Account")); } try { var grid = MVCGridDefinitionTable.GetDefinition <UserProfileModelObject>("UsersManagementGrid"); } catch (Exception) { MVCGridDefinitionTable.Add("UsersManagementGrid", new MVCGridBuilder <UserProfileModelObject>() .WithAuthorizationType(AuthorizationType.AllowAnonymous) //.WithSorting(sorting: true, defaultSortColumn: "Id", defaultSortDirection: SortDirection.Dsc) .AddColumns(cols => { // Add your columns here cols.Add().WithColumnName("FirstName") .WithHeaderText(Resources.Resources.FirstName) .WithValueExpression(i => i.FirstName) .WithAllowChangeVisibility(true) .WithFiltering(true) .WithSorting(true) .WithVisibility(true, true); // use the Value Expression to return the cell text for this column cols.Add().WithColumnName("LastName") .WithHeaderText(Resources.Resources.LastName) .WithValueExpression(i => i.LastName) .WithAllowChangeVisibility(true) .WithFiltering(true) .WithSorting(true) .WithVisibility(true, true); // use the Value Expression to return the cell text for this column cols.Add().WithColumnName("Username") .WithHeaderText(Resources.Resources.Email) .WithValueExpression(i => i.User.UserName) .WithAllowChangeVisibility(true) .WithFiltering(true) .WithSorting(true) .WithVisibility(true, true); // use the Value Expression to return the cell text for this column cols.Add().WithColumnName("ProfessionalNumber") .WithHeaderText(Resources.Resources.ProfessionalNumber) .WithValueExpression(i => i.ProfessionalNumber) .WithAllowChangeVisibility(true) .WithFiltering(true) .WithSorting(true) .WithVisibility(true, true); // use the Value Expression to return the cell text for this column cols.Add("CreateDate") .WithSorting(true) .WithHeaderText(Resources.Resources.RegisterDate) .WithCellCssClassExpression(p => "dateCell") .WithValueExpression(p => p.CreateDate.ToString("dd-MM-yyyy")) .WithVisibility(true, true); cols.Add("Active").WithHtmlEncoding(false) .WithSorting(true) .WithHeaderText(Resources.Resources.Active) .WithValueExpression((p, c) => !p.User.LockoutEndDateUtc.HasValue ? "checked" : "") .WithValueTemplate("<input type=\"checkbox\" disabled=\"disabled\" {Value}>") .WithCellCssClassExpression(p => "mvcgrid-cell") .WithVisibility(true, true); cols.Add("Edit").WithHtmlEncoding(false) .WithSorting(false) .WithHeaderText(" ") .WithValueExpression((p, c) => c.UrlHelper.Action("Edit", "UsersManagement", new { id = p.ID })) .WithValueTemplate("<a href='{Value}' class='btn btn-warning lnkEdit'>" + Resources.Resources.Edit + "</a>") .WithVisibility(true, false); cols.Add("Delete").WithHtmlEncoding(false) .WithSorting(false) .WithHeaderText(" ") .WithValueExpression((p, c) => c.UrlHelper.Action("Delete", "UsersManagement", new { id = p.ID })) .WithValueTemplate("<a href='{Value}' class='btn btn-danger lnkDelete' role='button'>" + Resources.Resources.Delete + "</a>") .WithVisibility(true, false); }) .WithAdditionalQueryOptionNames("Search") .WithSorting(true, "FirstName") .WithPaging(paging: true, itemsPerPage: 100, allowChangePageSize: true, maxItemsPerPage: 100) .WithProcessingMessage(Resources.Resources.Loading) .WithNextButtonCaption(Resources.Resources.Next) .WithPreviousButtonCaption(Resources.Resources.Previous) .WithSummaryMessage(Resources.Resources.ShowingGridEntries) .WithRetrieveDataMethod((context) => { // Query your data here. Obey Ordering, paging and filtering parameters given in the context.QueryOptions. // Use Entity Framework, a module from your IoC Container, or any other method. // Return QueryResult object containing IEnumerable<YouModelItem> var options = context.QueryOptions; var result = new QueryResult <UserProfileModelObject>(); var query = BusinessItemsLists.GetUsers(); if (!String.IsNullOrWhiteSpace(options.SortColumnName)) { switch (options.SortColumnName.ToLower()) { case "firstname": if (options.SortDirection == SortDirection.Asc || options.SortDirection == SortDirection.Unspecified) { query = query.OrderBy(p => p.FirstName).ToList(); } else { query = query.OrderByDescending(p => p.FirstName).ToList(); } break; case "lastname": if (options.SortDirection == SortDirection.Asc || options.SortDirection == SortDirection.Unspecified) { query = query.OrderBy(p => p.LastName).ToList(); } else { query = query.OrderByDescending(p => p.LastName).ToList(); } break; case "username": if (options.SortDirection == SortDirection.Asc || options.SortDirection == SortDirection.Unspecified) { query = query.OrderBy(p => p.User.UserName).ToList(); } else { query = query.OrderByDescending(p => p.User.UserName).ToList(); } break; case "active": if (options.SortDirection == SortDirection.Asc || options.SortDirection == SortDirection.Unspecified) { query = query.OrderBy(p => p.Active).ToList(); } else { query = query.OrderByDescending(p => p.Active).ToList(); } break; case "createdate": if (options.SortDirection == SortDirection.Asc || options.SortDirection == SortDirection.Unspecified) { query = query.OrderBy(p => p.CreateDate).ToList(); } else { query = query.OrderByDescending(p => p.CreateDate).ToList(); } break; } } string globalSearch = options.GetAdditionalQueryOptionString("Search"); if (null != globalSearch) { query = query.Where(i => (null != i.FirstName && i.FirstName.ToLower().Contains(globalSearch.ToLower())) || (null != i.LastName && i.LastName.ToLower().Contains(globalSearch.ToLower())) || (null != i.User && null != i.User.UserName && i.User.UserName.ToLower().Contains(globalSearch.ToLower())) //|| (null != i.ContactEmail && i.ContactEmail.Contains(globalSearch)) ).ToList(); } result.TotalRecords = query.Count(); if (options.GetLimitOffset().HasValue) { query = query .Skip(options.GetLimitOffset().Value) .Take(options.GetLimitRowcount().Value) .ToList(); } result.Items = query; return(result); //return new QueryResult<UserProfileModelObject>() //{ // Items = query, // TotalRecords = query.Count // if paging is enabled, return the total number of records of all pages //}; }) ); } return(View(model)); }
public static void RegisterGrids() { try { ColumnDefaults colDefauls = new ColumnDefaults() { EnableSorting = true }; MVCGridDefinitionTable.Add("PresidentsGrid", new MVCGridBuilder <PresidentModel>(colDefauls) .WithAuthorizationType(AuthorizationType.AllowAnonymous) .AddColumns(cols => { cols.Add("Id").WithSorting(false) .WithHeaderText("Id").WithValueExpression(i => i.id.ToString()); cols.Add("Name").WithHeaderText("President") .WithValueExpression(i => i.Name); cols.Add("Birthday").WithSorting(false) .WithHeaderText("Birth Day").WithValueExpression(i => i.Birthday); cols.Add("Birthplace").WithSorting(false) .WithHeaderText("Birth Place").WithValueExpression(i => i.Birthplace); cols.Add("Deathday").WithSorting(false) .WithHeaderText("Death Day").WithValueExpression(i => i.Deathday); cols.Add("Deathplace").WithSorting(false) .WithHeaderText("Death Place").WithValueExpression(i => i.Deathplace); }) .WithSorting(true, "Name") .WithRetrieveDataMethod((context) => { List <PresidentModel> presidents = HomeController.GetAllPresident(); var options = context.QueryOptions; var result = new QueryResult <PresidentModel>(); if (!String.IsNullOrWhiteSpace(options.SortColumnName)) { if (options.SortDirection.ToString() == "Asc") { presidents = presidents.OrderBy(x => x.Name).ToList(); } else if (options.SortDirection.ToString() == "Dsc") { presidents = presidents.OrderByDescending(x => x.Name).ToList(); } result.Items = presidents; } else { result.Items = presidents; } result.TotalRecords = presidents.Count; return(result); }) ); } catch (Exception ex) { } }
public static void RegisterGrids() { /* * var fullNameColumn = new GridColumn<Player>() * { * ColumnName = "FullName", * HeaderText = "Full Name", * HtmlEncode = false, * ValueExpression = (p, c) => p.FullName.ToString() * }; * * MVCGridDefinitionTable.Add("PlayersGrid", new MVCGridBuilder<Player>()); * * GridDefinition<Player> def = MVCGridDefinitionTable.GetDefinition<Player>("PlayersGrid"); * * def.RetrieveData = (options) => * { * DRDRepository repo = new DRDRepository(); * List<Player> listModels = repo.ListPlayers().ToList(); * var result = new QueryResult<Player>(); * var query = listModels.AsQueryable(); * * result.TotalRecords = query.Count(); * result.Items = query.ToList(); * return result; * }; * * def.AddColumn(fullNameColumn); */ //Func<GridContext, QueryResult<Player>> loadDate = (context) => //{ // var result = new QueryResult<Player>(); // DRDRepository repo = new DRDRepository(); // result.Items = repo.ListPlayers(context.GridName); // return result; //}; //MVCGridDefinitionTable.Add("PlayersGrid", new MVCGridBuilder<Player>() // .AddColumn(fullNameColumn).WithRet //); MVCGridDefinitionTable.Add("PlayersGrid", new MVCGridBuilder <Player>() .WithAuthorizationType(AuthorizationType.AllowAnonymous).WithPaging(false) .WithSorting(sorting: true, defaultSortColumn: "PlayerPID", defaultSortDirection: SortDirection.Dsc) .WithPaging(true, 100, true, 100) .WithAdditionalQueryOptionNames("search") .AddColumns(cols => { // Add your columns here cols.Add("PlayerPID").WithValueExpression(p => p.PlayerPID.ToString()); cols.Add().WithValueExpression(p => p.FullName) .WithColumnName("Full Name") .WithHeaderText("Full Name") .WithAllowChangeVisibility(true) //.WithFiltering(true) .WithSorting(true); cols.Add().WithValueExpression(p => p.FirstName) .WithColumnName("firstname") .WithHeaderText("First Name") .WithAllowChangeVisibility(true) //.WithFiltering(true) .WithSorting(true); //cols.Add().WithValueExpression(p => p.LastName); //cols.Add().WithValueExpression(p => p.PositionEID.ToString()).WithColumnName("Position"); //cols.Add().WithValueExpression(p => p.ABs.ToString()).WithColumnName("ABs"); //cols.Add().WithValueExpression(p => p.IPs.ToString()).WithColumnName("IPs"); // use the Value Expression to return the cell text for this column //cols.Add().WithColumnName("UrlExample") // .WithHeaderText("Edit") // .WithValueExpression((i, c) => c.UrlHelper.Action("detail", "demo", new { id = i.Id })); }) .WithRetrieveDataMethod((context) => { var options = context.QueryOptions; int totalRecords; string globalSearch = options.GetAdditionalQueryOptionString("search"); string globalSearch2 = options.GetFilterString("firstname"); string sortColumn = options.GetSortColumnData <string>(); IDRDRepository repo = new DRDRepository(); //List<Player> listModels = repo.ListPlayers().ToList(); //var result = new QueryResult<Player>(); //var query = listModels.AsQueryable(); //var items = repo.GetData(out totalRecords, // globalSearch, // options.GetLimitOffset(), // options.GetLimitRowcount(), // options.GetSortColumnData<string>(), // //"firstname", // options.SortDirection == SortDirection.Dsc); var items = repo.GetData(out totalRecords, globalSearch, null, null, "firstname", options.SortDirection == SortDirection.Dsc); return(new QueryResult <Player>() { Items = items, TotalRecords = totalRecords }); }) ); }
public static void RegisterGrids() { ColumnDefaults colDefaults = new ColumnDefaults() { EnableSorting = true }; // MVCGridDefinitionTable.Add("Vehicles", new MVCGridBuilder<Vehicle>(colDefaults) // .WithAuthorizationType(AuthorizationType.AllowAnonymous) // .AddColumns(cols => // { // cols.Add("Id").WithSorting(false) // .WithValueExpression(p => p.Id.ToString()); // cols.Add("Vin").WithHeaderText("Vin") // .WithValueExpression(p => p.Vin); // cols.Add("Make").WithHeaderText("Make") // .WithValueExpression(p => p.Make); // cols.Add("Model").WithHeaderText("Model") // .WithValueExpression(p => p.Model); // cols.Add("Year").WithHeaderText("Year") // .WithValueExpression(p => p.Year); // cols.Add("CurrentMileage").WithHeaderText("Current Mileage") // .WithValueExpression(p => p.CurrentMileage); // }) //// .WithSorting(true, "Make") // .WithPaging(true, 2) // .WithRetrieveDataMethod((context) => // { // var options = context.QueryOptions; // var result = new QueryResult<Vehicle>(); // var query = Repository.getVehicles().AsQueryable(); // result.TotalRecords = query.Count(); // //if (!String.IsNullOrWhiteSpace(options.SortColumnName)) // //{ // // switch (options.SortColumnName.ToLower()) // // { // // case "vin": // // query = query.OrderBy(p => p.Vin, options.SortDirection); // // break; // // case "make": // // query = query.OrderBy(p => p.Make, options.SortDirection); // // break; // // } // //} // if (options.GetLimitOffset().HasValue) // { // query = query.Skip(options.GetLimitOffset().Value).Take(options.GetLimitRowcount().Value); // } // result.Items = query.ToList(); // return result; // }) // ); MVCGridDefinitionTable.Add("Vehicles", new MVCGridBuilder <Vehicle>(colDefaults) .WithAuthorizationType(AuthorizationType.AllowAnonymous) .WithSorting(sorting: true, defaultSortColumn: "Id", defaultSortDirection: SortDirection.Dsc) .WithPaging(paging: true, itemsPerPage: 10, allowChangePageSize: true, maxItemsPerPage: 100) .WithAdditionalQueryOptionNames("search") .AddColumns(cols => { cols.Add("Id").WithValueExpression((p, c) => c.UrlHelper.Action("detail", "demo", new { id = p.Id })) .WithValueTemplate("<a href='{Value}'>{Model.Id}</a>", false) .WithPlainTextValueExpression(p => p.Id.ToString()); cols.Add("Make").WithHeaderText("Make") .WithVisibility(true, true) .WithValueExpression(p => p.Make); cols.Add("Model").WithHeaderText("Model") .WithVisibility(true, true) .WithValueExpression(p => p.Model); cols.Add("Year").WithHeaderText("Year") .WithVisibility(true, true) .WithValueExpression(p => p.Year); cols.Add("Vin").WithHeaderText("Vin") .WithVisibility(true, true) .WithValueExpression(p => p.Vin); cols.Add("CurrentMileage").WithHeaderText("Current Mileage") .WithVisibility(true, true) .WithValueExpression(p => p.CurrentMileage); }) //.WithAdditionalSetting(MVCGrid.Rendering.BootstrapRenderingEngine.SettingNameTableClass, "notreal") // Example of changing table css class .WithRetrieveDataMethod((context) => { var options = context.QueryOptions; int totalRecords; var repo = DependencyResolver.Current.GetService <VehicleRepository>(); string globalSearch = options.GetAdditionalQueryOptionString("search"); string sortColumn = options.GetSortColumnData <string>(); var items = repo.GetData(out totalRecords, globalSearch, options.GetLimitOffset(), options.GetLimitRowcount(), sortColumn, options.SortDirection == SortDirection.Dsc); return(new QueryResult <Vehicle>() { Items = items, TotalRecords = totalRecords }); }) ); }
public static void RegisterGrids() { // ################################################################################################################# // # // # GridView for Conditional Access backups // # // ################################################################################################################# MVCGridDefinitionTable.Add("CABackups", new MVCGridBuilder <listcabackupconfig>() .WithAuthorizationType(AuthorizationType.AllowAnonymous) .AddColumns(cols => { cols.Add("Id").WithValueExpression(p => p.RowKey.ToString()).WithVisibility(false); cols.Add("BackupType").WithHeaderText("Type") .WithFiltering(true) .WithValueExpression(p => p.PartitionKey); cols.Add("Policy").WithHeaderText("Policy") .WithFiltering(true) .WithValueExpression(p => p.Policy); cols.Add("BackupDate").WithHeaderText("Date") .WithValueExpression(p => p.BackupDate); cols.Add("Details").WithHtmlEncoding(false) .WithSorting(false) .WithHeaderText(" ") .WithValueExpression((p, c) => c.UrlHelper.Action("BackupDetails", "Backups", new { rowkey = p.RowKey, partitionkey = p.PartitionKey })) .WithValueTemplate("<a href='{Value}' class='btn btn-info' role='button'>Details</a>"); cols.Add("Restore").WithHtmlEncoding(false) .WithSorting(false) .WithFiltering(true) .WithHeaderText(" ") .WithValueExpression((p, c) => Convert.ToBoolean(p.BackupRestoreing) ? "btn-light disabled" : "btn-warning") .WithValueTemplate("<a href='BackupRestore?rowkey={Model.RowKey}&partitionkey={Model.PartitionKey}' class='btn {Value}' role='button'>Restore</a>"); }) .WithFiltering(true) .WithPaging(true, 7) .WithRetrieveDataMethod((context) => { var result = new QueryResult <listcabackupconfig>(); CA_Backup_Model backuplist = new CA_Backup_Model(CABackupFrontend.MvcApplication.Connectionstring); var options = context.QueryOptions; var deffilterbackuptype = options.GetFilterString("BackupType"); var deffilterpolicy = options.GetFilterString("Policy"); IEnumerable <listcabackupconfig> filteredbackup; if (deffilterbackuptype != null && deffilterpolicy != null) { filteredbackup = backuplist.GetBackups() .Where(o => (o.PartitionKey == deffilterbackuptype) && (o.Policy.ToLower().Contains(deffilterpolicy.ToLower()))).AsQueryable(); } else if (deffilterbackuptype != null) { filteredbackup = backuplist.GetBackups() .Where(o => (o.PartitionKey == deffilterbackuptype)).AsQueryable(); } else if (deffilterpolicy != null) { filteredbackup = backuplist.GetBackups() .Where(o => (o.Policy.ToLower().Contains(deffilterpolicy.ToLower()))).AsQueryable(); } else { filteredbackup = backuplist.GetBackups().AsQueryable(); } result.TotalRecords = filteredbackup.Count(); if (options.GetLimitOffset().HasValue) { filteredbackup = filteredbackup.Skip(options.GetLimitOffset().Value).Take(options.GetLimitRowcount().Value); } result.Items = filteredbackup.ToList(); return(result); }) ); // ################################################################################################################# // # // # GridView for backup translation settings // # // ################################################################################################################# MVCGridDefinitionTable.Add("CABackupsTranslation", new MVCGridBuilder <listcabackuptranslation>() .WithAuthorizationType(AuthorizationType.AllowAnonymous) .AddColumns(cols => { cols.Add("PartitionKey").WithValueExpression(p => p.PartitionKey.ToString()).WithVisibility(false); cols.Add("Section").WithHeaderText("Section") .WithValueExpression(p => p.Section); cols.Add("Function").WithHeaderText("Function") .WithValueExpression(p => p.Function); cols.Add("Setting").WithHeaderText("Setting") .WithValueExpression(p => p.Setting); cols.Add("Value").WithHeaderText("Value") .WithValueExpression(p => p.RowKey); cols.Add("Translation").WithHeaderText("Translation") .WithValueExpression(p => p.Translation); cols.Add("Delete").WithHtmlEncoding(false) .WithSorting(false) .WithHeaderText(" ") .WithValueExpression((p, c) => c.UrlHelper.Action("TranslationDelete", "Settings", new { rowkey = p.RowKey, partitionkey = p.PartitionKey })) .WithValueTemplate("<a href='{Value}' class='btn btn-warning' role='button'>Delete</a>"); }) .WithFiltering(true) .WithPaging(true, 5) .WithRetrieveDataMethod((context) => { var result = new QueryResult <listcabackuptranslation>(); CA_Backup_Model backuptranslationlist = new CA_Backup_Model(CABackupFrontend.MvcApplication.Connectionstring); var options = context.QueryOptions; IEnumerable <listcabackuptranslation> filteredbackup; filteredbackup = backuptranslationlist.GetBackupTranslations().AsQueryable(); result.TotalRecords = filteredbackup.Count(); if (options.GetLimitOffset().HasValue) { filteredbackup = filteredbackup.Skip(options.GetLimitOffset().Value).Take(options.GetLimitRowcount().Value); } result.Items = filteredbackup.ToList(); return(result); }) ); }
public async Task <ActionResult> Index() { BannersManagementViewModel model = new BannersManagementViewModel(); if (null != this.User && this.User.Identity.IsAuthenticated) { var UserManager = HttpContext.GetOwinContext().GetUserManager <ApplicationUserManager>(); var user = await UserManager.FindByNameAsync(this.User.Identity.Name); if (null != user) { model.Profile = InsuranceBusiness.BusinessLayer.GetUserProfile(user.Id); } else { return(RedirectToAction("LogOff", "Account")); } } else { return(RedirectToAction("Login", "Account")); } try { var grid = MVCGridDefinitionTable.GetDefinition <BannerModelObject>("BannersManagementGrid"); } catch (Exception) { //InsuranceBusiness.BusinessLayer.GetRoles MVCGridDefinitionTable.Add("BannersManagementGrid", new MVCGridBuilder <BannerModelObject>() .WithAuthorizationType(AuthorizationType.AllowAnonymous) //.WithSorting(sorting: true, defaultSortColumn: "Id", defaultSortDirection: SortDirection.Dsc) .AddColumns(cols => { // Add your columns here cols.Add().WithColumnName("Description") .WithHeaderText(Resources.Resources.Description) .WithValueExpression(i => i.Description) .WithAllowChangeVisibility(true) .WithFiltering(true) .WithSorting(true) .WithVisibility(true, true); // use the Value Expression to return the cell text for this column cols.Add("Type") .WithHeaderText(Resources.Resources.Type) .WithValueExpression(i => i.ID_Banner_Type.ToString()); cols.Add("StartDate") .WithHeaderText(Resources.Resources.StartDate) .WithCellCssClassExpression(p => "dateCell") .WithValueExpression(p => p.StartDate.ToString("dd-MM-yyyy")); cols.Add("DueDate") .WithHeaderText(Resources.Resources.DueDate) .WithCellCssClassExpression(p => "dateCell") .WithValueExpression(p => p.DueDate.HasValue ? p.DueDate.Value.ToString("dd-MM-yyyy") : ""); cols.Add("Edit").WithHtmlEncoding(false) .WithSorting(false) .WithHeaderText(" ") .WithValueExpression((p, c) => c.UrlHelper.Action("Edit", "BannersManagement", new { id = p.ID })) .WithValueTemplate("<a href='{Value}' class='btn btn-warning lnkEdit'>" + Resources.Resources.Edit + "</a>"); cols.Add("Delete").WithHtmlEncoding(false) .WithSorting(false) .WithHeaderText(" ") .WithValueExpression((p, c) => c.UrlHelper.Action("Delete", "BannersManagement", new { id = p.ID })) .WithValueTemplate("<a href='{Value}' class='btn btn-danger lnkDelete' role='button'>" + Resources.Resources.Delete + "</a>"); }) .WithAdditionalQueryOptionNames("Search") .WithSorting(true, "CreateDate") .WithPaging(paging: true, itemsPerPage: 10, allowChangePageSize: true, maxItemsPerPage: 100) .WithRetrieveDataMethod((context) => { // Query your data here. Obey Ordering, paging and filtering parameters given in the context.QueryOptions. // Use Entity Framework, a module from your IoC Container, or any other method. // Return QueryResult object containing IEnumerable<YouModelItem> var options = context.QueryOptions; var result = new QueryResult <BannerModelObject>(); var query = BusinessItemsLists.GetBanners(); if (!String.IsNullOrWhiteSpace(options.SortColumnName)) { switch (options.SortColumnName.ToLower()) { case "firstname": //if (options.SortDirection == SortDirection.Asc // || options.SortDirection == SortDirection.Unspecified) //{ // query = query.OrderBy(p => p.FirstName).ToList(); //} //else //{ // query = query.OrderByDescending(p => p.FirstName).ToList(); //} break; case "lastname": //query = query.OrderBy(p => p.LastName, options.SortDirection); break; } } string globalSearch = options.GetAdditionalQueryOptionString("Search"); if (null != globalSearch) { query = query.Where(i => i.Description.ToLower().Contains(globalSearch.ToLower()) //|| i.LastName.Contains(globalSearch) //|| i.User.UserName.Contains(globalSearch) //|| i.ContactEmail.Contains(globalSearch) ).ToList(); } result.TotalRecords = query.Count(); if (options.GetLimitOffset().HasValue) { query = query .Skip(options.GetLimitOffset().Value) .Take(options.GetLimitRowcount().Value) .ToList(); } result.Items = query; return(result); }) ); } return(View(model)); }
public static void RegisterGrids() { MVCGridDefinitionTable.Add("ManageUsersGrid", new MVCGridBuilder <ManagePersonVm>() .WithAuthorizationType(AuthorizationType.Authorized) .WithPaging(true, 15, true, 50) .AddColumns(cols => { cols.Add("Key").WithValueExpression(p => p.Key).WithVisibility(false).WithFiltering(true); cols.Add("FullName").WithHeaderText("Name").WithValueExpression(p => p.FullName).WithFiltering(true); cols.Add("Address") .WithHeaderText("Address") .WithValueExpression(p => p.Address) .WithFiltering(true); cols.Add("Phone").WithHeaderText("Phone").WithValueExpression(p => p.Phone).WithFiltering(true); cols.Add("PhoneConfirmed") .WithHeaderText("Phone Confirmed") .WithValueExpression(p => p.PhoneConfirmed ? "Yes" : "No") .WithCellCssClassExpression(p => p.PhoneConfirmed ? "success" : "warning"); cols.Add("Email").WithHeaderText("Email").WithValueExpression(p => p.Email).WithFiltering(true); cols.Add("EmailConfirmed") .WithHeaderText("Email Confirmed") .WithValueExpression(p => p.EmailConfirmed ? "Yes" : "No") .WithCellCssClassExpression(p => p.EmailConfirmed ? "success" : "warning"); cols.Add("Gender").WithHeaderText("Gender").WithValueExpression(p => p.Gender); }) .WithFiltering(true) .WithRetrieveDataMethod(context => { var service = DependencyResolver.Current.GetService <IUserService>(); var options = context.QueryOptions; var result = new QueryResult <ManagePersonVm>(); if (!options.GetLimitOffset().HasValue) { return(result); } var query = service.GetFilteredUsers().AsQueryable(); var limitOffset = options.GetLimitOffset(); var limitRowcount = options.GetLimitRowcount(); if (!string.IsNullOrWhiteSpace(options.GetFilterString("Key"))) { query = query.Where( p => $"{p.FullName ?? string.Empty} {p.Address ?? string.Empty} {p.Email ?? string.Empty} {p.Phone ?? string.Empty}" .IndexOf(options.GetFilterString("Key").ToString(), StringComparison.InvariantCultureIgnoreCase) >= 0); } result.TotalRecords = query.Count(); if (limitOffset != null && limitRowcount != null) { query = query.Skip(limitOffset.Value).Take(limitRowcount.Value); } result.Items = query.ToList(); return(result); } )); }
public static void RegisterGrids() { MVCGridDefinitionTable.Add("InOutUserGrid", new MVCGridBuilder <vst_InOut>() .WithAuthorizationType(AuthorizationType.AllowAnonymous) .AddColumns(cols => { // Add your columns here cols.Add("Fecha").WithColumnName(Resources.Descripciones.GridGastoFecha) .WithFiltering(false) .WithHeaderText(" ") //.WithHeaderText(Resources.Descripciones.GridGastoFecha) .WithCellCssClassExpression(p => "col-sm-1") //.WithValueExpression(i => i.Fecha.HasValue ? i.Fecha.Value.ToShortDateString() : ""); .WithValueExpression(i => i.Fecha.ToShortDateString()); cols.Add("TipoGasto") //.WithColumnName(Resources.Descripciones.GridTipoGasto) .WithFiltering(true) .WithHeaderText(" ") .WithCellCssClassExpression(p => "col-sm-2") //.WithHeaderText(Resources.Descripciones.GridTipoGasto) .WithValueExpression(i => i.Descripcion); // use the Value Expression to return the cell text for this column cols.Add("SubTipoGasto") //.WithColumnName(Resources.Descripciones.GridTipoGasto) .WithFiltering(true) .WithHeaderText(" ") .WithCellCssClassExpression(p => "col-sm-2") //.WithHeaderText(Resources.Descripciones.GridTipoGasto) .WithValueExpression(i => i.Descripcion_Subtipo); // use the Value Expression to return the cell text for this column cols.Add("Concepto").WithColumnName(Resources.Descripciones.GridGastoConcepto) .WithCellCssClassExpression(p => "col-sm-4") .WithHeaderText(" ") //.WithHeaderText(Resources.Descripciones.GridGastoConcepto) .WithValueExpression(i => i.Concepto) // use the Value Expression to return the cell text for this column .WithFiltering(true); cols.Add("Precio").WithColumnName(Resources.Descripciones.GridGastoImporte) .WithFiltering(true) .WithHeaderText(" ") .WithCellCssClassExpression(p => "col-sm-1") //.WithHeaderText(Resources.Descripciones.GridGastoImporte) .WithValueExpression(i => i.Precio.ToString()); // use the Value Expression to return the cell text for this column /* * cols.Add("Delete").WithHtmlEncoding(false) * .WithFiltering(false) * .WithSorting(false) * .WithHeaderText(" ") * .WithCellCssClassExpression(p => "col-sm-2") * .WithValueExpression(i => i.idGasto.ToString()) * .WithValueTemplate("<a href = '/Gastos/Edit/{value}'><img src='/Img/iconos/edit.png'></a>" + " <a href = '/Gastos/Del/{value}'><img src='/Img/iconos/delete24.png'</a>" + " <a href = '/Gastos/Copy/{value}'><img src='/Img/iconos/copy.png'</a>" + ); */ cols.Add("Butons").WithHtmlEncoding(false) .WithFiltering(false) .WithSorting(false) .WithHeaderText(" ") .WithCellCssClassExpression(p => "col-sm-2") .WithValueExpression(i => i.idGasto.ToString()) .WithValueExpression((p, c) => { StringBuilder sb = new StringBuilder(); if (bool.Parse(p.GastoEditable.GetValueOrDefault().ToString())) { string Action = c.UrlHelper.Action("Edit", "Gastos", new { id = p.idGasto }); string href = " href= " + Action + " class=approve >"; sb.Append(" <a "); // sb.Append(target); sb.Append(href); sb.Append("<img src = '/Img/iconos/edit.png' >"); sb.Append("</a> "); Action = c.UrlHelper.Action("Delete", "Gastos", new { id = p.idGasto }); href = " href= " + Action + " class=approve >"; sb.Append(" <a "); // sb.Append(target); sb.Append(href); sb.Append("<img src = '/Img/iconos/Delete24.png' >"); sb.Append("</a> "); //sb.Append("<img src = \"/Img/iconos/Delete24.png\" style=\"cursor: hand; cursor: pointer\" name = \"image\" data-toggle = \"modal\" data-target = \"#myModalDelGasto\" data-id = \"" + p.idGasto + "\" data-datos = \"" + p.Concepto + "\" />"); if (p.GastoRecurrente == false) { Action = c.UrlHelper.Action("Copy", "Gastos", new { id = p.idGasto }); href = " href= " + Action + " class=approve >"; sb.Append(" <a "); sb.Append(href); sb.Append("<img src = '/Img/iconos/copy.png' >"); sb.Append("</a> "); } //sb.Append("<img src = \"/Img/iconos/ver.png\" style=\"cursor: hand; cursor: pointer\" name = \"image\" data-toggle = \"modal\" data-target = \"#myModalVerGasto\" data-id = \"" + p.idGasto + "\" data-datos = \"" + p.Concepto + "|" + p.Descripcion + "|" + p.Precio + "|" + p.Fecha + "|" + p.GrupoGasto + "|" + p.GastoComputable + "\" />"); } else { //sb.Append("<img src = \"/Img/iconos/ver.png\" style=\"cursor: hand; cursor: pointer\" name = \"image\" data-toggle = \"modal\" data-target = \"#myModalVerGasto\" data-id = \"" + p.idGasto + "\" data-datos = \"" + p.Concepto + "|" + p.Descripcion + "|" + p.Precio + "|" + p.Fecha + "|" + p.GrupoGasto + "|" + p.GastoComputable + "\" />"); string Action = c.UrlHelper.Action("Ver", "Gastos", new { id = p.idGasto }); string href = " href= " + Action + " class=approve >"; sb.Append(" <a "); //sb.Append(target); sb.Append(href); sb.Append("<img src = '/Img/iconos/ver.png' >"); sb.Append("</a> "); Action = c.UrlHelper.Action("Copy", "Gastos", new { id = p.idGasto }); href = " href= " + Action + " class=approve >"; sb.Append(" <a "); sb.Append(href); sb.Append("<img src = '/Img/iconos/copy.png' >"); sb.Append("</a> "); } return(sb.ToString()); }); }) .WithPageParameterNames("user") .WithPaging(true, 10) //.WithSorting(true, "Concepto", SortDirection.Dsc) .WithRowCssClassExpression(x => (x.GastoRecurrente == true) ? "info" : (x.Precio > 300) ? "danger" : "") .WithSummaryMessage(" {0} - {1} ({2})") .WithFiltering(true) .WithProcessingMessage("....") .WithNextButtonCaption("") .WithPreviousButtonCaption("") .WithRetrieveDataMethod((options) => { string _pEmail = options.QueryOptions.GetPageParameterString("user"); string _pIdioma = System.Threading.Thread.CurrentThread.CurrentCulture.ToString().Substring(0, 2); var result = new QueryResult <vst_InOut>(); using (var context = new ExpensesEF.Entities()) { int _idioma = context.Idiomas.Where(x => x.codigo == _pIdioma).FirstOrDefault().idIdioma; //string _user = context.AspNetUsers.Where(x => x.Email == _pEmail).FirstOrDefault().Id.ToString(); AspNetUsers _usuario = context.AspNetUsers.Where(x => x.Email == _pEmail).FirstOrDefault(); string _user = _usuario.Id.ToString(); bool _GastoSinRecurrentes = _usuario.VerGastosSinOConRecurrentes.GetValueOrDefault(); string _concepto = ""; if (options.QueryOptions.Filters.Count > 0) { _concepto = ((options.QueryOptions.GetFilterString("Concepto") == null) ? "" : options.QueryOptions.GetFilterString("Concepto").ToString()); } System.Linq.IQueryable <vst_InOut> query; if (_GastoSinRecurrentes) { //query = (context.vst_InOut.Where(x => x.idIdioma == _idioma && (x.IdIdiomaSubTipo == _idioma || x.IdIdiomaSubTipo == null) && x.idUserGasto == _user && (x.Concepto.Contains(_concepto) && x.Descripcion.Contains(_TipoGasto))).OrderByDescending(x => x.Fecha).ThenByDescending(x => x.idGasto).AsQueryable()); query = (context.vst_InOut.Where(x => x.idIdioma == _idioma && (x.IdIdiomaSubTipo == _idioma || x.IdIdiomaSubTipo == null) && x.idUserGasto == _user && (x.Concepto.Contains(_concepto) || x.Descripcion.Contains(_concepto) || x.Descripcion_Subtipo.Contains(_concepto))).OrderByDescending(x => x.Fecha).ThenByDescending(x => x.idGasto).AsQueryable()); } else { //query = (context.vst_InOut.Where(x => x.GastoRecurrente == false && x.idIdioma == _idioma && (x.IdIdiomaSubTipo == _idioma || x.IdIdiomaSubTipo == null) && x.idUserGasto == _user && (x.Concepto.Contains(_concepto) && x.Descripcion.Contains(_TipoGasto))).OrderByDescending(x => x.Fecha).ThenByDescending(x => x.idGasto).AsQueryable()); query = (context.vst_InOut.Where(x => x.GastoRecurrente == false && x.idIdioma == _idioma && (x.IdIdiomaSubTipo == _idioma || x.IdIdiomaSubTipo == null) && x.idUserGasto == _user && (x.Concepto.Contains(_concepto) || x.Descripcion.Contains(_concepto) || x.Descripcion_Subtipo.Contains(_concepto))).OrderByDescending(x => x.Fecha).ThenByDescending(x => x.idGasto).AsQueryable()); } result.TotalRecords = query.Count(); if (options.QueryOptions.GetLimitOffset().HasValue) { query = query.Skip(options.QueryOptions.GetLimitOffset().Value).Take(options.QueryOptions.GetLimitRowcount().Value); } result.Items = query.ToList(); } return(result); } ) //.WithRowCssClassExpression(new ExpensesEF.Entities().AspNetUsers.Where(x=>) ? "info" : (x.Precio > 300) ? "danger" : "") ); MVCGridDefinitionTable.Add("GastosRecurrentesGrid", new MVCGridBuilder <vst_GastosRecurrentes>() .WithAuthorizationType(AuthorizationType.AllowAnonymous) .AddColumns(cols => { cols.Add("Concepto").WithColumnName(Resources.Descripciones.GridGastoConcepto) .WithFiltering(true) .WithHeaderText(" ") .WithCellCssClassExpression(p => "col-sm-3") .WithValueExpression(i => i.Concepto.ToString()); cols.Add("Precio").WithColumnName(Resources.Descripciones.GridGastoImporte) .WithFiltering(true) .WithHeaderText(" ") .WithCellCssClassExpression(p => "col-sm-1") .WithValueExpression(i => i.Precio.ToString()); cols.Add("Periodicidad") .WithFiltering(true) .WithHeaderText(" ") .WithCellCssClassExpression(p => "col-sm-1") .WithValueExpression(i => i.Descripcion.ToString()); cols.Add("Activo") .WithHeaderText(" ") .WithCellCssClassExpression(p => "col-sm-1") .WithValueExpression(i => i.TextoActivo.ToString()); cols.Add("Computable") .WithHeaderText(" ") .WithCellCssClassExpression(p => "col-sm-2") .WithValueExpression(i => i.TextoComputable.ToString()); cols.Add("Fecha").WithColumnName(Resources.Descripciones.GridGastoFecha) .WithFiltering(false) .WithHeaderText(" ") .WithCellCssClassExpression(p => "col-sm-1") .WithValueExpression(i => i.SiguienteEjecucion.ToShortDateString()); cols.Add("Butons").WithHtmlEncoding(false) .WithFiltering(false) .WithSorting(false) .WithHeaderText(" ") .WithCellCssClassExpression(p => "col-sm-2") .WithValueExpression(i => i.idGastoRecurrente.ToString()) .WithValueExpression((p, c) => { StringBuilder sb = new StringBuilder(); /* * string Action = c.UrlHelper.Action("EditRecurrente", "Gastos", new { id = p.idGastoRecurrente }); * string href = " href= " + Action + " class=approve >"; * sb.Append(" <a "); * // sb.Append(target); * sb.Append(href); * sb.Append("<img src = '/Img/iconos/edit.png' >"); * sb.Append("</a> "); * * * Action = c.UrlHelper.Action("DelRecurrente", "Gastos", new { id = p.idGastoRecurrente }); * href = " href= " + Action + " class=approve >"; * sb.Append(" <a "); * * sb.Append(href); * sb.Append("<img src = '/Img/iconos/delete24.png' >"); * sb.Append("</a> "); */ //class=\"btn btn-primary btn-lg\" //"<img src = '/Img/iconos/delete24.png' >" + " //string _text = "<button type = \"button\" data-toggle=\"modal\" data-target=\"#myModal\" data-myvalue=\"" + p.idGastoRecurrente + "\">" + "dassd" + "</button>"; //string _text = "<button type = \"button\" data-toggle=\"modal\" data-target=\"#myModal\" data-myvalue=\"" + p.idGastoRecurrente + "\" data-myvalue2=\"" + "ver" + "\" >" + "edit" + "</button>"; string _text = "<input type = \"image\" src = \"/Img/iconos/edit.png\" name = \"image\" data-toggle = \"modal\" data-target = \"#myModalEdit\" data-id = \"" + p.idGastoRecurrente + "\" data-datos = \"" + p.Concepto + "|" + p.idTipoPago + "|" + p.idtipoGastoRecurrente + "|" + p.Periocidad + "|" + p.Precio + "|" + p.GastoComputable + "|" + p.Activo + "|" + p.Descripcion_SubTipo + "\" />"; _text += "<input type = \"image\" src = \"/Img/iconos/Delete24.png\" name = \"image\" data-toggle = \"modal\" data-target = \"#myModalDel\" data-id = \"" + p.idGastoRecurrente + "\" data-datos = \"" + p.Concepto + "\" />"; sb.Append(_text); return(sb.ToString()); }); }) .WithPageParameterNames("user") .WithPaging(true, 20) .WithSorting(true, "Concepto", SortDirection.Dsc) .WithSummaryMessage(" {0} - {1} ({2})") .WithFiltering(true) .WithProcessingMessage("....") .WithNextButtonCaption("") .WithPreviousButtonCaption("") .WithRetrieveDataMethod((options) => { string _pEmail = options.QueryOptions.GetPageParameterString("user"); string _pIdioma = System.Threading.Thread.CurrentThread.CurrentCulture.ToString().Substring(0, 2); var result = new QueryResult <vst_GastosRecurrentes>(); using (var context = new ExpensesEF.Entities()) { int _idioma = context.Idiomas.Where(x => x.codigo == _pIdioma).FirstOrDefault().idIdioma; string _user = context.AspNetUsers.Where(x => x.Email == _pEmail).FirstOrDefault().Id.ToString(); var query = (context.vst_GastosRecurrentes.Where(x => x.idIdioma == _idioma && (x.IdIdiomaSubTipo == _idioma || x.IdIdiomaSubTipo == null) && x.idUserGastoRecurrente == _user).OrderByDescending(x => x.SiguienteEjecucion).ThenByDescending(x => x.idGastoRecurrente).AsQueryable()); result.TotalRecords = query.Count(); if (options.QueryOptions.GetLimitOffset().HasValue) { query = query.Skip(options.QueryOptions.GetLimitOffset().Value).Take(options.QueryOptions.GetLimitRowcount().Value); } result.Items = query.ToList(); } return(result); } ) ); }
public static void RegisterGrids() { var vrcon = new VRContext(); MVCGridDefinitionTable.Add("SGrid", new MVCGridBuilder <Vehicle>() .WithAuthorizationType(AuthorizationType.AllowAnonymous) .AddColumns(cols => { cols.Add("StudentID").WithHeaderText("REG ID") .WithValueExpression(p => p.StudentID.ToString()); cols.Add("MatricNumber").WithHeaderText("Matric Number") .WithValueExpression(p => p.Student.MatricNumber.ToString()); cols.Add("Department").WithHeaderText("Department") .WithValueExpression(p => p.Student.Department ?? "CSE"); cols.Add("PlateNumber").WithHeaderText("Plate Number") .WithValueExpression(p => p.Plate_number.ToString()); cols.Add("Make").WithHeaderText("Vehicle Make") .WithValueExpression(p => p.Make ?? "Toyota Corolla"); cols.Add("Color").WithHeaderText("Vehicle Color") .WithValueExpression(p => p.Color ?? "Red"); cols.Add("Edit").WithHtmlEncoding(false).WithHeaderText("Actions") .WithSorting(false) .WithHeaderText(" ") .WithValueExpression((p, c) => c.UrlHelper.Action("detail", "demo", new { id = p.StudentID })) .WithValueTemplate("<a href='{Value}' class='btn btn-primary' role='button'>Edit</a>"); cols.Add("Delete").WithHtmlEncoding(false) .WithSorting(false) .WithHeaderText(" ") .WithValueExpression((p, c) => c.UrlHelper.Action("Details", "Admin", new { id = p.StudentID })) .WithValueTemplate("<a href='{Value}' class='btn btn-danger' role='button'>Delete</a>"); cols.Add("View").WithHtmlEncoding(false) .WithSorting(false) .WithHeaderText(" ") .WithValueExpression((p, c) => c.UrlHelper.Action("DetailsPage", "Admin", new { id = p.StudentID })) .WithValueTemplate("<button type='button' class='btn btn-warning' onClick='viewRecord({Model.StudentID})' data-toggle='modal' data-target='#myModal'>View</button>"); }) .WithSorting(true, "MatricNumber") .WithPaging(true, 10) .WithAdditionalQueryOptionNames("Search") .WithAdditionalSetting("RenderLoadingDiv", false) .WithRetrieveDataMethod((options) => { //var options = context.QueryOptions; //int totalRecords; //var repo = DependencyResolver.Current.GetService<IPersonRepository>(); //string globalSearch = options.GetAdditionalQueryOptionString("Search"); //var items = repo.GetData(out totalRecords, globalSearch, options.GetLimitOffset(), options.GetLimitRowcount(), // options.SortColumnName, options.SortDirection == SortDirection.Dsc); //return new QueryResult<Vehicle>() //{ // Items = items, // TotalRecords = totalRecords //}; //var result = new QueryResult<Student>(); //var result2 = new QueryResult<Vehicle>(); //string globalSearch = options.GetAdditionalQueryOptionString("Search"); //using (var db = new VRContext()) //{ // //db.Vehicles.Any(m => m.Color == "rr"); // //result.Items = db.Students.ToList(); // ////result.Items = db.Students.Where(p => p.StudentID == 2).ToList(); // //result2.Items = db.Vehicles.Include("Student").ToList(); // //return result2; // var con = options.QueryOptions; // var queryResult = new QueryResult<Vehicle>(); // return queryResult; //} using (var dbf = new VRContext()) { var con = options.QueryOptions; var queryResult = new QueryResult <Vehicle>(); var context = options.QueryOptions; string globalSearch = con.GetAdditionalQueryOptionString("Search"); var query = dbf.Vehicles.Include("Student").AsQueryable(); var repo = DependencyResolver.Current.GetService <StudentRepository>(); queryResult.TotalRecords = query.Count(); if (!String.IsNullOrWhiteSpace(con.SortColumnName)) { switch (con.SortColumnName.ToLower()) { case "matricnumber": if (con.SortDirection == SortDirection.Asc) { query = query.OrderBy(c => c.Student.MatricNumber); } else if (con.SortDirection == SortDirection.Dsc) { query = query.OrderByDescending(c => c.Student.MatricNumber); } break; case "department": if (con.SortDirection == SortDirection.Asc) { query = query.OrderBy(c => c.Student.Department); } else if (con.SortDirection == SortDirection.Dsc) { query = query.OrderByDescending(c => c.Student.Department); } break; } } if (con.GetLimitOffset().HasValue) { query = query.OrderBy(i => i.Student.MatricNumber).Skip(con.GetLimitOffset().Value).Take(con.GetLimitRowcount().Value); } if (!String.IsNullOrWhiteSpace(globalSearch)) { //query = query.OrderBy(i => i.Student.MatricNumber).Skip(con.GetLimitOffset().Value).Take(con.GetLimitRowcount().Value); query = query.Where(i => i.Student.Department.Contains(globalSearch)); } queryResult.Items = query.ToList(); return(queryResult); } }) ); }