예제 #1
0
 private void CreatePieChart()
 {
     pie = new PieChartModel(Repository);
     PieGraph.Children.Add(pie.PieGraph);
     LegendEntryGrid.Children.Add(pie.LegendEntry);
     PieGraphLabel.Content = pie.PieGraphLabel.Content;
 }
예제 #2
0
        // Pie Chart Ajax
        public async Task <ActionResult> GetPieChart(PieChartModel model)
        {
            try
            {
                db = new ChartsDatabaseManager();
                var result = await db.GetPieChartMeters(model.Ids, model.From, model.To, model.period);

                return(Json(result, JsonRequestBehavior.AllowGet));
            }
            catch (Exception ex)
            {
                return(Json(ex, JsonRequestBehavior.AllowGet));
            }
        }
예제 #3
0
        public PieChartModel GetPieChartData()
        {
            PieChartModel model = new PieChartModel();

            using (var context = new LuxoftDBEntities1())
            {
                model.TotalCount = context.employees.Count();
                var Employees = (from employee in context.employees
                                 where employee.deactivaed == false
                                 select employee
                                 );
                model.ActiveCount   = Employees.Count();
                model.InActiveCount = model.TotalCount - model.ActiveCount;
            }
            return(model);
        }
예제 #4
0
        public JsonChartData GetJsonChartData(PieChartModel typesPieData, PieChartModel statusPieData, LineChartModel activityLineData)
        {
            JsonChartData json = new JsonChartData();

            json.typePieValues      = JsonSerializer.Serialize(typesPieData.Values);
            json.typePieLabels      = JsonSerializer.Serialize(typesPieData.Labels);
            json.typePieColors      = JsonSerializer.Serialize(typesPieData.Colors);
            json.statusPieValues    = JsonSerializer.Serialize(statusPieData.Values);
            json.statusPieLabels    = JsonSerializer.Serialize(statusPieData.Labels);
            json.statusPieColors    = JsonSerializer.Serialize(statusPieData.Colors);
            json.activityLineValues = JsonSerializer.Serialize(activityLineData.Values);
            json.activityLineLabels = JsonSerializer.Serialize(activityLineData.Labels);


            return(json);
        }
예제 #5
0
        public async Task <PieChartModel> Overall()
        {
            var result = await GetRequests();

            var sms   = result.Where(x => x.Gateway.ServiceCode == ServiceCode.Sms).Sum(x => x.Recipients);
            var email = result.Where(x => x.Gateway.ServiceCode == ServiceCode.Email).Sum(x => x.Recipients);

            var data = new PieChartModel()
            {
                Totals = new List <int> {
                    sms, email
                }
            };

            return(data);
        }
예제 #6
0
        public void CreateExpanderView()
        {
            expanderModels = new List <ExpanderModel>();
            if (ExpanderStack.Children.Count == 0)
            {
                var listCategories = Repository.GetCategories();
                var slices         = new PieChartModel(Repository).slices;

                foreach (var item in listCategories)
                {
                    var expander = new ExpanderModel(item, MatchColor(item, slices), Repository);
                    expanderModels.Add(expander);

                    ExpanderStack.Children.Add(expander.Expander);
                }
            }
        }
예제 #7
0
        public async Task <PieChartModel> GetTypePieChartData()
        {
            PieChartModel pieChart = new PieChartModel();
            var           labels   = new List <string>();
            var           values   = new List <int>();
            var           colors   = new List <string>();

            var groups = await _ctx.Issues
                         .Include(i => i.Type)
                         .Where(i => (i.ProjectId == ProjectId) && (i.StatusId != 6))
                         .GroupBy(i => i.TypeId)
                         .Select(group => new { group.Key, Count = group.Count() })
                         .ToListAsync();

            var types = await _ctx.Types
                        .Where(t => t.ProjectId == ProjectId || t.ProjectId == 0)
                        .Select(t => new { t.Id, t.Name, t.Color })
                        .ToListAsync();


            foreach (var group in groups)
            {
                foreach (var type in types)
                {
                    if (group.Count == 0)
                    {
                        continue;
                    }
                    if (type.Id == group.Key)
                    {
                        labels.Add(type.Name);
                        values.Add(group.Count);
                        colors.Add(type.Color);
                    }
                }
            }

            pieChart.Labels = labels;
            pieChart.Values = values;
            pieChart.Colors = colors;

            return(pieChart);
        }
예제 #8
0
        public async Task <PieChartModel> Overall()
        {
            var loans    = this.GetLoans().Result.Sum(x => x.Amount);
            var refunds  = this.GetRefunds().Result.Sum(x => x.Amount);
            var interest = refunds - loans;
            var result   = await this.GetDeposits();

            var deposits    = result.Where(x => x.TransactionCode == TransactionCode.Deposit).Sum(x => x.Amount);
            var withdrawals = result.Where(x => x.TransactionCode == TransactionCode.Withdrawal).Sum(x => x.Amount);
            var fee         = result.Where(x => x.TransactionCode == TransactionCode.Fee).Sum(x => x.Amount);
            var total       = interest + fee;
            var incomes     = (total > 0) ? total : 0;

            var data = new PieChartModel()
            {
                Totals = new List <int> {
                    deposits, withdrawals, loans, incomes
                }
            };

            return(data);
        }
예제 #9
0
 public PieChart()
 {
     InitializeComponent();
     DataContext = new PieChartModel();
 }
예제 #10
0
 private void Window_Loaded(object sender, RoutedEventArgs e)
 {
     PieChart = new PieChartModel();
     Test     = new TestModel();
     LabelChange(MainWindow.repository.Verbs.Count());
 }
예제 #11
0
        public ActionResult GetAlarmClassData(FilterForAlarmDetail filter)
        {
            List <string>        BarLabels = new List <string>();
            List <double>        BarData   = new List <double>();
            List <PieChartModel> PieData   = new List <PieChartModel>();

            using (ANDONEntities entities = new ANDONEntities())
            {
                var alarm_edits = entities.Alarm_edit.Where(t => t.Delete_flag == false);
                if (filter.Start_time != null && filter.End_time != null)
                {
                    DateTime startTime = Convert.ToDateTime(filter.Start_time);
                    DateTime endTime   = Convert.ToDateTime(filter.End_time);
                    alarm_edits = alarm_edits.Where(t => t.Start_time >= startTime && t.End_time <= endTime);
                }
                if (!String.IsNullOrEmpty(filter.Alarm_area) && !(filter.Alarm_area == "全部"))
                {
                    alarm_edits = alarm_edits.Where(t => t.Alarm_area == filter.Alarm_area);
                }
                if (!String.IsNullOrEmpty(filter.Division_of_respon) && !(filter.Division_of_respon == "全部"))
                {
                    alarm_edits = alarm_edits.Where(t => t.Division_of_respon == filter.Division_of_respon);
                }
                if (!String.IsNullOrEmpty(filter.Responsible) && !(filter.Responsible == "全部"))
                {
                    alarm_edits = alarm_edits.Where(t => t.Responsible == filter.Responsible);
                }
                if (!String.IsNullOrEmpty(filter.Recorder))
                {
                    alarm_edits = alarm_edits.Where(t => t.Recorder.Contains(filter.Recorder));
                }

                int totalCount = alarm_edits.Count();

                var responsibleGroup = alarm_edits.GroupBy(t => t.Responsible).OrderByDescending(t => t.Count());
                int counter          = 0;
                //double totalRatio = 0;
                int barOtherCount = 0;
                foreach (IGrouping <string, Alarm_edit> item in responsibleGroup)
                {
                    if (counter == 9)
                    {
                        break;
                    }
                    int count = item.Count();
                    if (string.IsNullOrEmpty(item.Key))
                    {
                        BarLabels.Add("空");
                    }
                    else
                    {
                        BarLabels.Add(item.Key);
                    }
                    //double ratio = ((double)a / (double)totalCount) * 100;
                    //totalRatio += ratio;
                    //ratio=Math.Round(ratio, 2);
                    barOtherCount = totalCount - barOtherCount;
                    BarData.Add(count);
                    counter++;
                }
                BarLabels.Add("其他");
                //BarData.Add(Math.Round(100 - totalRatio, 2));
                BarData.Add(totalCount - barOtherCount);

                counter = 0;
                int otherCount = 0;
                var DGroup     = alarm_edits.GroupBy(t => t.Division_of_respon).Select(t => (new { name = t.Key, count = t.Count() })).OrderByDescending(t => t.count);
                foreach (var item in DGroup)
                {
                    if (counter == 9)
                    {
                        break;
                    }
                    string name = "";
                    if (string.IsNullOrEmpty(item.name))
                    {
                        name = "空";
                    }
                    else
                    {
                        name = item.name;
                    }
                    PieChartModel model = new PieChartModel {
                        name = name, value = item.count
                    };
                    PieData.Add(model);
                    otherCount += item.count;
                    counter++;
                }
                PieChartModel pModel = new PieChartModel {
                    name = "其他", value = totalCount - otherCount
                };
                PieData.Add(pModel);
            }

            return(Json(new
            {
                BarLabels = BarLabels,
                BarData = BarData,
                PieData = PieData
            }
                        , JsonRequestBehavior.AllowGet));
        }
예제 #12
0
        public ActionResult ChartDemo()
        {
            var strfrom = "/upload/abc.mp4";
            var strnew = "/upload/ab.flv";
            var widthandheight = "480x360";
            var info = VideoConvertFlv(strfrom, strnew, widthandheight);
            Response.Write(info);
            var html = MakeFlvHtml("upload/ab.flv", 200, 100);
            Response.Write(html);
            var chartModels = new List<ChartModel>();

            var toPayChart = new PieChartModel
            {
                Name = "2012年应付金额",
                Data = new List<decimal> { 200, 500, 300, 400, 150 },
                Legends = new List<string> { "服装费", "住宿费", "取暖费", "能源费", "通讯费" },
                Width = 600, //Optional
                Height = 600 //Optional
            };
            chartModels.Add(toPayChart);

            var barChart = new BarChartModel
            {
                Name = "2012年销售",
                GroupNames = new List<string> { "Q1", "Q2", "Q3", "Q4" },
                ColLegends = new List<string> { "苹果", "香蕉" },
                Width = 800, //Optional
                Height = 400 //Optional
            };

            barChart.Add(new List<decimal> { 10, 12 });
            barChart.Add(new List<decimal> { 11, 15 });
            barChart.Add(new List<decimal> { 5, 6 });
            barChart.Add(new List<decimal> { 5, 7 });

            chartModels.Add(barChart);

            ViewData["Chart"] = chartModels.ToHtml();
            return View();
        }