예제 #1
0
        public ActionResult Index()
        {
            Session["Url"] = Request.RawUrl;
            if (Session["year"] == null)
            {
                HttpContext.GetOwinContext().Authentication.SignOut();
                return(RedirectToAction("Login", "Account"));
            }

            ViewBag.TrienKhai = td.getTrienKhai(Session["year"].ToString(), DateTime.Parse(Session["date"].ToString()), Session["donvi"] == null ? "" : Session["donvi"].ToString()).FirstOrDefault();

            string[] categories = new[] { "Đã kết thúc", "Đã trình duyệt BCKT", "Đã xét duyệt BCKT", "Đơn vị đã trình PHBCKT", "Vụ TH đã trình PHBCKT", "Đã phát hành BCKT" };

            ChartsModel model = new ChartsModel();

            model.Charts = new List <Highcharts>();
            var tmp2 = td.getPhatHanh(Session["year"].ToString(), DateTime.Parse(Session["date"].ToString()), Session["donvi"] == null ? "" : Session["donvi"].ToString()).FirstOrDefault();

            Series[] colData = new[] {
                new Series {
                    Name = "", Data = new Data(new object[] { tmp2.dakt, tmp2.datrinhbc, tmp2.daduyetbc, tmp2.dvtrinhph, tmp2.thtrinhph, tmp2.ktnnph })
                }
            };
            ChartsController c = new ChartsController();

            model.Charts.Add(c.ColChart1("chart", categories, colData).SetOptions(new GlobalOptions
            {
                Colors = new System.Drawing.Color[] { Color.FromArgb(92, 184, 92) }
            }));

            return(View(model));
        }
예제 #2
0
        // GET: Charts/Ratings
        public ActionResult Ratings(ChartsModel model)
        {
            model = model ?? new ChartsModel();

            var to   = model.To.Date;
            var from = model.From.Date;

            var providers = new List <IGraphDataProvider>();

            if (model.UserId != null)
            {
                providers = model.UserId.Select(x => (IGraphDataProvider) new RatingHistory(x, model.RatingCategory)).ToList();
            }

            var series = new List <GraphSeries>();

            foreach (var prov in providers)
            {
                series.Add(new GraphSeries()
                {
                    Title = prov.Title, Data = prov.GetDailyValues(from, to)
                });
            }

            model.GraphingData = series;
            return(View("ChartsRatings", model));
        }
예제 #3
0
        public IActionResult Index()
        {
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://api.covid19india.org/data.json");

            request.Method = "GET";
            String test = String.Empty;

            using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
            {
                Stream       dataStream = response.GetResponseStream();
                StreamReader reader     = new StreamReader(dataStream);
                test = reader.ReadToEnd();
                reader.Close();
                dataStream.Close();
            }

            NationDataModel nationDataModel = JsonConvert.DeserializeObject <NationDataModel>(test);

            ChartsModel chartsModel = ChartsModelMapper.Map(nationDataModel);
            var         stringModel = JsonConvert.SerializeObject(chartsModel);



            return(View(chartsModel));
        }
        public ActionResult Index(FormCollection collection)
        {
            var listItems = new List <SelectListItem>();

            var questions = db.Questions.ToList();

            foreach (var question in questions)
            {
                listItems.Add(
                    new SelectListItem
                {
                    Text  = question.QuestionText,
                    Value = question.QuestionText
                });
            }

            ViewBag.ListItems = listItems;

            var name            = Request.Form["listItems"];
            var ChartCollection = new ChartsModel();

            var chart      = SurveryBarChart(name);
            var donutchart = SentimentStackBarChart();

            ChartCollection.Chart1 = chart;
            ChartCollection.Chart2 = donutchart;
            //  this.ViewBag.DonutchartModel = Donutchart;
            return(View(ChartCollection));
        }
        // GET: DashBoard
        public ActionResult Index()
        {
            var listItems = new List <SelectListItem>();

            var questions = db.Questions.ToList();

            foreach (var question in questions)
            {
                listItems.Add(
                    new SelectListItem
                {
                    Text  = question.QuestionText,
                    Value = question.QuestionText
                });
            }

            ViewBag.ListItems = listItems;

            var chart      = SurveryBarChart();
            var donutchart = SentimentStackBarChart();

            var ChartCollection = new ChartsModel();

            ChartCollection.Option = listItems.LastOrDefault().Text;
            ChartCollection.Chart1 = null;
            ChartCollection.Chart2 = donutchart;
            //  this.ViewBag.DonutchartModel = Donutchart;
            return(View(ChartCollection));
        }
예제 #6
0
        private BuisenessLogicSSKA()
        {
            progrBar = new WindowProgrBar();

            dataGate    = new CsvToXmlSSKA();
            chartsModel = ChartsModel.GetInstance();
            request     = DataRequest.GetInstance();

            request.DataRequested           += delegate { this.UpdateDataModel(); };
            request.FilterValuesRequested   += delegate { this.FilterData(); };
            request.DataBankUpdateRequested += delegate { UpdateData(); };
            request.ViewDataRequested       += delegate { this.UpdateViewData(); };

            updateChart += delegate { chartsModel.IncomesInfoOverDateRange = GetIncomesInfoOverDateRange(request); };
            updateChart += delegate { chartsModel.IncomesOverDatesRange = GetIncomesOverDatesRange(request); };
            updateChart += delegate { chartsModel.BalanceOverDateRange = GetBalanceOverDateRange(request); };
            updateChart += delegate { chartsModel.ExpensesOverDateRange = GetExpensesOverDateRange(request); };
            updateChart += delegate { chartsModel.ExpensesInfoOverDateRange = GetExpensesInfoOverDateRange(request); };
            updateChart += delegate { chartsModel.ExpensesOverRemiteeGroupsInDateRange = GetExpensesOverRemiteeGroupsInDateRange(request); };
            updateChart += delegate { chartsModel.ExpensesOverRemiteeInDateRange = GetExpensesOverRemiteeInDateRange(request); };
            updateChart += delegate { chartsModel.Summary = GetSummary(request); };
            updateChart += delegate { chartsModel.TransactionsAccounts = GetTransactionsAccounts(request); };

            UpdateDataModel();
        }
예제 #7
0
        public ActionResult Index(ChartsModel model)
        {
            model = model ?? new ChartsModel();
            model.PossibleGraphs = GetPossibleProviders().Select(x => new ChartsModel.PossibleGraph()
            {
                Title = x.Title, Name = x.Name
            }).ToList();


            var to       = model.To.Date;
            var from     = model.From.Date;
            var grouping = model.Grouping;

            var providers = GetPossibleProviders().Where(x => model.Graphs.Contains(x.Name));

            var series = new List <GraphSeries>();

            foreach (var prov in providers)
            {
                var data = MemCache.GetCached($"chart_{prov.Title}_{from}_{to}", () => GraphPoint.FillHoles(prov.GetDailyValues(from, to), from, to).ToList(), 3600 * 24);


                if (grouping > 1)
                {
                    data =
                        data.GroupBy(x => (int)x.Day.Subtract(from).TotalDays / grouping)
                        .Select(x => new GraphPoint()
                    {
                        Day = x.First().Day, Value = x.Average(y => y.Value)
                    })
                        .ToList();
                }

                series.Add(new GraphSeries()
                {
                    Title = prov.Title, Data = data
                });
            }


            if (model.Normalize)
            {
                foreach (var s in series)
                {
                    var min = s.Data.Min(x => x.Value);
                    var max = s.Data.Max(x => x.Value);

                    foreach (var d in s.Data)
                    {
                        d.Value = 100.0 * (d.Value - min) / (max - min);
                    }
                }
            }

            model.GraphingData = series;
            return(View("ChartsIndex", model));
        }
예제 #8
0
 // GET: Charts
 public ActionResult Index(ChartsModel model)
 {
     model = model ?? new ChartsModel();
     model.PossibleGraphs = GetPossibleProviders().Select(x => new ChartsModel.PossibleGraph()
     {
         Title = x.Title, Name = x.Name
     }).ToList();
     return(View("ChartsIndex", model));
 }
예제 #9
0
 public ChartsPresenter(IViewCharts viewChC, IBuisenessLogic bl)
 {
     this.bl                         = bl;
     this.request                    = bl.Request;
     _viewChC                        = viewChC;
     chartModel                      = bl.ChartsModel;
     _viewChC.BeginDate              = request.BeginDate;
     _viewChC.EndDate                = request.EndDate;
     _viewChC.OnDateIntervalChanged += delegate { this.Initialaze(); };
     chartModel.PropertyChanged     += ReactOnPropertyChange;
     chartModel.ViewPropertyChanged += ReactOnViewPropertyChange;
 }
예제 #10
0
        /// <summary>
        /// Presenta la información detalle
        /// </summary>
        /// <returns></returns>
        public ActionResult DashBoard()
        {
            List <MenuBO> myMenu = Util.GetDashBoardMenu(Session["myMenu"]);
            var           charts = new ChartsModel();
            int           cont   = 0;

            foreach (var item in myMenu)
            {
                charts = GetChartsModel(charts, item, cont);
                cont++;
            }
            Response.AddHeader("Refresh", ConfigurationManager.AppSettings["Refresh"]);
            return(View(charts));
        }
        public ActionResult Create(FormCollection collection, Charts chart)
        {
            string MedicineName = collection.Get("name");

            chart.From = new DateTime(chart.From.Year, chart.From.Month, 1);
            chart.To   = new DateTime(chart.To.Year, chart.To.Month, 1);
            Charts current = new Charts(MedicineName, chart.From, chart.To);

            ChartsModel model = new ChartsModel();

            model.GetChart(current);
            ChartsViewModel viewModel = new ChartsViewModel(current);

            TempData["viewModel"] = viewModel;
            return(RedirectToAction("Index"));
        }
예제 #12
0
        // GET: Charts/Ratings
        public ActionResult Ratings(ChartsModel model)
        {
            model = model ?? new ChartsModel();

            var to   = model.To.Date;
            var from = model.From.Date;

            var providers = new List <IGraphDataProvider>();

            if (model.UserId != null)
            {
                providers.AddRange(model.UserId.Select(x => (IGraphDataProvider) new RatingHistory(x, model.RatingCategory)).ToList());
                //providers.AddRange(model.UserId.Select(x => (IGraphDataProvider)new LadderRatingHistory(x, model.RatingCategory)).ToList()); //75% confidence
            }

            var series = new List <GraphSeries>();

            foreach (var prov in providers)
            {
                series.Add(new GraphSeries()
                {
                    Title = prov.Title, Data = prov.GetDailyValues(from, to)
                });
            }

            model.GraphingData = series;

            if (model.UserId != null)
            {
                using (var db = new ZkDataContext())
                {
                    model.UserStats = model.UserId.Select(id => new UserStats()
                    {
                        Account   = db.Accounts.Where(x => x.AccountID == id).Include(x => x.Faction).Include(x => x.Clan).FirstOrDefault(),
                        RankStats = RatingSystems.ratingCategories.Select(s => new RankStats()
                        {
                            System        = s.ToString(),
                            CurrentRating = RatingSystems.GetRatingSystem(s).GetPlayerRating(id),
                            Bracket       = RatingSystems.GetRatingSystem(s).GetPercentileBracket(db.Accounts.FirstOrDefault(a => a.AccountID == id).Rank),
                        }).ToList(),
                    }).ToList();
                }
            }
            return(View("ChartsRatings", model));
        }
예제 #13
0
        /// <summary>
        /// POST: Driver Status percentage Charts
        /// </summary>
        /// <returns></returns>
        public ActionResult DriverStatusCharts(string driver, DateTime?fromDate, DateTime?toDate)
        {
            ViewBag.Drivers = new SelectList(context.Users.Where(u => u.UserType == "Driver"), "Username", "Username");

            #region Chart instantiation
            Highcharts columnChart     = new Highcharts("columnchart");
            Highcharts barChart        = new Highcharts("barchart");
            Highcharts areaChart       = new Highcharts("areaChart");
            Highcharts lineChart       = new Highcharts("lineChart");
            Highcharts areasplineChart = new Highcharts("areasplineChart");
            Highcharts splineChart     = new Highcharts("splineChart");
            Highcharts pieChart        = new Highcharts("pieChart");
            Highcharts scatterChart    = new Highcharts("scatterChart");
            #endregion

            #region Charts List
            var charts = new ChartsModel
            {
                ColumnChart     = columnChart,
                BarChart        = barChart,
                AreaChart       = areaChart,
                LineChart       = lineChart,
                AreasplineChart = areasplineChart,
                SplineChart     = splineChart,
                PieChart        = pieChart,
                ScatterChart    = scatterChart
            };
            #endregion

            IQueryable <DriverStatusCount> statusCounts = context.DriverStatusCounts.Where(d => d.Driver == driver && d.Date >= fromDate && d.Date <= toDate);
            if (statusCounts != null)
            {
                #region Get the dates
                List <DriverStatusPercentage> statuspercentages = new List <DriverStatusPercentage>();
                List <string> dates = new List <string>();

                foreach (var status in statusCounts)
                {
                    if (status.Date == null)
                    {
                        status.Date = DateTime.Now.Date;
                    }
                    if (!dates.Contains(status.Date.ToShortDateString()))
                    {
                        dates.Add(status.Date.ToShortDateString());
                        statuspercentages.Add(new DriverStatusPercentage()
                        {
                            Date = status.Date
                        });
                    }
                }
                #endregion

                #region Get the daily status percentage for the driver
                foreach (var status in statusCounts)
                {
                    foreach (var day in dates)
                    {
                        if (status.Date.ToShortDateString() == day)
                        {
                            foreach (var percentM in statuspercentages)
                            {
                                if (percentM.Date.ToShortDateString() == day)
                                {
                                    // Get status percentage
                                    int value = status.OnlineCount + status.OfflineCount;
                                    percentM.OnlinePercentage  = status.OnlineCount * 100 / value;
                                    percentM.OfflinePercentage = status.OfflineCount * 100 / value;
                                }
                            }
                        }
                    }
                }
                #endregion

                #region Get daily revenue list
                List <object> onlineState  = new List <object>();
                List <object> offlineState = new List <object>();
                foreach (var percentage in statuspercentages)
                {
                    onlineState.Add(percentage.OnlinePercentage);
                    offlineState.Add(percentage.OfflinePercentage);
                }
                #endregion

                #region Initialization
                columnChart     = InitializeChart(columnChart, ChartTypes.Column, driver, dates, onlineState, offlineState, "Offline percentage", "Driver Status Analysis", "Date", "percentage", "Online percentage");
                barChart        = InitializeChart(barChart, ChartTypes.Bar, driver, dates, onlineState, offlineState, "Offline percentage", "Driver Status Analysis", "Date", "percentage", "Online percentage");
                areaChart       = InitializeChart(areaChart, ChartTypes.Area, driver, dates, onlineState, offlineState, "Offline percentage", "Driver Status Analysis", "Date", "percentage", "Online percentage");
                lineChart       = InitializeChart(lineChart, ChartTypes.Line, driver, dates, onlineState, offlineState, "Offline percentage", "Driver Status Analysis", "Date", "percentage", "Online percentage");
                areasplineChart = InitializeChart(areasplineChart, ChartTypes.Areaspline, driver, dates, onlineState, offlineState, "Offline percentage", "Driver Status Analysis", "Date", "percentage", "Online percentage");
                splineChart     = InitializeChart(splineChart, ChartTypes.Spline, driver, dates, onlineState, offlineState, "Offline percentage", "Driver Status Analysis", "Date", "percentage", "Online percentage");
                pieChart        = InitializeChart(pieChart, ChartTypes.Pie, driver, dates, onlineState, offlineState, "Offline percentage", "Driver Status Analysis", "Date", "percentage", "Online percentage");
                scatterChart    = InitializeChart(scatterChart, ChartTypes.Scatter, driver, dates, onlineState, offlineState, "Offline percentage", "Driver Status Analysis", "Date", "percentage", "Online percentage");
                ViewBag.Charts  = true;
                #endregion
            }

            return(View(charts));
        }
예제 #14
0
        /// <summary>
        /// POST: Daily Distance Coverage Charts
        /// </summary>
        /// <returns></returns>
        public ActionResult DriverDistanceCharts(string driver, DateTime?fromDate, DateTime?toDate)
        {
            ViewBag.Drivers = new SelectList(context.Users.Where(u => u.UserType == "Driver"), "Username", "Username");

            #region Chart instantiation
            Highcharts columnChart     = new Highcharts("columnchart");
            Highcharts barChart        = new Highcharts("barchart");
            Highcharts areaChart       = new Highcharts("areaChart");
            Highcharts lineChart       = new Highcharts("lineChart");
            Highcharts areasplineChart = new Highcharts("areasplineChart");
            Highcharts splineChart     = new Highcharts("splineChart");
            Highcharts pieChart        = new Highcharts("pieChart");
            Highcharts scatterChart    = new Highcharts("scatterChart");
            #endregion

            #region Charts List
            var charts = new ChartsModel
            {
                ColumnChart     = columnChart,
                BarChart        = barChart,
                AreaChart       = areaChart,
                LineChart       = lineChart,
                AreasplineChart = areasplineChart,
                SplineChart     = splineChart,
                PieChart        = pieChart,
                ScatterChart    = scatterChart
            };
            #endregion

            IQueryable <Reservation> revs = context.Reservations.Where(r => r.Driver == driver && (r.Status == "Ended" || r.Status == "Ended & Feedback Left") &&
                                                                       r.PickUpDate >= fromDate && r.PickUpDate <= toDate);
            if (revs != null && revs.Count() != 0)
            {
                #region Get the dates
                List <DriverDailyDist> dailyDist = new List <DriverDailyDist>();
                List <string>          dates     = new List <string>();

                foreach (var rev in revs)
                {
                    if (!dates.Contains(rev.PickUpDate.Date.ToShortDateString()))
                    {
                        dates.Add(rev.PickUpDate.Date.ToShortDateString());
                        dailyDist.Add(new DriverDailyDist()
                        {
                            Date = rev.PickUpDate.Date
                        });
                    }
                }
                #endregion

                #region Get the daily distance for the driver
                foreach (var rev in revs)
                {
                    foreach (var day in dates)
                    {
                        if (rev.PickUpDate.Date.ToShortDateString() == day)
                        {
                            foreach (var distM in dailyDist)
                            {
                                if (distM.Date.Date.ToShortDateString() == day)
                                {
                                    // Add the OnHire and Full distance to the daily distance coverage
                                    distM.OnHire += rev.OnHireDistance;
                                    if (rev.OverallDistance == null)
                                    {
                                        rev.OverallDistance = 0;
                                    }
                                    distM.Full += (decimal)rev.OverallDistance;
                                }
                            }
                        }
                    }
                }
                #endregion

                #region Get daily revenue list
                List <object> onHireDist = new List <object>();
                List <object> fullDist   = new List <object>();
                foreach (var rev in dailyDist)
                {
                    onHireDist.Add(rev.OnHire);
                    fullDist.Add(rev.Full);
                }
                #endregion

                #region Initialization
                columnChart     = InitializeChart(columnChart, ChartTypes.Column, driver, dates, onHireDist, fullDist, "Full Distance", "Daily Distance Coverage Analysis", "Date", "On Hire & Full Distance (KM)", "On Hire Distance");
                barChart        = InitializeChart(barChart, ChartTypes.Bar, driver, dates, onHireDist, fullDist, "Full Distance", "Daily Distance Coverage Analysis", "Date", "On Hire & Full Distance (KM)", "On Hire Distance");
                areaChart       = InitializeChart(areaChart, ChartTypes.Area, driver, dates, onHireDist, fullDist, "Full Distance", "Daily Distance Coverage Analysis", "Date", "On Hire & Full Distance (KM)", "On Hire Distance");
                lineChart       = InitializeChart(lineChart, ChartTypes.Line, driver, dates, onHireDist, fullDist, "Full Distance", "Daily Distance Coverage Analysis", "Date", "On Hire & Full Distance (KM)", "On Hire Distance");
                areasplineChart = InitializeChart(areasplineChart, ChartTypes.Areaspline, driver, dates, onHireDist, fullDist, "Full Distance", "Daily Distance Coverage Analysis", "Date", "On Hire & Full Distance (KM)", "On Hire Distance");
                splineChart     = InitializeChart(splineChart, ChartTypes.Spline, driver, dates, onHireDist, fullDist, "Full Distance", "Daily Distance Coverage Analysis", "Date", "On Hire & Full Distance (KM)", "On Hire Distance");
                pieChart        = InitializeChart(pieChart, ChartTypes.Pie, driver, dates, onHireDist, fullDist, "Full Distance", "Daily Distance Coverage Analysis", "Date", "On Hire & Full Distance (KM)", "On Hire Distance");
                scatterChart    = InitializeChart(scatterChart, ChartTypes.Scatter, driver, dates, onHireDist, fullDist, "Full Distance", "Daily Distance Coverage Analysis", "Date", "On Hire & Full Distance (KM)", "On Hire Distance");
                ViewBag.Charts  = true;
                #endregion
            }

            return(View(charts));
        }
예제 #15
0
        /// <summary>
        /// POST: DriverRevenueCharts
        /// </summary>
        /// <returns></returns>
        public ActionResult DriverMonthlyRevenueCharts(string driver, string year)
        {
            ViewBag.Drivers = new SelectList(context.Users.Where(u => u.UserType == "Driver"), "Username", "Username");
            #region Get a list of years
            List <int> years     = new List <int>();
            int        startYear = DateTime.Now.Year;
            while (startYear >= DateTime.Now.AddYears(-5).Year)
            {
                years.Add(startYear);
                startYear -= 1;
            }
            ViewBag.Years = years;
            #endregion

            #region Chart instantiation
            Highcharts columnChart     = new Highcharts("columnchart");
            Highcharts barChart        = new Highcharts("barchart");
            Highcharts areaChart       = new Highcharts("areaChart");
            Highcharts lineChart       = new Highcharts("lineChart");
            Highcharts areasplineChart = new Highcharts("areasplineChart");
            Highcharts splineChart     = new Highcharts("splineChart");
            Highcharts pieChart        = new Highcharts("pieChart");
            Highcharts scatterChart    = new Highcharts("scatterChart");
            #endregion

            #region Charts List
            var charts = new ChartsModel
            {
                ColumnChart     = columnChart,
                BarChart        = barChart,
                AreaChart       = areaChart,
                LineChart       = lineChart,
                AreasplineChart = areasplineChart,
                SplineChart     = splineChart,
                PieChart        = pieChart,
                ScatterChart    = scatterChart
            };
            #endregion

            IQueryable <Reservation> revs = context.Reservations.Where(r => r.Driver == driver && (r.Status == "Ended" || r.Status == "Ended & Feedback Left") &&
                                                                       r.PickUpDate.Year.ToString() == year);
            if (revs != null && revs.Count() != 0)
            {
                #region Get the months
                List <DriverMonthlyRev> monthlyRevs = new List <DriverMonthlyRev>();
                List <string>           months      = new List <string>();

                foreach (var rev in revs)
                {
                    if (!months.Contains(GetMonth(rev.PickUpDate.Month)))
                    {
                        months.Add(GetMonth(rev.PickUpDate.Month));
                        monthlyRevs.Add(new DriverMonthlyRev()
                        {
                            Month = rev.PickUpDate.Month, MonthInText = GetMonth(rev.PickUpDate.Month)
                        });
                    }
                }
                #endregion

                #region Get the daily revenue for the driver
                foreach (var rev in revs)
                {
                    foreach (var month in months)
                    {
                        if (GetMonth(rev.PickUpDate.Month) == month)
                        {
                            foreach (var revM in monthlyRevs)
                            {
                                if (GetMonth(revM.Month) == month)
                                {
                                    // Add the charge to the monthly income and commission
                                    revM.Income     += rev.Charge;
                                    revM.Commission += rev.Charge * 90 / 100;
                                }
                            }
                        }
                    }
                }
                #endregion

                #region Get monthly income and commission list
                List <object> income    = new List <object>();
                List <object> commision = new List <object>();
                foreach (var rev in monthlyRevs)
                {
                    income.Add(rev.Income);
                    commision.Add(rev.Commission);
                }
                #endregion

                #region Initialization
                columnChart     = InitializeChart(columnChart, ChartTypes.Column, driver, months, commision, income, "Income", "Monthly Income & Commission Analysis", "Month", "Income & Commission", "Commission");
                barChart        = InitializeChart(barChart, ChartTypes.Bar, driver, months, commision, income, "Income", "Monthly Income & Commission Analysis", "Month", "Income & Commission", "Commission");
                areaChart       = InitializeChart(areaChart, ChartTypes.Area, driver, months, commision, income, "Income", "Monthly Income & Commission Analysis", "Month", "Income & Commission", "Commission");
                lineChart       = InitializeChart(lineChart, ChartTypes.Line, driver, months, commision, income, "Income", "Monthly Income & Commission Analysis", "Month", "Income & Commission", "Commission");
                areasplineChart = InitializeChart(areasplineChart, ChartTypes.Areaspline, driver, months, commision, income, "Income", "Monthly Income & Commission Analysis", "Month", "Income & Commission", "Commission");
                splineChart     = InitializeChart(splineChart, ChartTypes.Spline, driver, months, commision, income, "Income", "Monthly Income & Commission Analysis", "Month", "Income & Commission", "Commission");
                pieChart        = InitializeChart(pieChart, ChartTypes.Pie, driver, months, commision, income, "Income", "Monthly Income & Commission Analysis", "Month", "Income & Commission", "Commission");
                scatterChart    = InitializeChart(scatterChart, ChartTypes.Scatter, driver, months, commision, income, "Income", "Monthly Income & Commission Analysis", "Month", "Income & Commission", "Commission");
                ViewBag.Charts  = true;
                #endregion
            }

            return(View(charts));
        }
예제 #16
0
        /// <summary>
        /// POST: DriverRevenueCharts
        /// </summary>
        /// <returns></returns>
        public ActionResult DriverRevenueCharts(string driver, DateTime?fromDate, DateTime?toDate)
        {
            ViewBag.Drivers = new SelectList(context.Users.Where(u => u.UserType == "Driver"), "Username", "Username");

            #region Chart instantiation
            Highcharts columnChart     = new Highcharts("columnchart");
            Highcharts barChart        = new Highcharts("barchart");
            Highcharts areaChart       = new Highcharts("areaChart");
            Highcharts lineChart       = new Highcharts("lineChart");
            Highcharts areasplineChart = new Highcharts("areasplineChart");
            Highcharts splineChart     = new Highcharts("splineChart");
            Highcharts pieChart        = new Highcharts("pieChart");
            Highcharts scatterChart    = new Highcharts("scatterChart");
            #endregion

            #region Charts List
            var charts = new ChartsModel
            {
                ColumnChart     = columnChart,
                BarChart        = barChart,
                AreaChart       = areaChart,
                LineChart       = lineChart,
                AreasplineChart = areasplineChart,
                SplineChart     = splineChart,
                PieChart        = pieChart,
                ScatterChart    = scatterChart
            };
            #endregion

            IQueryable <Reservation> revs = context.Reservations.Where(r => r.Driver == driver && (r.Status == "Ended" || r.Status == "Ended & Feedback Left") &&
                                                                       r.PickUpDate >= fromDate && r.PickUpDate <= toDate);
            if (revs != null && revs.Count() != 0)
            {
                #region Get the dates
                List <DriverDailyRev> dailyRev = new List <DriverDailyRev>();
                List <string>         dates    = new List <string>();

                foreach (var rev in revs)
                {
                    if (!dates.Contains(rev.PickUpDate.Date.ToShortDateString()))
                    {
                        dates.Add(rev.PickUpDate.Date.ToShortDateString());
                        dailyRev.Add(new DriverDailyRev()
                        {
                            Date = rev.PickUpDate.Date
                        });
                    }
                }
                #endregion

                #region Get the daily revenue for the driver
                foreach (var rev in revs)
                {
                    foreach (var day in dates)
                    {
                        if (rev.PickUpDate.Date.ToShortDateString() == day)
                        {
                            foreach (var revM in dailyRev)
                            {
                                if (revM.Date.Date.ToShortDateString() == day)
                                {
                                    // Add the amount to the daily revenue
                                    revM.Amount += rev.Charge;
                                }
                            }
                        }
                    }
                }
                #endregion

                #region Get daily revenue list
                List <object> amount = new List <object>();
                foreach (var rev in dailyRev)
                {
                    amount.Add(rev.Amount);
                }
                #endregion

                #region Initialization
                columnChart     = InitializeChart(columnChart, ChartTypes.Column, driver, dates, amount, null, null);
                barChart        = InitializeChart(barChart, ChartTypes.Bar, driver, dates, amount, null, null);
                areaChart       = InitializeChart(areaChart, ChartTypes.Area, driver, dates, amount, null, null);
                lineChart       = InitializeChart(lineChart, ChartTypes.Line, driver, dates, amount, null, null);
                areasplineChart = InitializeChart(areasplineChart, ChartTypes.Areaspline, driver, dates, amount, null, null);
                splineChart     = InitializeChart(splineChart, ChartTypes.Spline, driver, dates, amount, null, null);
                pieChart        = InitializeChart(pieChart, ChartTypes.Pie, driver, dates, amount, null, null);
                scatterChart    = InitializeChart(scatterChart, ChartTypes.Scatter, driver, dates, amount, null, null);
                ViewBag.Charts  = true;
                #endregion
            }

            return(View(charts));
        }
예제 #17
0
        //public ActionResult Print()
        //{
        //    return new ActionAsPdf("Index",ev);
        //}



        public ActionResult Chart1()
        {
            Highcharts chart = new Highcharts("newChart")
                               .SetTitle(new Title {
                Text = "Chart inside JavaScript function"
            })
                               .SetTooltip(new Tooltip {
                Formatter = "function() { return '<b>'+ this.point.name +'</b>: '+ this.percentage +' %'; }"
            })
                               .SetXAxis(new XAxis {
                Categories = new[] { "Apples", "Oranges", "Pears", "Bananas", "Plums" }
            })
                               .SetTooltip(new Tooltip {
                Formatter = "TooltipFormatter"
            })
                               .SetLabels(new Labels
            {
                Items = new[]
                {
                    new LabelsItems
                    {
                        Html  = "Total fruit consumption",
                        Style = "left: '40px', top: '8px', color: 'black'"
                    }
                }
            })
                               .SetPlotOptions(new PlotOptions
            {
                Pie = new PlotOptionsPie
                {
                    Center       = new[] { new PercentageOrPixel(100), new PercentageOrPixel(80) },
                    Size         = new PercentageOrPixel(100),
                    ShowInLegend = false,
                    DataLabels   = new PlotOptionsPieDataLabels {
                        Enabled = false
                    }
                }
            })
                               .SetSeries(new[]
            {
                new Series
                {
                    Type = ChartTypes.Column,
                    Name = "Jane",
                    Data = new DotNet.Highcharts.Helpers.Data(new object[] { 3, 2, 1, 3, 4 })
                },
                new Series
                {
                    Type = ChartTypes.Column,
                    Name = "John",
                    Data = new DotNet.Highcharts.Helpers.Data(new object[] { 2, 3, 5, 7, 6 })
                },
                new Series
                {
                    Type = ChartTypes.Column,
                    Name = "Joe",
                    Data = new DotNet.Highcharts.Helpers.Data(new object[] { 4, 3, 3, 9, 0 })
                },
                new Series
                {
                    Type = ChartTypes.Spline,
                    Name = "Average",
                    Data = new DotNet.Highcharts.Helpers.Data(new object[] { 3, 2.67, 3, 6.33, 3.33 })
                },
                new Series
                {
                    Type = ChartTypes.Pie,
                    Name = "Total consumption",
                    Data = new DotNet.Highcharts.Helpers.Data(new[]
                    {
                        new DotNet.Highcharts.Options.Point
                        {
                            Name  = "Jane",
                            Y     = 13,
                            Color = Color.FromName("colors[5]")
                        },
                        new DotNet.Highcharts.Options.Point
                        {
                            Name  = "John",
                            Y     = 23,
                            Color = Color.FromName("colors[6]")
                        },
                        new DotNet.Highcharts.Options.Point
                        {
                            Name  = "Joe",
                            Y     = 19,
                            Color = Color.FromName("colors[7]")
                        }
                    }
                                                              )
                }
            })
                               .InFunction("DrawChart")
                               .AddJavascripVariable("colors", "Highcharts.getOptions().colors")
                               .AddJavascripFunction("TooltipFormatter",
                                                     @"var s;
                    if (this.point.name) { // the pie chart
                       s = ''+
                          this.point.name +': '+ this.y +' fruits';
                    } else {
                       s = ''+
                          this.x  +': '+ this.y;
                    }
                    return s;");



            List <decimal> values = new List <decimal> {
                (decimal)29.9, (decimal)71.5, (decimal)106.4, (decimal)129.2, 111
            };
            Highcharts c1 = new Highcharts("chart")
                            .InitChart(new Chart {
                Type = ChartTypes.Spline
            })
                            .SetTitle(new Title {
                Text = "Chart with decimal values"
            })
                            .SetXAxis(new XAxis
            {
                Categories = new[] { "Monday", "Tuesday", "Wednesday", "Thursday", "Friday" }
            })
                            .SetSeries(new Series
            {
                Data = new DotNet.Highcharts.Helpers.Data(values.Select(x => (object)x).ToArray())
            });



            var charts = new ChartsModel
            {
                Chart1 = chart,
                Chart2 = c1
            };


            return(View(charts));
        }
예제 #18
0
 public ActionResult Charts()
 {
     ViewBag.Message = "Your contact page.";
     CM = new ChartsModel(Startup.DeviceList.Devices.Find(x => x.name == UserManager.FindById(User.Identity.GetUserId()).DeviceName));
     return(View());
 }
예제 #19
0
        public ActionResult GenerateGraph(ChartsModel model)
        {
            model = model ?? new ChartsModel();

            var to       = model.To.Date;
            var from     = model.From.Date;
            var grouping = model.Grouping;

            var providers = GetPossibleProviders().Where(x => model.Graphs.Contains(x.Name));

            var series = new List <GraphSeries>();

            foreach (var prov in providers)
            {
                var data = MemCache.GetCached($"chart_{prov.Title}_{from}_{to}", () => GraphPoint.FillHoles(prov.GetDailyValues(from, to), from, to).ToList(), 3600 * 24);


                if (grouping > 1)
                {
                    data =
                        data.GroupBy(x => (int)x.Day.Subtract(from).TotalDays / grouping)
                        .Select(x => new GraphPoint()
                    {
                        Day = x.First().Day, Value = x.Average(y => y.Value)
                    })
                        .ToList();
                }

                series.Add(new GraphSeries()
                {
                    Title = prov.Title, Data = data
                });
            }


            if (model.Normalize)
            {
                foreach (var s in series)
                {
                    var min = s.Data.Min(x => x.Value);
                    var max = s.Data.Max(x => x.Value);

                    foreach (var d in s.Data)
                    {
                        d.Value = 100.0 * (d.Value - min) / (max - min);
                    }
                }
            }

            // TODO: convert this to System.Web.UI.DataVisualization.Charting  (which this thing is internally using)

            var chart = new Chart(1500, 700, ChartTheme.Blue);

            chart.AddTitle(string.Join(", ", providers.Select(x => x.Name)));
            chart.AddLegend("Daily values", "l");
            var graphType = "Line";

            foreach (var s in series)
            {
                chart.AddSeries(s.Title,
                                graphType,
                                xValue: s.Data.Select(x => x.Day.Date.ToString("d")).ToList(),
                                yValues: s.Data.Select(y => y.Value).ToList(),
                                legend: "l");
            }

            return(File(chart.GetBytes("png"), "image/png"));
        }
예제 #20
0
        //get
        public ActionResult Index(graphViewModel model, string fromDate, string toDate)
        {
            var user        = User.Identity;
            var UserManager = new UserManager <ApplicationUser>(new UserStore <ApplicationUser>(context));
            var s           = UserManager.GetRoles(user.GetUserId());

            if (s[0].ToString() == "Employee")
            {
                return(RedirectToAction("Index_nonadmin", "Home"));
            }
            var dateCriteria = DateTime.Now.Date.AddDays(-7);
            //save all dates string into this array
            List <DateTime> allDates = new List <DateTime>();

            for (DateTime date = dateCriteria; date <= DateTime.Now; date = date.AddDays(1))
            {
                allDates.Add(date);
            }

            ViewBag.fromDate = fromDate;
            ViewBag.toDate   = toDate;
            var coa_arr         = (from m in db.coas where m.Recipient_Type != "USED" select m).ToArray();
            var s1_windows      = (from m in coa_arr where m.location == "wcoa_s1" select m).ToArray();
            var s1_office       = (from n in coa_arr where n.location == "ocoa_s1" select n).ToArray();
            var s2_windows      = (from m in coa_arr where m.location == "wcoa_s2" select m).ToArray();
            var s2_office       = (from n in coa_arr where n.location == "ocoa_s2" select n).ToArray();
            int w_g360_count_s1 = 0;
            int w_ts_count_s1   = 0;
            int w_mar_count_s1  = 0;
            int o_g360_count_s1 = 0;
            int o_ts_count_s1   = 0;
            int o_mar_count_s1  = 0;
            int w_g360_count_s2 = 0;
            int w_ts_count_s2   = 0;
            int w_mar_count_s2  = 0;
            int o_g360_count_s2 = 0;
            int o_ts_count_s2   = 0;
            int o_mar_count_s2  = 0;

            foreach (var coa in s1_windows)
            {
                switch (coa.Recipient_Organization_Name)
                {
                case "Good360":
                    w_g360_count_s1 += 1;
                    break;

                case "TechSoup.org":
                    w_ts_count_s1 += 1;
                    break;

                case "Interconnection":
                    w_mar_count_s1 += 1;
                    break;
                }
            }
            foreach (var coa in s1_office)
            {
                switch (coa.Recipient_Organization_Name)
                {
                case "Good360":
                    o_g360_count_s1 += 1;
                    break;

                case "TechSoup.org":
                    o_ts_count_s1 += 1;
                    break;

                case "Interconnection":
                    o_mar_count_s1 += 1;
                    break;
                }
            }
            foreach (var coa2 in s2_windows)
            {
                switch (coa2.Recipient_Organization_Name)
                {
                case "Good360":
                    w_g360_count_s2 += 1;
                    break;

                case "TechSoup.org":
                    w_ts_count_s2 += 1;
                    break;

                case "Interconnection":
                    w_mar_count_s2 += 1;
                    break;
                }
            }
            foreach (var coa2 in s2_office)
            {
                switch (coa2.Recipient_Organization_Name)
                {
                case "Good360":
                    o_g360_count_s2 += 1;
                    break;

                case "TechSoup.org":
                    o_ts_count_s2 += 1;
                    break;

                case "Interconnection":
                    o_mar_count_s2 += 1;
                    break;
                }
            }
            ViewBag.w_g360_count_s1 = w_g360_count_s1;
            ViewBag.w_g360_count_s2 = w_g360_count_s2;
            ViewBag.o_g360_count_s1 = o_g360_count_s1;
            ViewBag.o_g360_count_s2 = o_g360_count_s2;
            ViewBag.w_ts_count_s1   = w_ts_count_s1;
            ViewBag.w_ts_count_s2   = w_ts_count_s2;
            ViewBag.o_ts_count_s1   = o_ts_count_s1;
            ViewBag.o_ts_count_s2   = o_ts_count_s2;
            ViewBag.w_mar_count_s1  = w_mar_count_s1;
            ViewBag.w_mar_count_s2  = w_mar_count_s2;
            ViewBag.o_mar_count_s1  = o_mar_count_s1;
            ViewBag.o_mar_count_s2  = o_mar_count_s2;

            if (ViewBag.fromDate != null)
            {
                DateTime end;
                DateTime begin = DateTime.Parse(fromDate);
                if (toDate == "")
                {
                    end = begin.AddDays(1).AddTicks(-1);
                }
                else
                {
                    end = DateTime.Parse(toDate);
                }

                var fromandto = (from m in db.production_log where m.time > begin && m.time < end && m.location.Contains("Station 1") select m.time).ToArray();

                var fromandto2 = (from m in db.production_log where m.time > begin && m.time < end && m.location.Contains("Station 2") select m.time).ToArray();

                process_array(fromandto, fromandto2, model, allDates);
                int count_stations = fromandto.Count() + fromandto2.Count();
                ViewBag.fromandto_total = "[" + count_stations + "] Station 1: [" + fromandto.Count() + "] Station 2: [" + fromandto2.Count() + "]";
                ViewBag.station1        = fromandto.Count();
                ViewBag.station2        = fromandto2.Count();
                ViewBag.total           = count_stations;
            }
            else
            {
                DateTime startDateTime = DateTime.Today; //Today at 00:00:00
                DateTime endDateTime   = DateTime.Today.AddDays(1).AddTicks(-1);

                var pallet = (from t in db.production_log
                              where (t.time >= startDateTime && t.time <= endDateTime) && t.location.Contains("Station 2")
                              select t.time).ToArray();


                //int result = pallet.Count();
                var pallet2 = (from t in db.production_log
                               where (t.time >= startDateTime && t.time <= endDateTime) && t.location.Contains("Station 1")
                               select t.time).ToArray();

                process_array(pallet2, pallet, model, allDates);

                ViewBag.today_total = "Station 1: [" + pallet2.Count() + "] Station 2: [" + pallet.Count() + "]";
                ViewBag.station1    = pallet2.Count();
                ViewBag.station2    = pallet.Count();
                ViewBag.total       = pallet.Count() + pallet2.Count();
            }
            Highcharts  discovery_data = discover_weekly_graph(model, allDates);
            Highcharts  chartColumn    = lastweek_graph(model, allDates);
            ChartsModel charts         = new ChartsModel();

            charts.Chart3         = chartColumn;
            charts.Chart2         = discovery_data;
            ViewBag.weekGrahp     = lastweek_graph(model, allDates);
            ViewBag.dis_weekGrahp = discover_weekly_graph(model, allDates);
            ViewBag.Model         = set_graph(model);

            return(View(charts));
            // return View();
        }
예제 #21
0
        // GET: Charts
        public ActionResult Index()
        {
            Session["Url"] = Request.RawUrl;
            ChartsModel model = new ChartsModel();

            model.Charts = new List <Highcharts>();

            var tmp = td.getTrienKhai(Session["year"].ToString(), DateTime.Parse(Session["date"].ToString()), Session["donvi"] == null ? "" : Session["donvi"].ToString()).FirstOrDefault();

            string[]     categories = { "Tổng số", "Chưa triển khai", "Đã triển khai" };
            const string NAME       = "Cuộc kiểm toán";
            Data         data       = new Data(new[]
            {
                new Point
                {
                    Y     = tmp.TongSo,
                    Color = Color.FromArgb(66, 139, 202)
                },
                new Point
                {
                    Y     = tmp.ChuaTrienKhai,
                    Color = Color.FromArgb(217, 83, 79)
                },
                new Point
                {
                    Y         = tmp.DaTrienKhai,
                    Color     = Color.FromArgb(240, 173, 78),
                    Drilldown = new Drilldown
                    {
                        Name       = "Chrome versions",
                        Categories = new[] { "Chưa kết thúc", "Đã kết thúc" },
                        Data       = new Data(new object[] { tmp.ChuaKetThuc, tmp.DaKetThuc }),
                        Color      = Color.FromArgb(240, 173, 78)
                    }
                }
            });

            model.Charts.Add(ColDrillDown("chart", categories, NAME, data));
            var s = new Series
            {
                Type = ChartTypes.Pie,
                Name = "Cuộc kiểm toán",
                Data = new Data(new object[] {
                    new Point {
                        Name = "Chưa triển khai", Y = tmp.ChuaTrienKhai, Color = Color.FromArgb(217, 83, 79)
                    },
                    new Point {
                        Name = "Đã triển khai", Y = tmp.DaTrienKhai, Color = Color.FromArgb(240, 173, 78)
                    }
                })
            };

            model.Charts.Add(PieChart("chart1", s));
            categories = new[] { "Đã kết thúc", "Đã trình duyệt BCKT", "Đã xét duyệt BCKT", "Đơn vị đã trình PHBCKT", "Vụ TH đã trình PHBCKT", "Đã phát hành BCKT" };
            var tmp2 = td.getPhatHanh(Session["year"].ToString(), DateTime.Parse(Session["date"].ToString()), Session["donvi"] == null ? "" : Session["donvi"].ToString()).FirstOrDefault();

            Series[] colData = new[] {
                new Series {
                    Name = "", Data = new Data(new object[] { tmp2.dakt, tmp2.datrinhbc, tmp2.daduyetbc, tmp2.dvtrinhph, tmp2.thtrinhph, tmp2.ktnnph })
                }
            };

            model.Charts.Add(ColChart1("chart2", categories, colData).SetOptions(new GlobalOptions
            {
                Colors = new System.Drawing.Color[] { Color.FromArgb(92, 184, 92), Color.FromArgb(240, 173, 78), Color.FromArgb(217, 83, 79) }
            }));
            return(View(model));
        }
예제 #22
0
 private ChartsModel GetChartsModel(ChartsModel model, MenuBO item, int indexx)
 {
     if (indexx == 0)
     {
         if ((ChartType)item.GraphicsType != ChartType.Detalles)
         {
             model.ModelDef1.Name     = item.Title;
             model.ModelDef1.Model    = Grapher.GetGraphic(item);
             model.ModelDef1.isDetail = false;
         }
         else
         {
             model.ModelDef1.Name     = item.Title;
             model.ModelDef1.Detail   = Grapher.GetDatatailsDs(item);
             model.ModelDef1.isDetail = true;
             Session["Cars1"]         = Util.AddGridView(model.ModelDef1.Detail);
         }
     }
     else if (indexx == 1)
     {
         if ((ChartType)item.GraphicsType != ChartType.Detalles)
         {
             model.ModelDef2.Name     = item.Title;
             model.ModelDef2.Model    = Grapher.GetGraphic(item);
             model.ModelDef2.isDetail = false;
         }
         else
         {
             model.ModelDef2.Name     = item.Title;
             model.ModelDef2.Detail   = Grapher.GetDatatailsDs(item);
             model.ModelDef2.isDetail = true;
             Session["Cars2"]         = Util.AddGridView(model.ModelDef2.Detail);
         }
     }
     else if (indexx == 2)
     {
         if ((ChartType)item.GraphicsType != ChartType.Detalles)
         {
             model.ModelDef3.Name     = item.Title;
             model.ModelDef3.Model    = Grapher.GetGraphic(item);
             model.ModelDef3.isDetail = false;
         }
         else
         {
             model.ModelDef3.Name     = item.Title;
             model.ModelDef3.Detail   = Grapher.GetDatatailsDs(item);
             model.ModelDef3.isDetail = true;
             Session["Cars3"]         = Util.AddGridView(model.ModelDef3.Detail);
         }
     }
     else
     {
         if ((ChartType)item.GraphicsType != ChartType.Detalles)
         {
             model.ModelDef4.Name     = item.Title;
             model.ModelDef4.Model    = Grapher.GetGraphic(item);
             model.ModelDef4.isDetail = false;
         }
         else
         {
             model.ModelDef4.Name     = item.Title;
             model.ModelDef4.Detail   = Grapher.GetDatatailsDs(item);
             model.ModelDef4.isDetail = true;
             Session["Cars4"]         = Util.AddGridView(model.ModelDef4.Detail);
         }
     }
     return(model);
 }