/// <summary>
        /// simulate live data by creating a new order
        /// </summary>
        private void CreateNewOrder()
        {
            using (var db = new DataContext())
            {
                Random r = new Random();

                Order o = new Order();
                o.OrderDate = DateTime.Now;
                o.Product = db.Products.OrderBy(x => x.Id).Skip(r.Next(0, 3)).FirstOrDefault();
                o.Customer = db.Customers.FirstOrDefault();

                db.Orders.Add(o);
                db.SaveChanges();
            }
        }
        public JsonResult MonthSalesSummary()
        {
            var tomorrow = DateTime.Now.AddDays(1).Date;
            var first = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1);

            List<Order> month;

            using (var db = new DataContext())
            {
                month = db.Orders.Include("Product").Where(o => o.OrderDate >= first && o.OrderDate < tomorrow).OrderBy(o => o.Product.ShortName).OrderBy(o => o.OrderDate).ToList();
            }

            var monthly = new { Count = month.Count().ToString("#,#"), Total = month.Sum(z => z.Product.Price).ToString("#,#.00") };

            return Json(monthly, JsonRequestBehavior.AllowGet);
        }
        public JsonResult TodaysSalesDetail()
        {
            List<Order> today;

            using (var db = new DataContext())
            {
                var now = DateTime.Now.Date;
                today = db.Orders.Include("Product").Where(o => o.OrderDate >= now).ToList();
            }

            var orders =
                (from x in today group x by x.Product.ShortName into p select new {p.Key, Total = p.Count()}).ToList();

            var transformedData = (from x in orders select new List<object>{ x.Key,x.Total});

            return Json(transformedData, JsonRequestBehavior.AllowGet);
        }
        public JsonResult TodaySalesSummary()
        {
            // to simulate live data, add a new order each time this is called
            CreateNewOrder();

            List<Order> today;

            using (var db = new DataContext())
            {
                var now = DateTime.Now.Date;
                today = db.Orders.Include("Product").Where(o => o.OrderDate >= now).ToList();                
            }

            var daily = new {Count = today.Count().ToString("#,#"), Total = today.Sum(z => z.Product.Price).ToString("#,#.00")};

            return Json(daily, JsonRequestBehavior.AllowGet);
        }
Example #5
0
        protected void Application_Start()
        {

            Database.SetInitializer<DataContext>(new DashboardDataContextSeedInitializer());
            
            // this is here to force the initializer to run
            using (var db = new DataContext())
            {
                db.Database.Initialize(false);
            }

            AreaRegistration.RegisterAllAreas();

            WebApiConfig.Register(GlobalConfiguration.Configuration);
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BootstrapSupport.BootstrapBundleConfig.RegisterBundles(System.Web.Optimization.BundleTable.Bundles);
        }
        public JsonResult MonthSalesDetail()
        {
            var tomorrow = DateTime.Now.AddDays(1).Date;
            var first = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1);

            List<Order> month;

            using (var db = new DataContext())
            {
                month = db.Orders.Include("Product").Where(o => o.OrderDate >= first && o.OrderDate < tomorrow).OrderBy(o => o.Product.ShortName).OrderBy(o => o.OrderDate).ToList();
            }


            Dictionary<string, int[]> orders = new Dictionary<string, int[]>();

            foreach (Order o in month)
            {
                
                if (orders.ContainsKey(o.Product.ShortName))
                {
                    orders[o.Product.ShortName][o.OrderDate.Day - 1] += 1;
                }
                else
                {
                    orders.Add(o.Product.ShortName,new int[32]);
                    orders[o.Product.ShortName][o.OrderDate.Day - 1] += 1;
                }
            }

            var transformedData = orders.Select(e => new {name = e.Key, data = e.Value});

            return Json(transformedData, JsonRequestBehavior.AllowGet);
        }