public JsonResult Export(KendoGridFilter filter, string guid) { var gridRequest = new KendoGridMvcRequest(); if (filter != null) { gridRequest.FilterObjectWrapper = filter.Filters != null?filter.ToFilterObjectWrapper() : null; gridRequest.Logic = filter.Logic; } var query = GetQueryable().AsNoTracking(); var results = query.FilterBy <Employee, EmployeeVM>(gridRequest); using (var stream = new MemoryStream()) { using (var excel = new ExcelPackage(stream)) { excel.Workbook.Worksheets.Add("Employees"); var ws = excel.Workbook.Worksheets[1]; ws.Cells.LoadFromCollection(results, true); ws.Cells.AutoFitColumns(); excel.Save(); Session[guid] = stream.ToArray(); return(Json(new { success = true })); } } }
public virtual IQueryable GetAutoComplete(KendoGridMvcRequest request) { // Get filter from KendoGridRequest (in case of kendoAutoComplete there is only 1 filter) var filter = request.FilterObjectWrapper.FilterObjects.First(); // Change the field-name in the filter from ViewModel to Entity string fieldOriginal = filter.Field1; filter.Field1 = MapFieldfromViewModeltoEntity(filter.Field1); // Query the database with the filter var query = Service.AsQueryable().Where(filter.GetExpression1 <TEntity>()); // Apply paging if needed if (request.PageSize != null) { query = query.Take(request.PageSize.Value); } // Do a linq dynamic query GroupBy to get only unique results var groupingQuery = query.GroupBy(string.Format("it.{0}", filter.Field1), string.Format("new (it.{0} as Key)", filter.Field1)); // Make sure to return new objects which are defined as { "FieldName" : "Value" }, { "FieldName" : "Value" } else the kendoAutoComplete will not display search results. return(groupingQuery.Select(string.Format("new (Key as {0})", fieldOriginal))); }
public object BindModel([NotNull] ControllerContext controllerContext, [NotNull] ModelBindingContext bindingContext) { if (controllerContext == null) { throw new ArgumentNullException(nameof(controllerContext)); } if (bindingContext == null) { throw new ArgumentNullException(nameof(bindingContext)); } _request = controllerContext.HttpContext.Request; var queryString = GetQueryString(); var kendoGridRequest = new KendoGridMvcRequest { Take = queryString.GetQueryValue("take", (int?)null), Page = queryString.GetQueryValue("page", (int?)null), Skip = queryString.GetQueryValue("skip", (int?)null), PageSize = queryString.GetQueryValue("pageSize", (int?)null), FilterObjectWrapper = FilterHelper.Parse(queryString), GroupObjects = GroupHelper.Parse(queryString), AggregateObjects = AggregateHelper.Parse(queryString), SortObjects = SortHelper.Parse(queryString), }; return kendoGridRequest; }
public JsonResult GridBySubFunctionId(KendoGridMvcRequest request, long?subFunctionId) { var query = GetQueryable().Where(s => s.SubFunction.Id == subFunctionId).AsNoTracking(); var grid = _kendoGridQueryableHelper.ToKendoGridEx <Employee, EmployeeDetailVM>(query, request); return(Json(grid)); }
public JsonResult GridVirtualScrollable(KendoGridMvcRequest request) { var query = GetQueryable().AsNoTracking(); var kendoGrid = _kendoGridQueryableHelper.ToKendoGridEx <OU, OUVM>(query, request); return(Json(kendoGrid)); }
public JsonResult Grid(KendoGridMvcRequest request) { var employees = new List <EmployeeModel> { new EmployeeModel { EmployeeId = 1, FirstName = "Bill", LastName = "Jones", Email = "*****@*****.**" }, new EmployeeModel { EmployeeId = 2, FirstName = "Rob", LastName = "Johnson", Email = "*****@*****.**" }, new EmployeeModel { EmployeeId = 3, FirstName = "Jane", LastName = "Smith", Email = "*****@*****.**" } }; for (int i = 10; i < 40; i++) { employees.Add(new EmployeeModel { EmployeeId = i, FirstName = "FN:" + i, LastName = "LN" + i, Email = $"user_{i}@email.com" }); } var grid = new KendoGrid <EmployeeModel>(request, employees.AsQueryable()); return(Json(grid, new JsonSerializerSettings())); // Do no use CamelCasing }
public object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext) { if (bindingContext == null) { throw new ArgumentNullException("bindingContext"); } _request = controllerContext.HttpContext.Request; var queryString = GetQueryString(); var kendoGridRequest = new KendoGridMvcRequest { Take = queryString.GetQueryValue("take", (int?)null), Page = queryString.GetQueryValue("page", (int?)null), Skip = queryString.GetQueryValue("skip", (int?)null), PageSize = queryString.GetQueryValue("pageSize", (int?)null), FilterObjectWrapper = FilterHelper.Parse(queryString), GroupObjects = GroupHelper.Parse(queryString), AggregateObjects = AggregateHelper.Parse(queryString), SortObjects = SortHelper.Parse(queryString), }; return(kendoGridRequest); }
public JsonResult GridWithGroup(KendoGridMvcRequest request) { var queryContext = _employeeService.GetQueryContext(e => e.Company, e => e.Company.MainCompany, e => e.Country, e => e.Function, e => e.SubFunction); int seven = 7; return(GetKendoGridAsJson(request, queryContext.Query.Where(x => 7 == seven), queryContext.Includes)); }
public virtual async Task <IActionResult> Get([FromBody] KendoGridMvcRequest request) { var query = pluginFinder.GetPluginDescriptors(LoadPluginsMode.All).Select(x => (EdmPluginDescriptor)x).AsQueryable(); var grid = new KendoGrid <EdmPluginDescriptor>(request, query); return(Json(grid, new JsonSerializerSettings { ContractResolver = new DefaultContractResolver() })); }
public IActionResult Query(KendoGridMvcRequest request) { using (var connection = personRepository.Value.OpenConnection()) { var query = connection.Query() .OrderBy(x => x.FamilyName) .ThenBy(x => x.GivenNames); var grid = new KendoGrid <Person>(request, query); return(Json(grid)); } }
private string GetSearch(KendoGridMvcRequest request) { string search = string.Empty; var searchObject = request?.FilterObjectWrapper?.FilterObjects?.FirstOrDefault(o => !string.IsNullOrWhiteSpace(o.Field1)); if (searchObject != null) { search = searchObject.Value1.ToUpper(CultureInfo.CurrentCulture); } return(search); }
public IActionResult Query(string entityType, [FromBody] KendoGridMvcRequest request) { using (var connection = repository.Value.OpenConnection()) { var type = EnumExtensions.Parse <SavedQueryEntityType>(entityType); var query = connection.Query(x => x.Type == type) .OrderBy(x => x.Name) .ThenBy(x => x.Name); var grid = new KendoGrid <SavedQuery>(request, query); return(Json(grid)); } }
public Task BindModelAsync([NotNull] ModelBindingContext bindingContext) { if (bindingContext == null) { throw new ArgumentNullException(nameof(bindingContext)); } bool isForm = bindingContext.HttpContext.Request.HasFormContentType && bindingContext.HttpContext.Request.Method.ToUpper() == "POST"; var collection = isForm ? bindingContext.HttpContext.Request.Form as IEnumerable <KeyValuePair <string, StringValues> > : bindingContext.HttpContext.Request.Query as IEnumerable <KeyValuePair <string, StringValues> >; var queryString = new NameValueCollection(); foreach (KeyValuePair <string, StringValues> entry in collection) { string key = entry.Key; string value = entry.Value.ToArray().FirstOrDefault(); queryString.Add(key, value); } var kendoGridRequest = new KendoGridMvcRequest { Take = queryString.GetQueryValue("take", (int?)null), Page = queryString.GetQueryValue("page", (int?)null), Skip = queryString.GetQueryValue("skip", (int?)null), PageSize = queryString.GetQueryValue("pageSize", (int?)null), FilterObjectWrapper = FilterHelper.Parse(queryString), GroupObjects = GroupHelper.Parse(queryString), AggregateObjects = AggregateHelper.Parse(queryString), SortObjects = SortHelper.Parse(queryString), }; bindingContext.Result = ModelBindingResult.Success(kendoGridRequest); return(Task.CompletedTask); }
public JsonResult Grid(KendoGridMvcRequest request) { var employees = new[] { new Employee { EmployeeId = 1, FirstName = "Bill", LastName = "Jones", Email = "*****@*****.**" }, new Employee { EmployeeId = 2, FirstName = "Rob", LastName = "Johnson", Email = "*****@*****.**" }, new Employee { EmployeeId = 3, FirstName = "Jane", LastName = "Smith", Email = "*****@*****.**" } }; var search = GetSearch(request); var viewModel = string.IsNullOrWhiteSpace(search) ? employees : employees.Where(e => e.FirstName.ToUpper(CultureInfo.CurrentCulture).Contains(search)).Select(e => e).AsEnumerable(); return(Json(viewModel)); }
protected JsonResult GetKendoGridAsJson(KendoGridMvcRequest request, IQueryable <TEntity> query) { return(GetKendoGridAsJson(request, query, null)); }
public JsonResult GridManagersAngular(KendoGridMvcRequest request) { Thread.Sleep(2000); // Sleep 2 seconds to show loading gif return(GridManagers(request)); }
protected JsonResult GetKendoGridAsJson(KendoGridMvcRequest request, IQueryContext <TEntity> queryContext) { return(Json(_kendoGridExQueryableHelper.ToKendoGridEx <TEntity, TViewModel>(queryContext.Query, request, queryContext.Includes))); }
protected KendoGrid <TEntity, TViewModel> GetKendoGrid(KendoGridMvcRequest request, IQueryable <TEntity> query) { return(_kendoGridExQueryableHelper.ToKendoGridEx <TEntity, TViewModel>(query, request)); }
public virtual JsonResult GetAutoCompleteAsJson(KendoGridMvcRequest request) { var results = GetAutoComplete(request); return(Json(results, JsonRequestBehavior.AllowGet)); }
public JsonResult GridTop3(KendoGridMvcRequest request) { var entities = _productService.GetTop3Products(); return(GetKendoGridAsJson(request, entities)); }
public JsonResult GridManagers(KendoGridMvcRequest request) { var entities = _employeeService.GetManagers(); return(GetKendoGridAsJson(request, entities)); }
protected JsonResult GetKendoGridAsJson(KendoGridMvcRequest request, IQueryable <TEntity> query, IEnumerable <string> includes) { return(Json(query.ToKendoGridEx <TEntity, TViewModel>(request, includes))); }
protected JsonResult GetKendoGridAsJson(KendoGridMvcRequest request, IQueryContext <TEntity> queryContext) { return(Json(queryContext.ToKendoGrid <TViewModel>(request))); }
public JsonResult GridDetails(KendoGridMvcRequest request) { var queryContext = _employeeService.GetQueryContext(e => e.Company, e => e.Company.MainCompany, e => e.Country, e => e.Function, e => e.SubFunction); return(GetKendoGridAsJson(request, queryContext.Query, queryContext.Includes)); }
protected KendoGridEx <TEntity, TViewModel> GetKendoGrid(KendoGridMvcRequest request, IQueryable <TEntity> query) { return(query.ToKendoGridEx <TEntity, TViewModel>(request)); }
public JsonResult GridPaulJame(KendoGridMvcRequest request) { var entities = _employeeService.AsQueryable(); return(GetKendoGridAsJson(request, entities)); }
public JsonResult Grid(KendoGridMvcRequest request) { var entities = GetQueryableNoTracking(); return(GetKendoGridAsJson(request, entities)); }
public JsonResult GridVirtualScrollable(KendoGridMvcRequest request) { var query = GetQueryable().AsNoTracking(); return(Json(query.ToKendoGridEx <OU, OUVM>(request))); }
public JsonResult GridByFunctionId(KendoGridMvcRequest request, long?functionId) { var entities = GetQueryable().Where(s => s.Function.Id == functionId).AsNoTracking(); return(GetKendoGridAsJson(request, entities)); }