public JsonResult LoadGrid2([DataSourceRequest]  DataSourceRequest request)
        {
            DataSourceResult result = new DataSourceResult();

            using (var northwind = new NorthWindEntities1())
            {
                IQueryable <ProductViewModel> pvm = from p in northwind.Products
                                                    orderby p.ProductID
                                                    join c in northwind.Categories on p.CategoryID equals c.CategoryID
                                                    join s in northwind.Suppliers on p.SupplierID equals s.SupplierID
                                                    select new ProductViewModel
                {
                    ProductID       = p.ProductID,
                    ProductName     = p.ProductName,
                    CompanyName     = s.CompanyName,
                    CategoryName    = c.CategoryName,
                    QuantityPerUnit = p.QuantityPerUnit,
                    UnitPrice       = p.UnitPrice,
                    UnitsInStock    = p.UnitsInStock,
                    UnitsOnOrder    = p.UnitsOnOrder,
                    ReorderLevel    = p.ReorderLevel,
                    Discontinued    = p.Discontinued
                };

                result = (pvm as IQueryable).ToDataSourceResult(request);
                return(Json(result, JsonRequestBehavior.AllowGet));
            }
        }
        public ActionResult Chart2()
        {
            ChartViewModel cvm = new ChartViewModel();

            DataSourceRequest request = new DataSourceRequest();

            request.Aggregates = GridDescriptorSerializer.Deserialize <Kendo.Mvc.AggregateDescriptor>("UnitsInStock-sum");
            request.Groups     = GridDescriptorSerializer.Deserialize <Kendo.Mvc.GroupDescriptor>("CategoryName-asc");

            using (var northwind = new NorthWindEntities1())
            {
                IQueryable <ProductViewModel> pvm = from p in northwind.Products
                                                    orderby p.ProductID
                                                    join c in northwind.Categories on p.CategoryID equals c.CategoryID
                                                    join s in northwind.Suppliers on p.SupplierID equals s.SupplierID
                                                    select new ProductViewModel
                {
                    ProductID       = p.ProductID,
                    ProductName     = p.ProductName,
                    CompanyName     = s.CompanyName,
                    CategoryName    = c.CategoryName,
                    QuantityPerUnit = p.QuantityPerUnit,
                    UnitPrice       = p.UnitPrice,
                    UnitsInStock    = p.UnitsInStock,
                    UnitsOnOrder    = p.UnitsOnOrder,
                    ReorderLevel    = p.ReorderLevel,
                    Discontinued    = p.Discontinued
                };

                DataSourceResult data = (pvm as IQueryable).ToDataSourceResult(request);

                var pieSections = (data.Data as List <Kendo.Mvc.Infrastructure.AggregateFunctionsGroup>).Select(p => new { Key = p.Key, Value = (int)((p.Aggregates["UnitsInStock"] as Dictionary <string, object>)["Sum"]) });

                var series = pieSections.Select(p => new ChartDataItem {
                    category = p.Key.ToString(), value = p.Value
                });

                cvm.series = series.ToList();
            }

            return(View(cvm));
        }
        public ActionResult EditingPopup_Update([DataSourceRequest] DataSourceRequest request, ProductViewModel product)
        {
            if (product != null && ModelState.IsValid)
            {
                using (var northwind = new NorthWindEntities1())
                {
                    Product target = northwind.Products.SingleOrDefault(p => p.ProductID == product.ProductID);
                    if (target != null)
                    {
                        target.ReorderLevel = product.ReorderLevel;
                        target.UnitPrice    = product.UnitPrice;
                        target.UnitsInStock = product.UnitsInStock;
                        target.UnitsOnOrder = product.UnitsOnOrder;
                        target.Discontinued = product.Discontinued;
                        northwind.SaveChanges();
                    }
                }
            }

            return(Json(new[] { product }.ToDataSourceResult(request, ModelState)));
        }
        public JsonResult LoadGrid1()
        {
            var take = string.IsNullOrEmpty(Request.QueryString["take"]) ? 1000 : Convert.ToInt32(Request.QueryString["take"]);
            var skip = string.IsNullOrEmpty(Request.QueryString["skip"]) ? 1000 : Convert.ToInt32(Request.QueryString["skip"]);

            var northwind = new NorthWindEntities1();

            var totalRecs = northwind.Orders.Count();

            var dataJson = new
            {
                total = totalRecs,
                data  = northwind.Orders.Select(o => new OrderViewModel
                {
                    OrderID   = o.OrderID,
                    Freight   = o.Freight,
                    ShipName  = o.ShipName,
                    OrderDate = o.OrderDate,
                    ShipCity  = o.ShipCity
                }).OrderBy(o => o.OrderID).Skip(skip).Take(take).ToArray()
            };

            return(this.Json(dataJson, JsonRequestBehavior.AllowGet));
        }