Exemplo n.º 1
0
        public JsonResult GetSpendingChartData()
        {
            //Setting up (Instantiating) data structures
            var barChartVM         = new BarChartVM();
            var actualChartDataSet = new BarChartDataSet();
            var targetChartDataSet = new BarChartDataSet();


            var hhId = User.Identity.GetHouseholdId();
            //Select first seven of the latest
            var categories = db.Categories.Where(c => c.HouseholdId == hhId && c.DebitCredit == false).ToList();  //False 'DebitCredit' indicates a Debit

            foreach (var cat in categories)
            {
                var tTypeId     = db.TransactionTypes.FirstOrDefault(t => t.Type == "Withdrawal").Id;
                var totalActual = cat.CategoryItems.SelectMany(c => c.Transactions).Where(t => t.TransactionTypeId == tTypeId).Where(t => t.Created.Month == DateTime.Now.Month).Select(t => t.Amount).Sum();
                var totalTarget = cat.TargetAmount;

                //Adding actual/target amounts to datasets
                actualChartDataSet.data.Add(totalActual);
                targetChartDataSet.data.Add(totalTarget);

                //Adding chart labels to ViewModel
                barChartVM.labels.Add(cat.Name);
            }


            //Adding 'Actual Spending' data to the open dataset
            actualChartDataSet.label                = "Actual Spending";
            actualChartDataSet.backgroundColor      = "rgba(60,141,188,0.9)";
            actualChartDataSet.borderColor          = "rgba(60,141,188,0.8)";
            actualChartDataSet.pointRadius          = false;
            actualChartDataSet.pointColor           = "#208cff";
            actualChartDataSet.pointStrokeColor     = "#208cff";
            actualChartDataSet.pointHighlightFill   = "#208cff";
            actualChartDataSet.pointHighlightStroke = "#208cff";

            //Adding 'Target Spending' data to the closed dataset
            targetChartDataSet.label                = "Target Spending";
            targetChartDataSet.backgroundColor      = "rgba(210, 214, 222, 1)";
            targetChartDataSet.borderColor          = "rgba(210, 214, 222, 1)";
            targetChartDataSet.pointRadius          = false;
            targetChartDataSet.pointColor           = "rgba(210, 214, 222, 1)";
            targetChartDataSet.pointStrokeColor     = "#c1c7d1";
            targetChartDataSet.pointHighlightFill   = "#fff";
            targetChartDataSet.pointHighlightStroke = "rgba(220,220,220,1)";

            //Adding datasets to ViewModel
            barChartVM.datasets.Add(actualChartDataSet);
            barChartVM.datasets.Add(targetChartDataSet);

            //Sending all data via ViewModel to the View
            return(Json(barChartVM, JsonRequestBehavior.AllowGet));
        }
Exemplo n.º 2
0
        public UserControl CreateElement(ReportElementVM element)
        {
            UserControl returningUserControl = null;
            string      type = element.Type;

            if (type.Equals("table"))
            {
                TableUserControl table   = new TableUserControl();
                TableVM          tableVm = new TableVM(element);
                table.DataContext    = tableVm;
                returningUserControl = table;
            }
            else if (type.Equals("linechart"))
            {
                LineChartUserControl lineChart   = new LineChartUserControl();
                LineChartVM          lineChartVm = new LineChartVM(element);
                lineChart.DataContext = lineChartVm;
                returningUserControl  = lineChart;
            }
            else if (type.Equals("piechart"))
            {
                PieChartUserControl pieChart   = new PieChartUserControl();
                PieChartVM          pieChartVm = new PieChartVM(element);
                pieChart.DataContext = pieChartVm;
                returningUserControl = pieChart;
            }
            else if (type.Equals("barchart"))
            {
                BarChartUserControl barChart   = new BarChartUserControl();
                BarChartVM          barChartVm = new BarChartVM(element);
                barChart.DataContext = barChartVm;
                returningUserControl = barChart;
            }
            else if (type.Equals("image"))
            {
                ImageUserControl image   = new ImageUserControl();
                ImageVM          imageVm = new ImageVM(element);
                image.DataContext    = imageVm;
                returningUserControl = image;
            }
            else if (type.Equals("text"))
            {
                TextUserControl text   = new TextUserControl();
                TextVM          textVM = new TextVM(element);
                text.DataContext     = textVM;
                returningUserControl = text;
            }
            return(returningUserControl);
        }
Exemplo n.º 3
0
        private BarChartVM GetBarChartDataForClient(int?clientID)
        {
            var orders   = _context.Orders.Include(o => o.AddedUser).Include(o => o.Client).Include(o => o.DeliveryType).Include(o => o.Finishing).Include(o => o.Format).Include(o => o.Machine).Include(o => o.PaperType).Include(o => o.PaperWeight).Include(o => o.PaymentType).Include(o => o.PostPress).Include(o => o.PrintColor).Include(o => o.Product).Include(o => o.ProductionStage).Include(o => o.SheetSize).Include(o => o.UpdatedUser).Include(o => o.VatRate).Include(o => o.PrintUser).Where(x => x.ClientID == clientID);
            var products = _context.Products.ToList();

            var barChartData = new BarChartVM();

            var labels = new List <string>();

            barChartData.labels = labels;

            var datasets = new List <BarChartChildVM>();

            var childModel = new BarChartChildVM();

            childModel.label                = "Ilość zamówień";
            childModel.backgroundColor      = @"rgba(58, 210, 159, 0.2)";
            childModel.borderColor          = "#3ad29f";
            childModel.borderWidth          = 1;
            childModel.hoverBackgroundColor = @"rgba(58, 210, 159, 0.8)";
            childModel.hoverBorderColor     = "#3ad29f";

            var dataList = new List <int>();

            foreach (Product p in products)
            {
                labels.Add(p.Name);
                dataList.Add(orders.Where(x => x.ProductID == p.ProductID).Count());
            }

            childModel.data = dataList;

            datasets.Add(childModel);

            barChartData.datasets = datasets;

            return(barChartData);
        }
        public async Task <List <BarChartVM> > GetBar()
        { // total feedback pada title
            var getTitle = await _context.Feedbacks
                           .Include("Question")
                           .Include(x => x.Question.Training)
                           .GroupBy(grup => grup.Question.Training.Title)
                           .Select(y => new PieChartVM
            {
                Title = y.Key,
                Total = y.Count()
            })
                           .ToListAsync();

            if (getTitle.Count == 0)
            {
                return(null);
            }
            List <BarChartVM> list = new List <BarChartVM>();
            var getCount5          = 0.0;
            var getCount4          = 0.0;
            var getCount3          = 0.0;
            var getCount2          = 0.0;
            var getCount1          = 0.0;

            foreach (var item in getTitle)
            {
                var getLengthTitle = await _context.Feedbacks
                                     .Include("Question")
                                     .Include(x => x.Question.Training)
                                     .Where(x => x.Question.Training.Title == item.Title)
                                     .ToListAsync();

                foreach (var item2 in getLengthTitle)
                {
                    if (item2.Rate > 4.0)
                    {
                        getCount5++;
                    }
                    else if (item2.Rate > 3.0)
                    {
                        getCount4++;
                    }
                    else if (item2.Rate > 2.0)
                    {
                        getCount3++;
                    }
                    else if (item2.Rate > 1.0)
                    {
                        getCount2++;
                    }
                    else if (item2.Rate == 1.0)
                    {
                        getCount1++;
                    }
                }

                var top = new BarChartVM()
                {
                    Title = item.Title,
                    star1 = getCount5,
                    star2 = getCount4,
                    star3 = getCount3,
                    star4 = getCount2,
                    star5 = getCount1,
                };
                list.Add(top);
            }
            return(list);
        }