Пример #1
0
        protected void Page_Load(object sender, EventArgs e)
        {
            if (this.IsPostBack == false)
            {
                BarChartResult chartResult = new BarChartResult();
                BarChartData   seriesData  = new BarChartData();
                string         whID        = Request.QueryString["whID"];


                if (string.IsNullOrEmpty(whID) == true)
                {
                    return;
                }

                List <WHMatAmount> list = new MatStockStateBLL().GetMatStockListByWH(whID);

                chartResult.XAxisData = new List <string>();
                chartResult.Series    = new List <BarChartData>();
                seriesData.data       = new List <decimal>();

                foreach (WHMatAmount item in list)
                {
                    if (chartResult.XAxisData.IndexOf(item.MatName) < 0)
                    {
                        chartResult.XAxisData.Add(item.MatName);
                    }
                    seriesData.data.Add(item.MainAmount);
                }

                chartResult.Series.Add(seriesData);

                this.hiChartData.Value = LAF.Common.Serialization.JsonConvertHelper.GetSerializes(chartResult);
            }
        }
Пример #2
0
        //
        // GET: /DKLManager/ProjectChart/
        public ActionResult Index()
        {
            var model = new BarChartData();

            BarDatasets bardataSet = new BarDatasets();

            bardataSet.fillColor       = "rgba(220,220,220,0.5)";
            bardataSet.strokeColor     = "rgba(220,220,220,0.8)";
            bardataSet.highlightFill   = "rgba(220,220,220,0.75)";
            bardataSet.highlightStroke = "rgba(220,220,220,1)";
            bardataSet.data.Add(12);
            bardataSet.data.Add(58);
            bardataSet.data.Add(63);
            bardataSet.data.Add(67);
            bardataSet.data.Add(81);

            model.lables.Add("一月份");
            model.lables.Add("二月份");
            model.lables.Add("三月份");
            model.lables.Add("四月份");
            model.lables.Add("五月份");
            model.dataset.Add(bardataSet);


            return(View(model));
        }
        public async Task <IActionResult> BarChartCategory(int categoryId)
        {
            var user = await _userManager.GetUserAsync(User);

            int nrUserTests       = _context.Tests.Where(t => t.UserId == user.Id).Where(c => c.CategoryId == categoryId).Count();
            int nrUserPassedTests = _context.Tests.Where(t => t.UserId == user.Id).Where(t => t.Passed == true).Where(c => c.CategoryId == categoryId).Count();


            BarChartDataSet dataset = new BarChartDataSet()
            {
                data            = new int[] { nrUserTests, nrUserPassedTests },
                backgroundColor = new string[] { "#7195A3",
                                                 "#8FB258" },
                borderColor = new string[] { "#7195A3",
                                             "#8FB258" },
                borderWidth = 2
            };

            BarChartData data = new BarChartData()
            {
                labels   = new string[] { "Numarul de examene", "Numarul de teste trecute" },
                datasets = new BarChartDataSet[] { dataset }
            };

            return(Json(data));
        }
Пример #4
0
        // GET: Charts
        public JsonResult GetCategoryChartData()
        {
            var dataVM = new CatDataVM();

            var householdId = db.Users.Find(User.Identity.GetUserId()).HouseholdId;

            foreach (var category in db.Categories.Where(c => c.HouseholdId == householdId).ToList())
            {
                //Now that I have a Category I need all the category Items
                var catData = new BarChartData
                {
                    Name   = category.Name,
                    Target = category.TargetAmount,
                };



                foreach (var item in db.Categories.Find(category.Id).CategoryItems.ToList())
                {
                    var transactions = db.Transactions.Where(t => t.CategoryItemId == item.Id).ToList();

                    if (transactions.Count > 0)
                    {
                        catData.Actual += transactions.Sum(t => t.Amount);
                    }
                }

                dataVM.Data.Add(catData);
            }
            dataVM.Labels.AddRange(new List <string> {
                "Name", "Target", "Actual"
            });
            return(Json(dataVM));
        }
        public JsonResult GetShipmentStatusYearlyChart(string Selectyear)
        {
            var cs  = "Host=qa-datalake-pg.cluster-ctg0nvlybzpq.ap-southeast-1.rds.amazonaws.com; Username =liluna_datalake; Password =Liluna@SCGL; Database =pd_datalake";
            var con = new NpgsqlConnection(cs);

            con.Open();
            var sql             = "select * from dom.\"Reporting_YearlySummary_ShipmentStatus\"";
            var cmd             = new NpgsqlCommand(sql, con);
            NpgsqlDataReader dr = cmd.ExecuteReader();

            List <string> lsLabel   = new List <string>();
            List <double> lsSMTotal = new List <double>();

            List <string> lsbgcolorSMTotal = new List <string>();
            List <string> lsbdcolorSMTotal = new List <string>();

            string c1 = "rgba(255, 99, 132, 0.2)";
            string c2 = "rgba(54, 162, 235, 0.2)";
            string c3 = "rgba(255, 206, 86, 0.2)";
            string c4 = "rgba(75, 192, 192, 0.2)";
            string c5 = "rgba(153, 102, 255, 0.2)";
            string c6 = "rgba(255, 159, 64, 0.2)";

            while (dr.Read())
            {
                lsLabel.Add(dr[2].ToString());
                if (!string.IsNullOrEmpty(dr[1].ToString()))
                {
                    lsSMTotal.Add(Convert.ToInt32(dr[1].ToString()));
                }

                //set color
                lsbgcolorSMTotal.Add(c1);
                lsbdcolorSMTotal.Add(c1);
            }

            //Mock the data
            BarChartDataSet datasetSMTotal = new BarChartDataSet()
            {
                type            = "bar",
                label           = "All Shipment",
                data            = lsSMTotal.ToArray(),
                backgroundColor = lsbgcolorSMTotal.ToArray(),
                borderColor     = lsbdcolorSMTotal.ToArray(),
                borderWidth     = 1
            };

            BarChartData data = new BarChartData()
            {
                labels   = lsLabel.ToArray(),
                datasets = new BarChartDataSet[] { datasetSMTotal }
            };

            var jsonResult = Json(data);

            jsonResult.MaxJsonLength = int.MaxValue;

            return(jsonResult);
        }
        protected override void OnAppearing()
        {
            base.OnAppearing();

            var entries  = new List <EntryChart>();
            var entries2 = new List <EntryChart>();
            var labels   = new List <string>();

            Random random = new Random();

            for (int i = 0; i < 8; i++)
            {
                entries.Add(new EntryChart(i, random.Next(20)));
                entries2.Add(new EntryChart(i, random.Next(20)));
                labels.Add("Entry" + i);
            }

            var dataSet4 = new BarDataSet(entries, "Bar DataSet 1")
            {
                Colors = new List <Color>()
                {
                    Color.Accent, Color.Azure, Color.Bisque, Color.Gray, Color.Green, Color.Chocolate, Color.Black
                },
            };
            var dataSet5 = new BarDataSet(entries2, "Bar DataSet 2")
            {
                Colors = new List <Color> {
                    Color.Green
                },
            };

            var data4 = new BarChartData(new List <IBarDataSet>()
            {
                dataSet4
            });

            chart.ChartData             = data4;
            chart.DescriptionChart.Text = "Test label chart description";

            chart.AxisLeft.DrawGridLines = false;
            chart.AxisLeft.DrawAxisLine  = true;
            chart.AxisLeft.Enabled       = true;

            chart.AxisRight.DrawAxisLine  = false;
            chart.AxisRight.DrawGridLines = false;
            chart.AxisRight.Enabled       = false;

            chart.XAxis.XAXISPosition      = XAXISPosition.BOTTOM;
            chart.XAxis.DrawGridLines      = false;
            chart.XAxis.AxisValueFormatter = new TextByIndexXAxisFormatter(labels);

            chart2.ChartData = data4;
        }
Пример #7
0
        // GET: ChartData
        public JsonResult GetTicketTypeChartData()
        {
            var ticketTypes = db.TicketTypes.ToList();
            var chartData   = new BarChartData();

            foreach (var type in ticketTypes)
            {
                chartData.Labels.Add(type.Name);
                chartData.Data.Add(db.Tickets.Where(t => t.TicketTypeId == type.Id).Count());
            }

            return(Json(chartData));
        }
Пример #8
0
        public static BarChartData ElementDiffToBarChart(List <ElementDifference> elementDifferences)
        {
            BarChartData result = new BarChartData();

            result.Data   = new List <int>();
            result.Labels = new List <string>();
            foreach (var elementDifference in elementDifferences)
            {
                result.Data.Add(elementDifference.Difference);
                result.Labels.Add(elementDifference.DateTime.Date.ToString("dd.MM.yyyy"));
            }

            return(result);
        }
Пример #9
0
        public HttpResponseMessage DrawMultiBarChart()
        {
            BarChart[] charts = new BarChart[2];

            charts[0]          = new Models.BarChart();
            charts[0].name     = "set1";
            charts[0].setColor = new List <string> {
                "#004D40", "#8085e9", "#f15c80", "#e4d354", "#434348", "#90ed7d", "#f7a35c"
            };
            charts[0].points = new List <Point> {
                new Point {
                    x = "Rome", y = "11"
                }, new Point {
                    x = "London", y = "43"
                }, new Point {
                    x = "Paris", y = "167"
                }, new Point {
                    x = "Bern", y = "17"
                }
            };

            charts[1]          = new Models.BarChart();
            charts[1].name     = "set2";
            charts[1].setColor = new List <string> {
                "#7cb5ec", "#434348", "#90ed7d", "#f7a35c", "#8085e9", "#f15c80", "#e4d354"
            };
            charts[1].points = new List <Point> {
                new Point {
                    x = "Rome", y = "12"
                }, new Point {
                    x = "London", y = "24"
                }, new Point {
                    x = "Paris", y = "125"
                }, new Point {
                    x = "Bern", y = "7"
                }
            };

            BarChartData chartData = new BarChartData();

            chartData.datasets = charts;

            string json = JsonConvert.SerializeObject(chartData);

            using (JsonTextReader reader = new JsonTextReader(new StringReader(json)))
            {
                JObject o2 = (JObject)JToken.ReadFrom(reader);
                return(this.Request.CreateResponse(HttpStatusCode.OK, o2, "application/json"));
            }
        }
Пример #10
0
        /*
         * EXPORT FOR BAR
         */
        public BarChartData ExportBarData(Widget.Charts.Models.BarChart.BarChartData bubbleChartData)
        {
            var dataSetItems = new List <BarChartDataSet>();

            foreach (var item in bubbleChartData.DataSets)
            {
                var entryOriginal = item.IF_GetValues().Select(obj => new BarChartDataEntry(obj.GetXPosition(), obj.GetYPosition()));
                var dataSet       = new BarChartDataSet(entryOriginal.ToArray(), item.IF_GetLabel());
                OnIntializeDataSetBar(item, dataSet);
                dataSetItems.Add(dataSet);
            }
            var data = new BarChartData(dataSetItems.ToArray());

            return(data);
        }
Пример #11
0
        public JsonResult ProduceBarChart()
        {
            BarChartData myData = new BarChartData();

            myData.Labels = new List <string> {
                "Low", "Medium", "High", "Urgent"
            };
            BCDataSet bCData = new BCDataSet();

            bCData.Label = "Ticket Priorities";
            List <int> pIds = new List <int>();

            foreach (var priority in db.TicketPriorities.ToList())
            {
                try
                {
                    int count = db.Tickets.Where(t => t.TicketPriority.PriorityName == priority.PriorityName).Count();
                    pIds.Add(count);
                }
                catch (Exception ex)
                {
                    ex.Message.ToString();
                }
            }
            bCData.Data            = pIds;
            bCData.BackgroundColor = new List <string>
            {
                "rgba(255, 99, 132, 0.2)",
                "rgba(54, 162, 235, 0.2)",
                "rgba(255, 206, 86, 0.2)",
                "rgba(75, 192, 192, 0.2)",
                "rgba(255, 159, 64, 0.2)"
            };
            bCData.BorderColor = new List <string>
            {
                "rgba(255,99,132,1)",
                "rgba(54, 162, 235, 1)",
                "rgba(255, 206, 86, 1)",
                "rgba(75, 192, 192, 1)",
                "rgba(153, 102, 255, 1)"
            };
            bCData.BorderWidth = 1;
            List <BCDataSet> dataSet = new List <BCDataSet>();

            dataSet.Add(bCData);
            myData.DataSets = dataSet;
            return(Json(myData));
        }
        BarChartData GenerateBarData()
        {
            List <BarChartDataEntry> greenEntries  = new List <BarChartDataEntry>();
            List <BarChartDataEntry> blueEntries   = new List <BarChartDataEntry>();
            List <BarChartDataEntry> yellowEntries = new List <BarChartDataEntry>();
            List <BarChartDataEntry> orangeEntries = new List <BarChartDataEntry>();
            List <BarChartDataEntry> redEntries    = new List <BarChartDataEntry>();

            //Green
            greenEntries.Add(new BarChartDataEntry(0, 8f));
            greenEntries.Add(new BarChartDataEntry(1, 3));
            greenEntries.Add(new BarChartDataEntry(2, 1));
            greenEntries.Add(new BarChartDataEntry(3, -1));

            BarChartDataSet set1 = new BarChartDataSet(greenEntries.ToArray(), string.Empty);

            set1.DrawValuesEnabled = false;
            set1.SetColor(UIColor.Green);
            set1.ValueTextColor = UIColor.White;
            set1.ValueFont      = UIFont.SystemFontOfSize(15);
            //Blue
            blueEntries.Add(new BarChartDataEntry(3, -1f));
            blueEntries.Add(new BarChartDataEntry(4, -7f));
            blueEntries.Add(new BarChartDataEntry(5, -2f));
            blueEntries.Add(new BarChartDataEntry(6, -3f));
            blueEntries.Add(new BarChartDataEntry(7, -4f));

            BarChartDataSet set2 = new BarChartDataSet(blueEntries.ToArray(), string.Empty);

            set2.DrawValuesEnabled = false;
            set2.SetColor(UIColor.Red);
            set2.ValueTextColor = UIColor.White;
            set2.ValueFont      = UIFont.SystemFontOfSize(15);
            //Yellow

            List <IInterfaceChartDataSet> dataSets = new List <IInterfaceChartDataSet>();

            dataSets.Add(set1);
            dataSets.Add(set2);
            BarChartData barData = new BarChartData(dataSets.ToArray());

            barData.BarWidth = 0.7f;

            return(barData);
        }
Пример #13
0
        private void CompareBarChartData(BarChartData a, BarChartData b)
        {
            for (var i = 0; i < a.Labels.Count; ++i)
            {
                Assert.Equal(a.Labels[i], b.Labels[i]);
            }

            foreach (var keyValuePair in a.DoubleDatas)
            {
                Assert.True(b.DoubleDatas.ContainsKey(keyValuePair.Key));
                var bValue = b.DoubleDatas[keyValuePair.Key];
                var aValue = keyValuePair.Value;

                for (var i = 0; i < aValue.Count; ++i)
                {
                    Assert.Equal(aValue[i], bValue[i]);
                }
            }
        }
Пример #14
0
        protected override void OnInitializeChartData()
        {
            base.OnInitializeChartData();
            if (OriginalChartView != null && SupportChartView != null && SupportChartView.ChartData != null)
            {
                var dataSetItems = new List <BarChartDataSet>();

                foreach (var item in SupportChartView.ChartData.DataSets)
                {
                    var entryOriginal = item.IF_GetValues().Select(obj => new BarChartDataEntry(obj.GetXPosition(), obj.GetYPosition()));
                    var dataSet       = new BarChartDataSet(entryOriginal.ToArray(), item.IF_GetLabel());
                    OnIntializeDataSet(item, dataSet);
                    dataSetItems.Add(dataSet);
                }
                var data = new BarChartData(dataSetItems.ToArray());
                OriginalChartView.Data = data;

                OriginalChartView.ReloadInputViews();
                OriginalChartView.SetNeedsDisplay();
            }
        }
        private void InitializeChart()
        {
            if (supportChart != null && supportChart.ChartData != null && chartOriginal != null)
            {
                SupportChart.OnInitializeChart(supportChart, chartOriginal);

                var data         = supportChart.ChartData;
                var dataSetItems = new List <BarChartDataSet>();

                foreach (var itemChild in data.IF_GetDataSet())
                {
                    var             entryOriginal = itemChild.IF_GetEntry().Select(item => new iOSCharts.BarChartDataEntry(item.GetXPosition(), item.GetYPosition()));
                    BarChartDataSet lineDataSet   = new BarChartDataSet(entryOriginal.ToArray(), itemChild.IF_GetTitle());
                    lineDataSet.SetColor(itemChild.IF_GetDataColor().ToUIColor());
                    lineDataSet.DrawValuesEnabled = (itemChild.IF_GetDrawValue());
                    dataSetItems.Add(lineDataSet);
                }

                BarChartData lineData = new BarChartData(dataSetItems.ToArray());
                chartOriginal.Data = lineData;
            }
        }
Пример #16
0
        public HttpResponseMessage DrawBarChart()
        {
            BarChart[] charts = new BarChart[1];

            charts[0]          = new Models.BarChart();
            charts[0].name     = "set1";
            charts[0].setColor = new List <string> {
                "#7cb5ec", "#434348", "#90ed7d", "#f7a35c", "#8085e9", "#f15c80", "#e4d354", "#2b908f", "#f45b5b", "#91e8e1"
            };
            charts[0].points = new List <Point> {
                new Point {
                    x = "USA", y = "24"
                }, new Point {
                    x = "Fiji", y = "38"
                }, new Point {
                    x = "UK", y = "77"
                }, new Point {
                    x = "Italy", y = "17"
                }, new Point {
                    x = "PR", y = "53"
                }, new Point {
                    x = "IR", y = "19"
                }, new Point {
                    x = "India", y = "99"
                }
            };

            BarChartData chartData = new BarChartData();

            chartData.datasets = charts;

            string json = JsonConvert.SerializeObject(chartData);

            using (JsonTextReader reader = new JsonTextReader(new StringReader(json)))
            {
                JObject o2 = (JObject)JToken.ReadFrom(reader);
                return(this.Request.CreateResponse(HttpStatusCode.OK, o2, "application/json"));
            }
        }
Пример #17
0
        public ActionResult GetChartData()
        {
            DateTime      today        = DateTime.Today;
            JsonReturnObj jsonReturn   = new JsonReturnObj();
            List <string> hometownList = new List <string>()
            {
                //"Johor",
                //"Kedah",
                //"Kelantan",
                "Kuala Lumpur",
                "Labuan",
                //"Melaka",
                //"Negeri Sembilan",
                //"Pahang",
                //"Penang",
                //"Perak",
                //"Perlis",
                "Putrajaya",
                "Sabah",
                "Sarawak",
                //"Selangor",
                //"Terengganu"
            };

            try
            {
                //Get App Token
                string     appTokenURL  = $"https://graph.facebook.com/oauth/access_token?client_id={APP_ID}&client_secret={APP_SECRET}&grant_type=client_credentials";
                FBAppToken appTokenObj  = JsonConvert.DeserializeObject <FBAppToken>(WebRequestHelper.Get(appTokenURL));
                string     access_token = appTokenObj.AccessToken;

                //Get list of test users
                string testUserURL         = $"https://graph.facebook.com/v3.2/{APP_ID}/accounts/test-users?access_token={access_token}";
                string testUsersJson       = WebRequestHelper.Get(testUserURL);
                TestUserQueryResult result = JsonConvert.DeserializeObject <TestUserQueryResult>(testUsersJson);
                if (result.Error != null)
                {
                    throw new Exception(result.Error);
                }

                //Get list of test users profile
                Random rnd = new Random();
                List <TestUserProfile> userProfileList = new List <TestUserProfile>();
                foreach (TestUser user in result.TestUserList)
                {
                    string          profileURL  = $"https://graph.facebook.com/v3.2/{user.Id}/?fields=id,name,birthday,gender,hometown&access_token={user.AccessToken}";
                    TestUserProfile userProfile = JsonConvert.DeserializeObject <TestUserProfile>(WebRequestHelper.Get(profileURL));

                    char[] genderCharArray = userProfile.Gender.ToCharArray();
                    genderCharArray[0] = char.ToUpper(genderCharArray[0]);
                    userProfile.Gender = new string(genderCharArray);

                    DateTime birthday = DateTime.ParseExact(userProfile.Birthday, "MM/dd/yyyy", CultureInfo.InvariantCulture);
                    userProfile.BirthdayMYFormat = birthday.ToString("dd/MM/yyyy");
                    userProfile.Hometown         = hometownList[rnd.Next(hometownList.Count)];
                    userProfileList.Add(userProfile);
                }

                //Populate JSON data for barchart
                BarChartData   barChartData   = GetBarChartDataFromUserProfileList(userProfileList, today);
                RadarChartData radarChartData = GetRadarChartDataFromUserProfileList(userProfileList, hometownList);

                jsonReturn.BarChartData   = barChartData;
                jsonReturn.RadarChartData = radarChartData;

                jsonReturn.IsSuccess = true;
            }
            catch (Exception ex)
            {
                jsonReturn.IsSuccess = false;
                jsonReturn.ErrorMsg  = ex.Message;
            }
            return(Json(jsonReturn, "application/json"));
        }
Пример #18
0
        public static void CreateCharts(this List <Analyzer> analyzers, out BarChartData readAndWriteChartData, out PieChartData useVariable, out PieChartData useful, out BarChartData headers)
        {
            var readAndWriteChartDataHelper = new Dictionary <string, List <Variable> >();
            var headersHelper    = new Dictionary <string, HeaderHelper>();
            var usefulModified   = 0;
            var unUsefulModified = 0;

            analyzers.ForEach(analyzer =>
            {
                analyzer.AllStructs.ForEach(structs =>
                {
                    foreach (var structPair in structs)
                    {
                        if (structPair.Value == null)
                        {
                            continue;
                        }

                        StructProcess(structPair, headersHelper, readAndWriteChartDataHelper, ref usefulModified, ref unUsefulModified);
                    }
                });
            });

            readAndWriteChartData = new BarChartData();
            useVariable           = new PieChartData();
            useful = new PieChartData
            {
                Labels = new List <string> {
                    "Felhasznált", "Nem használt fel"
                },
                Datas = new List <int> {
                    usefulModified, unUsefulModified
                }
            };
            headers = new BarChartData();

            foreach (var variablePair in readAndWriteChartDataHelper)
            {
                var count = variablePair.Value.Count;
                readAndWriteChartData.Labels.Add(variablePair.Key);
                if (!readAndWriteChartData.DoubleDatas.ContainsKey("Olvasás"))
                {
                    readAndWriteChartData.DoubleDatas["Olvasás"] = new List <double>();
                    readAndWriteChartData.DoubleDatas["Írás"]    = new List <double>();
                }

                var sumRead  = variablePair.Value.Sum(x => x.Read);
                var sumWrite = variablePair.Value.Sum(x => x.Write);

                readAndWriteChartData.DoubleDatas["Olvasás"].Add(Math.Round(sumRead / (double)count, 2));
                readAndWriteChartData.DoubleDatas["Írás"].Add(Math.Round(sumWrite / (double)count, 2));

                useVariable.Labels.Add(variablePair.Key);
                useVariable.DoubleDatas.Add((sumRead + sumWrite) / (double)count);
            }

            foreach (var headerPair in headersHelper)
            {
                headers.Labels.Add(headerPair.Key);
                if (!headers.DoubleDatas.ContainsKey("Felhasználás"))
                {
                    headers.DoubleDatas["Felhasználás"]                   = new List <double>();
                    headers.DoubleDatas["Változóinak mérete"]             = new List <double>();
                    headers.DoubleDatas["Felhasznált változóinak mérete"] = new List <double>();
                }

                var headerHelper = headerPair.Value;

                headers.DoubleDatas["Felhasználás"].Add(Math.Round(headerHelper.Use / (double)headerHelper.Count, 2));
                headers.DoubleDatas["Változóinak mérete"].Add(Math.Round(headerHelper.VariablesSize / (double)headerHelper.Count, 2));
                headers.DoubleDatas["Felhasznált változóinak mérete"].Add(Math.Round(headerHelper.VariableUsefulSize / (double)headerHelper.Count, 2));
            }
        }
Пример #19
0
        private BarChartData GetBarChartDataFromUserProfileList(List <TestUserProfile> userProfileList, DateTime today)
        {
            BarChartData            barChartData = new BarChartData();
            List <BarChartUserData> userDataList = new List <BarChartUserData>();

            foreach (TestUserProfile userProfile in userProfileList)
            {
                BarChartUserData userData = new BarChartUserData();

                DateTime birthday = DateTime.ParseExact(userProfile.Birthday, "MM/dd/yyyy", CultureInfo.InvariantCulture);
                int      age      = today.Year - birthday.Year;
                if (birthday.AddYears(age) > today)
                {
                    age--;
                }

                string gender = userProfile.Gender;

                // Check if gender already in list
                BarChartUserData obj = userDataList.FirstOrDefault(item => item.Gender == gender);
                if (obj == null)
                {
                    userData.Gender = gender;
                    List <TestUserProfile> innerUserProfileList = new List <TestUserProfile>();
                    innerUserProfileList.Add(userProfile);

                    userData.InnerData = new List <BarChartInnerData>
                    {
                        new BarChartInnerData
                        {
                            Count       = 1,
                            Age         = age,
                            ProfileList = innerUserProfileList
                        }
                    };
                    userDataList.Add(userData);
                }
                else
                {
                    // Check if age already in list
                    BarChartInnerData innerObj = obj.InnerData.FirstOrDefault(item => item.Age == age);
                    if (innerObj == null)
                    {
                        List <TestUserProfile> innerUserProfileList = new List <TestUserProfile>();
                        innerUserProfileList.Add(userProfile);

                        obj.InnerData.Add(new BarChartInnerData
                        {
                            Count       = 1,
                            Age         = age,
                            ProfileList = innerUserProfileList
                        });
                    }
                    else
                    {
                        innerObj.Count += 1;
                        innerObj.ProfileList.Add(userProfile);
                    }
                }
            }

            int minAge = userDataList.Min(item => item.InnerData.Min(innerData => innerData.Age));
            int maxAge = userDataList.Max(item => item.InnerData.Max(innerData => innerData.Age));

            foreach (BarChartUserData returnData in userDataList)
            {
                for (int i = minAge; i < maxAge + 1; i++)
                {
                    if (returnData.InnerData.FirstOrDefault(item => item.Age == i) == null)
                    {
                        returnData.InnerData.Add(new BarChartInnerData
                        {
                            Age   = i,
                            Count = 0
                        });
                    }
                    returnData.InnerData = returnData.InnerData.OrderBy(item => item.Age).ToList();
                }
            }
            userDataList = userDataList.OrderByDescending(item => item.Gender).ToList();

            // Generate Schema
            foreach (BarChartUserData outerData in userDataList)
            {
                foreach (BarChartInnerData innerData in outerData.InnerData)
                {
                    innerData.GenerateUserProfileSchema();
                }
            }

            barChartData.MinAge   = minAge;
            barChartData.MaxAge   = maxAge;
            barChartData.UserList = userDataList;

            return(barChartData);
        }
Пример #20
0
        public override UICollectionViewCell GetCell(UICollectionView collectionView, NSIndexPath indexPath)
        {
            var resultCell = collectionView.DequeueReusableCell(ResultViewController.resultCellId, indexPath) as ResultCollectionViewCell;

            resultCell.BackgroundColor = UIColor.White;

            var reportDataSet = this.reportsDatasets[indexPath.Row];

            if (ReportType.Overall.Equals(reports[indexPath.Row]))
            {
                resultCell.sectionLabel.Text = reports[indexPath.Row].ToString();

                if (reportDataSet.totalVotes > 0)
                {
                    var dataEntries = new List <PieChartDataEntry>();
                    for (int i = 0; i < reportDataSet.dataSets[0].Count; i++)
                    {
                        if (Convert.ToInt32(reportDataSet.dataSets[0][i]) > 0)
                        {
                            dataEntries.Add(new PieChartDataEntry(reportDataSet.dataSets[0][i], reportDataSet.labels[i]));
                        }
                    }

                    var dataSet = new PieChartDataSet(dataEntries.ToArray(), "");

                    dataSet.ValueFormatter = new ChartDefaultValueFormatter(new NSNumberFormatter()
                    {
                        MinimumFractionDigits = 0
                    });
                    dataSet.SliceSpace = 2;
                    //dataSet.Colors = ChartColorTemplates.Joyful;
                    dataSet.Colors          = this.chartColors.ToArray();
                    dataSet.ValueTextColor  = UIColor.FromRGB(90, 89, 89);
                    dataSet.ValueLineColor  = UIColor.FromRGB(90, 89, 89);
                    dataSet.EntryLabelColor = UIColor.FromRGB(90, 89, 89);
                    dataSet.XValuePosition  = PieChartValuePosition.OutsideSlice;
                    dataSet.YValuePosition  = PieChartValuePosition.OutsideSlice;

                    resultCell.pieChartView.Data = new PieChartData(new PieChartDataSet[] { dataSet });
                }

                resultCell.pieChartView.AnimateWithXAxisDuration(1.4, ChartEasingOption.EaseOutBack);
                resultCell.pieChartView.ChartDescription.Text = "";
                var colorAttributes = new UIStringAttributes
                {
                    ForegroundColor = UIColor.FromRGB(90, 89, 89)
                };
                resultCell.pieChartView.CenterAttributedText = new NSAttributedString(string.Format("Total {0} votes", reportDataSet.totalVotes, colorAttributes));
                resultCell.pieChartView.Legend.Enabled       = false;
                resultCell.pieChartView.NoDataText           = "No results to show";

                resultCell.AddSubview(resultCell.pieChartView);

                resultCell.AddConstraints(NSLayoutConstraint.FromVisualFormat("H:|[v0]|", new NSLayoutFormatOptions(), "v0", resultCell.pieChartView));
                resultCell.AddConstraints(NSLayoutConstraint.FromVisualFormat("V:|[v0(24)][v1]|", new NSLayoutFormatOptions(), "v0", resultCell.sectionLabel, "v1", resultCell.pieChartView));
            }
            else
            {
                resultCell.sectionLabel.Text = "By " + reports[indexPath.Row].ToString();

                resultCell.barChartView.Legend.Enabled             = true;
                resultCell.barChartView.Legend.HorizontalAlignment = ChartLegendHorizontalAlignment.Right;
                resultCell.barChartView.Legend.VerticalAlignment   = ChartLegendVerticalAlignment.Top;
                resultCell.barChartView.Legend.Orientation         = ChartLegendOrientation.Vertical;
                resultCell.barChartView.Legend.DrawInside          = true;
                resultCell.barChartView.Legend.YOffset             = 10.0f;
                resultCell.barChartView.Legend.XOffset             = 10.0f;
                resultCell.barChartView.Legend.YEntrySpace         = 0.0f;
                resultCell.barChartView.Legend.TextColor           = UIColor.FromRGB(90, 89, 89);

                resultCell.barChartView.XAxis.DrawGridLinesEnabled    = true;
                resultCell.barChartView.XAxis.LabelPosition           = XAxisLabelPosition.Bottom;
                resultCell.barChartView.XAxis.CenterAxisLabelsEnabled = true;
                resultCell.barChartView.XAxis.ValueFormatter          = new ChartIndexAxisValueFormatter(TranslateReportGroups(reportDataSet.groups.ToArray()));
                resultCell.barChartView.XAxis.Granularity             = 1;
                resultCell.barChartView.XAxis.LabelTextColor          = UIColor.FromRGB(90, 89, 89);
                resultCell.barChartView.XAxis.GridColor     = UIColor.FromRGB(90, 89, 89);
                resultCell.barChartView.XAxis.AxisLineColor = UIColor.FromRGB(90, 89, 89);

                resultCell.barChartView.LeftAxis.SpaceTop             = 0.35f;
                resultCell.barChartView.LeftAxis.AxisMinimum          = 0;
                resultCell.barChartView.LeftAxis.DrawGridLinesEnabled = false;
                resultCell.barChartView.LeftAxis.Granularity          = 1;
                resultCell.barChartView.LeftAxis.ValueFormatter       = new ChartDefaultAxisValueFormatter(new NSNumberFormatter()
                {
                    MinimumFractionDigits = 0
                });
                resultCell.barChartView.LeftAxis.LabelTextColor = UIColor.FromRGB(90, 89, 89);
                resultCell.barChartView.LeftAxis.GridColor      = UIColor.FromRGB(90, 89, 89);
                resultCell.barChartView.LeftAxis.AxisLineColor  = UIColor.FromRGB(90, 89, 89);
                resultCell.barChartView.LeftAxis.ZeroLineColor  = UIColor.FromRGB(90, 89, 89);

                resultCell.barChartView.RightAxis.Enabled = false;

                if (reportDataSet.totalVotes > 0)
                {
                    var groupCount   = reportDataSet.groups.Count;
                    var optionsCount = reportDataSet.labels.Count;

                    var dataEntriesList = new List <List <BarChartDataEntry> >();

                    for (int i = 0; i < optionsCount; i++)
                    {
                        var dataEntries = new List <BarChartDataEntry>();

                        for (int j = 0; j < groupCount; j++)
                        {
                            if (Convert.ToInt32(reportDataSet.dataSets[i][j]) > 0)
                            {
                                dataEntries.Add(new BarChartDataEntry(i, reportDataSet.dataSets[i][j]));
                            }
                        }

                        dataEntriesList.Add(dataEntries);
                    }

                    var chartDataSetList = new List <BarChartDataSet>();

                    var k = 0;

                    for (int i = 0; i < dataEntriesList.Count; i++)
                    {
                        var barChartDataSet = new BarChartDataSet(dataEntriesList[i].ToArray(), reportDataSet.labels[i]);

                        if (dataEntriesList[i].ToArray().Length > 0)
                        {
                            barChartDataSet.SetColor(this.chartColors[k++]);
                        }
                        else
                        {
                            barChartDataSet.SetColor(UIColor.Clear);
                        }

                        barChartDataSet.ValueFormatter = new ChartDefaultValueFormatter(new NSNumberFormatter()
                        {
                            MinimumFractionDigits = 0, ZeroSymbol = ""
                        });
                        barChartDataSet.ValueTextColor = UIColor.FromRGB(90, 89, 89);
                        barChartDataSet.BarBorderColor = UIColor.FromRGB(90, 89, 89);

                        chartDataSetList.Add(barChartDataSet);
                    }

                    var dataSets = chartDataSetList.ToArray();

                    var chartData = new BarChartData(dataSets);

                    var initialXValue = 0;

                    var groupSpace = 0.3;
                    var barSpace   = 0.05;
                    var barWidth   = (0.7 - (0.05 * optionsCount)) / optionsCount; // (barWidth + 0.05) * optionsCount + 0.3 = 1.00 -> interval per "group"

                    chartData.BarWidth = barWidth;
                    resultCell.barChartView.XAxis.AxisMinimum = initialXValue;
                    resultCell.barChartView.XAxis.AxisMaximum = initialXValue + chartData.GroupWidthWithGroupSpace(groupSpace, barSpace) * groupCount;

                    chartData.GroupBarsFromX(initialXValue, groupSpace, barSpace);

                    resultCell.barChartView.Data = chartData;
                }

                resultCell.barChartView.AnimateWithXAxisDuration(1.4, ChartEasingOption.Linear);
                resultCell.barChartView.ChartDescription.Text = "";
                resultCell.barChartView.NoDataText            = "No results to show";

                resultCell.AddSubview(resultCell.barChartView);

                resultCell.AddConstraints(NSLayoutConstraint.FromVisualFormat("H:|[v0]|", new NSLayoutFormatOptions(), "v0", resultCell.barChartView));
                resultCell.AddConstraints(NSLayoutConstraint.FromVisualFormat("V:|[v0(24)][v1]|", new NSLayoutFormatOptions(), "v0", resultCell.sectionLabel, "v1", resultCell.barChartView));
            }

            return(resultCell);
        }
Пример #21
0
        // updates the lap bar chart view for the selected data source
        private void updateLapChart(int selectedLapIndex)
        {
            double min = 0;
            double max = 0;

            if (selectedLapIndex == 0)
            {
                //update time lap graph
                max = 0;
                min = 0;
                List <double>     lapList       = new List <double>(ActiveActivity.Laps.Select(x => x.TotalTimeSeconds).ToList());
                List <ColumnItem> lapDataPoints = new List <ColumnItem>();
                foreach (double point in lapList)
                {
                    lapDataPoints.Add(new ColumnItem {
                        Value = point / 60, Color = OxyColors.MediumAquamarine
                    });
                }
                max = lapDataPoints.Count;
                min = -1;

                if (lapList[0] < 0)
                {
                    LapData = null;
                }
                else
                {
                    LapData = new BarChartData(lapDataPoints, max, min);
                }

                SelectedLapData = "Time (min)";
            }
            else if (selectedLapIndex == 1)
            {
                //update distance lap graph
                List <double>     disLapList       = new List <double>(ActiveActivity.Laps.Select(x => x.TotalDistanceMeters).ToList());
                List <ColumnItem> disLapDataPoints = new List <ColumnItem>();
                foreach (double point in disLapList)
                {
                    disLapDataPoints.Add(new ColumnItem {
                        Value = point * 0.000621371, Color = OxyColors.OrangeRed
                    });
                }
                max = disLapDataPoints.Count;
                min = -1;

                if (disLapList[0] < 0)
                {
                    LapData = null;
                }
                else
                {
                    LapData = new BarChartData(disLapDataPoints, max, min);
                }

                SelectedLapData = "Distance (mi)";
            }
            else if (selectedLapIndex == 2)
            {
                //update speed lap graph
                List <double>     speedLapList       = new List <double>(ActiveActivity.Laps.Select(x => x.AvgSpeed).ToList());
                List <ColumnItem> speedLapDataPoints = new List <ColumnItem>();
                foreach (double point in speedLapList)
                {
                    speedLapDataPoints.Add(new ColumnItem {
                        Value = point, Color = OxyColors.LightBlue
                    });
                }
                max = speedLapDataPoints.Count;
                min = -1;

                if (speedLapList[0] < 0)
                {
                    LapData = null;
                }
                else
                {
                    LapData = new BarChartData(speedLapDataPoints, max, min);
                }

                SelectedLapData = "Speed (mph)";
            }
            else if (selectedLapIndex == 3)
            {
                //update hr lap graph
                List <double>     hrLapList       = new List <double>(ActiveActivity.Laps.Select(x => x.AvgHeartRate).ToList());
                List <ColumnItem> hrLapDataPoints = new List <ColumnItem>();
                foreach (double point in hrLapList)
                {
                    hrLapDataPoints.Add(new ColumnItem {
                        Value = point, Color = OxyColors.IndianRed
                    });
                }
                max = hrLapDataPoints.Count;
                min = -1;

                if (hrLapList[0] < 0)
                {
                    LapData = null;
                }
                else
                {
                    LapData = new BarChartData(hrLapDataPoints, max, min);
                }

                SelectedLapData = "Heart Rate (bpm)";
            }
            else if (selectedLapIndex == 4)
            {
                if (ActiveActivity is BikeActivity)
                {
                    //update watts lap graph
                    List <double>     wattsLapList       = new List <double>(ActiveActivity.Laps.Select(x => x.AvgPower).ToList());
                    List <ColumnItem> wattsLapDataPoints = new List <ColumnItem>();
                    foreach (double point in wattsLapList)
                    {
                        wattsLapDataPoints.Add(new ColumnItem {
                            Value = point, Color = OxyColor.Parse("#b19cd9")
                        });
                    }
                    max = wattsLapDataPoints.Count;
                    min = -1;

                    if (wattsLapList[0] < 0)
                    {
                        LapData = null;
                    }
                    else
                    {
                        LapData = new BarChartData(wattsLapDataPoints, max, min);
                    }

                    SelectedLapData = "Power (W)";
                }
                else
                {
                    LapData         = null;
                    SelectedLapData = "Power (W)";
                }
            }
            else if (selectedLapIndex == 5)
            {
                if (ActiveActivity is BikeActivity)
                {
                    //update cadence lap graph
                    List <double>     cadenceLapList       = new List <double>(ActiveActivity.Laps.Select(x => x.AvgCadence).ToList());
                    List <ColumnItem> cadenceLapDataPoints = new List <ColumnItem>();
                    foreach (double point in cadenceLapList)
                    {
                        cadenceLapDataPoints.Add(new ColumnItem {
                            Value = point, Color = OxyColors.LightGreen
                        });
                    }
                    max = cadenceLapDataPoints.Count;
                    min = -1;

                    if (cadenceLapList[0] < 0)
                    {
                        LapData = null;
                    }
                    else
                    {
                        LapData = new BarChartData(cadenceLapDataPoints, max, min);
                    }

                    SelectedLapData = "Cadence (rpm)";
                }
                else if (ActiveActivity is RunActivity)
                {
                    //update cadence lap graph
                    List <double>     cadenceLapList       = new List <double>(ActiveActivity.Laps.Select(x => x.AvgCadence).ToList());
                    List <ColumnItem> cadenceLapDataPoints = new List <ColumnItem>();
                    foreach (double point in cadenceLapList)
                    {
                        cadenceLapDataPoints.Add(new ColumnItem {
                            Value = point, Color = OxyColors.LightGreen
                        });
                    }
                    max = cadenceLapDataPoints.Count;
                    min = -1;

                    if (cadenceLapList[0] < 0)
                    {
                        LapData = null;
                    }
                    else
                    {
                        LapData = new BarChartData(cadenceLapDataPoints, max, min);
                    }

                    SelectedLapData = "Cadence (spm)";
                }
            }
            else if (selectedLapIndex == 6)
            {
                //update eg lap graph
                List <double>     egLapList       = new List <double>(ActiveActivity.Laps.Select(x => x.ElevationGain).ToList());
                List <ColumnItem> egLapDataPoints = new List <ColumnItem>();
                foreach (double point in egLapList)
                {
                    egLapDataPoints.Add(new ColumnItem {
                        Value = point, Color = OxyColors.SandyBrown
                    });
                }
                max = egLapDataPoints.Count;
                min = -1;

                if (egLapList[0] < 0)
                {
                    LapData = null;
                }
                else
                {
                    LapData = new BarChartData(egLapDataPoints, max, min);
                }

                SelectedLapData = "Elevation Gain (ft)";
            }
        }
        protected override void OnAppearing()
        {
            base.OnAppearing();
            var entrieLine = new List <EntryChart>();
            var entries    = new List <BubbleEntry>();
            var entries2   = new List <BubbleEntry>();
            var labels     = new List <string>();

            Random random = new Random();


            for (int i = 0; i < 8; i++)
            {
                entrieLine.Add(new EntryChart(i, random.Next(20)));
                entries.Add(new BubbleEntry(i, random.Next(8), random.Next(20)));
                entries2.Add(new BubbleEntry(i, random.Next(8), random.Next(20)));
                labels.Add("Entry" + i);
            }

            var entriesCandle = new List <CandleStickEntry>();

            entriesCandle.Add(new CandleStickEntry(0, 4.62f, 2.02f, 2.70f, 4.13f));
            entriesCandle.Add(new CandleStickEntry(1, 5.50f, 2.70f, 3.35f, 4.96f));
            entriesCandle.Add(new CandleStickEntry(2, 5.25f, 3.02f, 3.50f, 4.50f));
            entriesCandle.Add(new CandleStickEntry(3, 6f, 3.25f, 4.40f, 5.0f));
            entriesCandle.Add(new CandleStickEntry(4, 5.57f, 2f, 2.80f, 4.5f));

            var dataSetBubble = new BubbleDataSet(entries, "Bubble DataSet 1")
            {
                Colors = new List <Color>()
                {
                    Color.Accent, Color.Azure, Color.Bisque, Color.Gray, Color.Green, Color.Chocolate, Color.Black
                },
            };
            var dataBubble = new BubbleChartData(new List <IBubbleDataSet>()
            {
                dataSetBubble
            });


            var dataSetCandle = new CandleStickDataSet(entriesCandle, "Candle Stick DataSet 1")
            {
                DecreasingColor = Color.Red,
                IncreasingColor = Color.Green
            };
            var dataCandle = new CandleStickChartData(new List <ICandleStickDataSet>()
            {
                dataSetCandle
            });


            var dataSetLine = new LineDataSetXF(entrieLine, "Line DataSet 1")
            {
                CircleRadius     = 10,
                CircleHoleRadius = 4f,
                CircleColors     = new List <Color>()
                {
                    Color.Accent, Color.Azure, Color.Bisque, Color.Gray, Color.Green, Color.Chocolate, Color.Black
                },
                CircleHoleColor = Color.Green,
                Mode            = LineDataSetMode.CUBIC_BEZIER
            };
            var dataLine = new LineChartData(new List <ILineDataSetXF>()
            {
                dataSetLine
            });


            var dataSetbar = new BarDataSet(entrieLine, "Bar DataSet 1")
            {
                Colors = new List <Color>()
                {
                    Color.Accent, Color.Azure, Color.Bisque, Color.Gray, Color.Green, Color.Chocolate, Color.Black
                },
            };
            var dataBar = new BarChartData(new List <IBarDataSet>()
            {
                dataSetbar
            });

            var combinData = new CombinedChartData(null);

            combinData.BubbleChartData      = dataBubble;
            combinData.CandleStickChartData = dataCandle;
            combinData.LineChartData        = dataLine;
            combinData.BarChartData         = dataBar;
            chart.ChartData = combinData;
            chart.XAxis.AxisValueFormatter = new TextByIndexXAxisFormatter(labels);
        }
Пример #23
0
        public async Task <IActionResult> OnGetAsync()
        {
            ViewData["HideNavigation"] = !signInManager.IsSignedIn(User);

            if (signInManager.IsSignedIn(User))
            {
                Employee = await userManager.GetUserAsync(User).ConfigureAwait(false);

                Role = await roleManager.FindByIdAsync(Employee.RoleId.ToString()).ConfigureAwait(false);

                var companyResult = await companies.FetchCompany(Employee.CompanyId)
                                    .Ensure(c => c.HasValue, "Company found")
                                    .OnSuccess(c => c.Value)
                                    .ConfigureAwait(false);

                // We intentionally let this throw on failure as this is the index page, so we have nowhere safe to redirect to.
                Company = companyResult.Value;
                Feed    = await feeds.GetFeed().ConfigureAwait(false);

                var averageOrderResult = await analytics.GetAverageOrderAmount(Company.CompanyId)
                                         .Ensure(r => r.HasValue, "Results found")
                                         .OnSuccess(r => r.Value)
                                         .ConfigureAwait(false);

                if (averageOrderResult.IsSuccess)
                {
                    var data = new BarChartData {
                        Labels = new List <string>(),
                        Series = new List <List <double> > {
                            new List <double>()
                        }
                    };

                    averageOrderResult.Value.ForEach(result => {
                        data.Labels.Add(result.VenueId.ToString());
                        data.Series[0].Add((double)result.Average);
                    });

                    AverageOrderPerVenue = JsonConvert.SerializeObject(data, jsonSerializerSettings);
                }

                var companyOrderStatuses = await analytics.GetCompanyOrderStatuses(Company.CompanyId)
                                           .Ensure(r => r.HasValue, "Results found")
                                           .OnSuccess(r => r.Value)
                                           .ConfigureAwait(false);

                if (companyOrderStatuses.IsSuccess)
                {
                    var data = new BarChartDescriptiveData
                    {
                        Labels = new List <string>(),
                        Series = new List <List <BarChartDesciptiveElem> >()
                    };

                    for (var i = 0; i < 3; i++)
                    {
                        data.Series.Add(new List <BarChartDesciptiveElem>());
                    }

                    companyOrderStatuses.Value.ForEach(result =>
                    {
                        data.Labels.Add(result.VenueId.ToString());

                        data.Series[0].Add(new BarChartDesciptiveElem
                        {
                            Meta  = "Incomplete",
                            Value = result.Incomplete
                        });

                        data.Series[1].Add(new BarChartDesciptiveElem
                        {
                            Meta  = "Complete",
                            Value = result.Complete
                        });

                        data.Series[2].Add(new BarChartDesciptiveElem
                        {
                            Meta  = "Failed",
                            Value = result.Failed
                        });
                    });

                    CompanyOrderStatuses = JsonConvert.SerializeObject(data, jsonSerializerSettings);
                }
            }

            return(Page());
        }
Пример #24
0
        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            BarChart barChart     = new BarChart(500, 500, 5);
            var      barChartData = new BarChartData()
            {
                Bars = new[] {
                    new BarData()
                    {
                        BarNum   = 0,
                        Name     = "МДТ6",
                        Sections = new[]
                        {
                            new BarSectionData()
                            {
                                Name = "Прошло труб", SectionNum = 0, Value = 10
                            },
                            new BarSectionData()
                            {
                                Name = "Повторы", SectionNum = 1, Value = 20
                            },
                            new BarSectionData()
                            {
                                Name = "Образцы", SectionNum = 2, Value = 5
                            },
                        },
                        CaptionText = "10/35"
                    },
                    new BarData()
                    {
                        BarNum   = 1,
                        Name     = "Сканер",
                        Sections = new[]
                        {
                            new BarSectionData()
                            {
                                Name = "Прошло труб", SectionNum = 0, Value = 10
                            },
                            new BarSectionData()
                            {
                                Name = "Повторы", SectionNum = 1, Value = 3
                            },
                            new BarSectionData()
                            {
                                Name = "Образцы", SectionNum = 2, Value = 8
                            },
                        },
                        CaptionText = "10/22"
                    },
                }
            };

            barChart.SetData(barChartData);
            using (MemoryStream ms = new MemoryStream())
            {
                barChart.Draw().Save(ms, ImageFormat.Bmp);
                var bitmapImage = new BitmapImage();
                ms.Seek(0, SeekOrigin.Begin);
                bitmapImage.BeginInit();
                bitmapImage.CacheOption  = BitmapCacheOption.OnLoad;
                bitmapImage.StreamSource = ms;
                bitmapImage.EndInit();
                image1.Source = bitmapImage;
            }
        }
Пример #25
0
        public SimpleChartsModule()
        {
            Get["/examples/charts/vertical-bar-charts/simple-charts/1"] = _ =>
            {
                var svg = new Svg(200, 150);

                var data = new BarChartData(new double[]
                {
                    50, 25, 5
                });
                var chart = svg.VerticalBarChart(data)
                            .WithDataLabelFormat("{0}%")
                            .ShowDataLabelOutsideItem();

                return(Response.AsSvg(svg));
            };

            Get["/examples/charts/vertical-bar-charts/simple-charts/2"] = _ =>
            {
                var svg = new Svg();

                var data = new BarChartData(new[]
                {
                    new BarChartGroupData(new[]
                    {
                        new BarChartStackData(new double[] { 36, 35, 12 }),
                        new BarChartStackData(new double[] { 29, 4, 35 }),
                        new BarChartStackData(new double[] { 19, 11 })
                    }),
                    new BarChartGroupData(new[]
                    {
                        new BarChartStackData(new double[] { 18 }),
                        new BarChartStackData(new double[] { 8, 31, 22 }),
                        new BarChartStackData(new double[] { 2, 4, 28 }),
                    }),
                    new BarChartGroupData(new[]
                    {
                        new BarChartStackData(new double[] { 21, 13, 36 }),
                        new BarChartStackData(new double[] { 19, 9 }),
                        new BarChartStackData(new double[] { 34 }),
                    }),
                });
                var chart = svg.VerticalBarChart(data);

                return(Response.AsSvg(svg));
            };

            Get["/examples/charts/vertical-bar-charts/simple-charts/3"] = _ =>
            {
                var svg = new Svg();

                var data = new BarChartData(new[]
                {
                    new BarChartGroupData(new[]
                    {
                        new BarChartStackData(new double[] { 36, 35, 12 }, "Stack 1"),
                        new BarChartStackData(new double[] { 29, 4, 35 }, "Stack 2"),
                        new BarChartStackData(new double[] { 19, 11 }, "Stack 3")
                    }, "Group 1"),
                    new BarChartGroupData(new[]
                    {
                        new BarChartStackData(new double[] { 18 }, "Stack 4"),
                        new BarChartStackData(new double[] { 8, 31, 22 }, "Stack 5"),
                        new BarChartStackData(new double[] { 2, 4, 28 }, "Stack 6"),
                    }, "Group 2"),
                    new BarChartGroupData(new[]
                    {
                        new BarChartStackData(new double[] { 21, 13, 36 }, "Stack 7"),
                        new BarChartStackData(new double[] { 19, 9 }, "Stack 8"),
                        new BarChartStackData(new double[] { 34 }, "Stack 9"),
                    }, "Group 3"),
                });
                var chart = svg.VerticalBarChart(data)
                            .WithDataLabelFormat("{0}%");

                return(Response.AsSvg(svg));
            };

            Get["/examples/charts/vertical-bar-charts/simple-charts/4"] = _ =>
            {
                var svg = new Svg();

                var data = new BarChartData(new double[]
                {
                    50, 25, 5
                });
                var chart = svg.VerticalBarChart(data)
                            .WithDataLabelFormat("{0}%")
                            .ShowDataLabelOutsideItem()
                            .WithGutter(40)
                            .WithFill("#dddddd")
                            .WithPadding(40)
                            .WithDrawableFill("#cccccc")
                            .WithStroke("black")
                            .WithStrokeWidth(2);

                return(Response.AsSvg(svg));
            };

            Get["/examples/charts/vertical-bar-charts/simple-charts/stack-based-color-generator"] = _ =>
            {
                var svg = new Svg(600, 200);

                var chart = svg.VerticalBarChart(DataSources.GetIndustriesData())
                            .WithDataLabelFormat("{0}%")
                            .ShowDataLabelOutsideItem()
                            .WithPointColorGenerator(new StackBasedDataPointColorGenerator(new[]
                {
                    "#6666ff",
                    "orange"
                }))
                            .WithStroke("black")
                            .WithStrokeWidth(2)
                            .WithPadding(10);

                return(Response.AsSvg(svg));
            };

            Get["/examples/charts/vertical-bar-charts/simple-charts/always-show-labels-above-data-points"] = _ =>
            {
                var svg = new Svg(600, 200);

                var chart = svg.VerticalBarChart(DataSources.GetIndustriesData())
                            .WithDataLabelFormat("{0}%")
                            .AlwaysShowDataLabel()
                            .WithPointColorGenerator(new StackBasedDataPointColorGenerator(new[]
                {
                    "#6666ff",
                    "orange"
                }))
                            .WithStroke("black")
                            .WithStrokeWidth(2)
                            .WithPadding(10);

                return(Response.AsSvg(svg));
            };

            Get["/examples/charts/vertical-bar-charts/simple-charts/7"] = _ =>
            {
                var svg = new Svg();

                var data = new BarChartData(new[]
                {
                    new BarChartGroupData(new[]
                    {
                        new BarChartStackData(new double[] { 36, 35, 12 }, "Stack 1"),
                        new BarChartStackData(new double[] { 29, 4, 35 }, "Stack 2"),
                        new BarChartStackData(new double[] { 19, 11 }, "Stack 3")
                    }, "Group 1"),
                    new BarChartGroupData(new[]
                    {
                        new BarChartStackData(new double[] { 18 }, "Stack 4"),
                        new BarChartStackData(new double[] { 8, 31, 22 }, "Stack 5"),
                        new BarChartStackData(new double[] { 2, 4, 28 }, "Stack 6"),
                    }, "Group 2"),
                    new BarChartGroupData(new[]
                    {
                        new BarChartStackData(new double[] { 21, 13, 36 }, "Stack 7"),
                        new BarChartStackData(new double[] { 19, 9 }, "Stack 8"),
                        new BarChartStackData(new double[] { 34 }, "Stack 9"),
                    }, "Group 3"),
                });
                var chart = svg.VerticalBarChart(data)
                            .WithDataLabelFormat("{0}%")
                            .WithPointColorGenerator(new PointBasedDataPointColorGenerator(new[]
                {
                    "#617073",
                    "#7A93AC",
                    "#92BCEA",
                    "#AFB3F7"
                }));

                return(Response.AsSvg(svg));
            };

            Get["/examples/charts/vertical-bar-charts/simple-charts/8"] = _ =>
            {
                var svg = new Svg();

                var data = new BarChartData(new[]
                {
                    new BarChartGroupData(new[]
                    {
                        new BarChartStackData(new double[] { 36, 35, 12 }, "Stack 1"),
                        new BarChartStackData(new double[] { 29, 4, 35 }, "Stack 2"),
                        new BarChartStackData(new double[] { 19, 11 }, "Stack 3")
                    }, "Group 1"),
                    new BarChartGroupData(new[]
                    {
                        new BarChartStackData(new double[] { 18 }, "Stack 4"),
                        new BarChartStackData(new double[] { 8, 31, 22 }, "Stack 5"),
                        new BarChartStackData(new double[] { 2, 4, 28 }, "Stack 6"),
                    }, "Group 2"),
                    new BarChartGroupData(new[]
                    {
                        new BarChartStackData(new double[] { 21, 13, 36 }, "Stack 7"),
                        new BarChartStackData(new double[] { 19, 9 }, "Stack 8"),
                        new BarChartStackData(new double[] { 34 }, "Stack 9"),
                    }, "Group 3"),
                });
                var chart = svg.VerticalBarChart(data)
                            .WithDataLabelFormat("{0}%")
                            .WithPointColorGenerator(new PointBasedDataPointColorGenerator(new[]
                {
                    "#171A21",
                    "#617073",
                    "#7A93AC",
                    "#92BCEA",
                    "#AFB3F7"
                }))
                            .WithPointLabelColorGenerator(new PointBasedDataPointColorGenerator(new[]
                {
                    "#fff",
                    "#fff",
                    "#000",
                    "#000",
                    "#000",
                }));

                return(Response.AsSvg(svg));
            };

            Get["/examples/charts/vertical-bar-charts/simple-charts/labels-on-data-points-auto-split"] = _ =>
            {
                var svg = new Svg(600, 200);

                svg.VerticalBarChart(DataSources.GetRenewableEnergyData())
                .WithDataPointAutoLineSplit(12)
                .WithDataLabelFormat("{0:p}")
                .AlwaysShowDataLabel();

                return(Response.AsSvg(svg));
            };

            Get["/examples/charts/vertical-bar-charts/simple-charts/as-inline-svg"] = _ =>
            {
                var svg = new Svg(200, 150);

                var data = new BarChartData(new double[]
                {
                    50, 25, 5
                });
                var chart = svg.VerticalBarChart(data)
                            .WithDataLabelFormat("{0}%")
                            .ShowDataLabelOutsideItem();

                return(Response.AsText(svg.ToInlineSvgString()));
            };
        }
        public JsonResult GetData()
        {
            #region old
            var cs  = "Host=qa-datalake-pg.cluster-ctg0nvlybzpq.ap-southeast-1.rds.amazonaws.com; Username =liluna_datalake; Password =Liluna@SCGL; Database =pd_datalake";
            var con = new NpgsqlConnection(cs);
            con.Open();
            var sql             = "select * from dom.\"Reporting_MonthlySummary2\"";
            var cmd             = new NpgsqlCommand(sql, con);
            NpgsqlDataReader dr = cmd.ExecuteReader();

            List <double> lsTotalSM            = new List <double>();
            List <double> lsTotalWeight        = new List <double>();
            List <string> lsLabel              = new List <string>();
            List <string> lsbgcolorTotalSM     = new List <string>();
            List <string> lsbdcolorTotalSM     = new List <string>();
            List <string> lsbgcolorTotalWeight = new List <string>();
            List <string> lsbdcolorTotalWeight = new List <string>();

            string c1 = "rgba(255, 99, 132, 0.2)";
            string c2 = "rgba(54, 162, 235, 0.2)";
            string c3 = "rgba(255, 206, 86, 0.2)";
            string c4 = "rgba(75, 192, 192, 0.2)";
            string c5 = "rgba(153, 102, 255, 0.2)";
            string c6 = "rgba(255, 159, 64, 0.2)";

            while (dr.Read())
            {
                lsLabel.Add(dr[0].ToString());

                if (!string.IsNullOrEmpty(dr[2].ToString()))
                {
                    lsTotalSM.Add(Convert.ToInt32(dr[2].ToString()));
                }
                if (!string.IsNullOrEmpty(dr[2].ToString()))
                {
                    lsTotalWeight.Add(Convert.ToDouble(dr[3]));
                }

                lsbgcolorTotalSM.Add(c1);
                lsbdcolorTotalSM.Add(c1);

                lsbgcolorTotalWeight.Add(c2);
                lsbdcolorTotalWeight.Add(c2);
            }


            //Mock the data
            BarChartDataSet datasetTotalSM = new BarChartDataSet()
            {
                type            = "bar",
                label           = "จำนวน Shipment",
                data            = lsTotalSM.ToArray(),
                backgroundColor = lsbgcolorTotalSM.ToArray(),
                borderColor     = lsbdcolorTotalSM.ToArray(),
                borderWidth     = 1
            };

            BarChartDataSet datasetTotalWeight = new BarChartDataSet()
            {
                type            = "bar",
                label           = "จำนวน Volumn (x 100 Ton.)",
                data            = lsTotalWeight.ToArray(),
                backgroundColor = lsbgcolorTotalWeight.ToArray(),
                borderColor     = lsbdcolorTotalWeight.ToArray(),
                borderWidth     = 1
            };

            BarChartData data = new BarChartData()
            {
                labels   = lsLabel.ToArray(),
                datasets = new BarChartDataSet[] { datasetTotalSM, datasetTotalWeight }
            };

            return(Json(data));

            #endregion
        }
        public JsonResult GetShipmentStatusChart_ByType(string selectmonth, string selectday, string reporttype)
        {
            var cs  = "Host=qa-datalake-pg.cluster-ctg0nvlybzpq.ap-southeast-1.rds.amazonaws.com; Username=datalakero; Password=d@t@SCGL; Database=pd_datalake";
            var con = new NpgsqlConnection(cs);

            con.Open();
            NpgsqlCommand command = new NpgsqlCommand();

            command = con.CreateCommand();
            var sql = " SELECT a.date_part, b.date, b.\"SMTotal\", b.\"SMComplete\", b.\"SMGI\", b.\"SMTenderAccept\" " +
                      " FROM ( SELECT date_part('day'::text, dates_this_month.dates_this_month) AS date_part" +
                      " FROM generate_series(date_trunc('month'::text, now()), date_trunc('month'::text, now()) + '1 mon'::interval - '1 day'::interval, '1 day'::interval) dates_this_month(dates_this_month)) a" +
                      " LEFT JOIN " +
                      " ( select stat.date " +
                      " , stat.day" +
                      " , count(distinct stat.load_id) as \"SMTotal\"" +
                      " , sum(stat.\"SMComplete\") as \"SMComplete\"" +
                      " , sum(\"SMGI\") as \"SMGI\"" +
                      " , sum(stat.\"SMTenderAccept\") as \"SMTenderAccept\"" +
                      " from (" +
                      " select distinct" +
                      " date(scvdnst.actual_open) as \"date\"" +
                      " , date_part('day', scvdnst.actual_open) AS \"day\"" +
                      " , scvdnst.load_id as \"load_id\"" +
                      " , case when scvdnst.actual_delivery_date is not null then 1 else 0 end as \"SMComplete\"" +
                      " , case when scvdnst.actual_delivery_date is not null then 0 " +
                      " when scvdnst.actual_gi_date is not null then 1 else 0 end as \"SMGI\"" +
                      " , case when scvdnst.actual_gi_date is not null then 0 " +
                      " when scvdnst.actual_tender_accept is not null then 1 else 0 end as \"SMTenderAccept\"" +
                      " from dom.scvcor_delivery_tracking_status scvdnst" +
                      " inner join dom.scvmvc_tms_load_leg tmssmh on scvdnst.load_id = tmssmh.load_id" +
                      " inner join dom.scvmvc_tms_delivery_header tmsdnh on 'A' || right('0000' || scvdnst.delivery_number , 10) = tmsdnh.delivery_number" +
                      " where extract('month' from tmssmh.user_create_date) = @month";

            if (!string.IsNullOrEmpty(selectday))
            {
                sql += " and extract('day' from tmssmh.user_create_date) = @day";
            }

            switch (reporttype)
            {
            case "Fly_Ash":
                sql += " and tmsdnh.commodity_code in ('BRFLY','BCFYA')" +
                       " and tmsdnh.shipping_point in ('3520000603','2210000897','6700000620','6710000500','2210000906','2250000410','6710000503','4400001149')" +
                       " and tmssmh.equipment_type in ('10CC','18CS','18CT','22CS','22CT')";
                break;

            case "All_Bulk_FLEET_SRB":
                sql += " and tmsdnh.commodity_code = 'BCBGR'" +
                       " and tmsdnh.shipping_point in ('2190000635','2190000637','2190000894','2190000968')" +
                       " and tmssmh.equipment_type in ('10CC','18CS','18CT','22CS','22CT')";
                break;

            case "All_Bulk_FLEET_LP":
                sql += " and tmsdnh.commodity_code in ('BCBGR','BCMTA','BRGYP')" +
                       " and tmsdnh.shipping_point in ('3520000594','3520000597','3520001431','3520000612')" +
                       " and tmssmh.equipment_type in ('10CC','18CS','18CT','22CS','22CT')";
                break;

            case "Mortar_Bulk_FLEET_SRB":
                sql += " and tmsdnh.commodity_code = 'BCMTA'" +
                       " and tmsdnh.shipping_point in ('2190000642','2190000898','2200001644')" +
                       " and tmssmh.equipment_type in ('10CC','18CS','18CT','22CS','22CT')";
                break;

            case "Mortar_Bulk_FLEET_KW":
                sql += " and tmsdnh.shipping_point in ('2190000938')" +
                       " and tmssmh.equipment_type in ('10CC','18CS','18CT','22CS','22CT')";
                break;

            case "Mortar_Bulk_FLEET_TS":
                sql += " and tmsdnh.commodity_code in ('BCMTA' , 'BRCCN')" +
                       " and tmsdnh.shipping_point in ('5800000746')" +
                       " and tmssmh.equipment_type in ('10CC','18CS','18CT','22CS','22CT')";
                break;

            case "PFA_PPD":
                sql += " and tmsdnh.shipping_point in ('1110001558')" +
                       " and tmssmh.equipment_type in ('10CC','18CS','18CT','22CS','22CT')";
                break;

            case "Cement_Bulk_PPD":
                sql += " and tmsdnh.commodity_code in ('BCBGR')" +
                       " and tmsdnh.shipping_point in ('1110001519')" +
                       " and tmssmh.equipment_type in ('10CC','18CS','18CT','22CS','22CT')";
                break;

            case "Cement_Bulk_SRC":
                sql += " and tmsdnh.commodity_code in ('BCBGR')" +
                       " and tmsdnh.shipping_point in ('2200001646')" +
                       " and tmssmh.equipment_type in ('10CC','18CS','18CT','22CS','22CT')";
                break;

            case "Cement_White_Bulk":
                sql += " and tmsdnh.commodity_code in ('BCBGR')" +
                       " and tmsdnh.shipping_point in ('2190000643')" +
                       " and tmssmh.equipment_type in ('10CC','18CS','18CT','22CS','22CT')";
                break;

            case "Cement_Bulk_TS":
                sql += " and tmsdnh.commodity_code in ('BCBGR')" +
                       " and tmsdnh.shipping_point in ('5800000742')" +
                       " and tmssmh.equipment_type in ('10CC','18CS','18CT','22CS','22CT')";
                break;

            case "KCL":
                sql += " and tmsdnh.commodity_code in ('BCBGR')" +
                       " and tmsdnh.shipping_point in ('4480000395')" +
                       " and tmssmh.equipment_type in ('10CC','18CS','18CT','22CS','22CT')";
                break;

            case "Cementh_Rajasri":
                sql += " and tmsdnh.commodity_code in ('BCRAC')" +
                       " and tmsdnh.shipping_point in ('2190000953')" +
                       " and tmssmh.equipment_type in ('10CC','18CS','18CT','22CS','22CT')";
                break;

            case "Barite":
                sql += " and tmsdnh.commodity_code in ('BMINE','BRCCN')" +
                       " and tmsdnh.shipping_point in ('2190000957','2190000642')" +
                       " and tmssmh.equipment_type in ('10CC','18CS','18CT','22CS','22CT')";
                break;

            default: break;
            }

            sql += " ) stat group by stat.date, stat.day) b ON a.date_part = b.day";


            command.CommandText = sql;
            command.Parameters.AddWithValue("@month", Convert.ToInt32(selectmonth));
            command.Parameters.AddWithValue("@day", Convert.ToInt32(selectday));
            NpgsqlDataReader dr = command.ExecuteReader();

            List <string> lsLabel          = new List <string>();
            List <double> lsSMTotal        = new List <double>();
            List <double> lsSMCompletet    = new List <double>();
            List <double> lsSMGI           = new List <double>();
            List <double> lsSMTenderAccept = new List <double>();

            List <string> lsbgcolorSMTotal        = new List <string>();
            List <string> lsbdcolorSMTotal        = new List <string>();
            List <string> lsbgcolorSMCompletet    = new List <string>();
            List <string> lsbdcolorSMCompletet    = new List <string>();
            List <string> lsbgcolorSMGI           = new List <string>();
            List <string> lsbdcolorSMGI           = new List <string>();
            List <string> lsbgcolorSMTenderAccept = new List <string>();
            List <string> lsbdcolorSMTenderAccept = new List <string>();

            string c1  = "rgba(255, 99, 132, 0.2)";
            string c2  = "rgba(54, 162, 235, 0.2)";
            string c3  = "rgba(255, 206, 86, 0.2)";
            string c4  = "rgba(75, 192, 192, 0.2)";
            string c5  = "rgba(153, 102, 255, 0.2)";
            string c6  = "rgba(255, 159, 64, 0.2)";
            string c7  = "rgb(12, 202, 142, 0.5)";
            string c8  = "rgb(255, 205, 86, 0.5)";
            string c9  = "rgb(255, 99, 132, 0.5)";
            string c10 = "rgb(54, 162, 235, 0.9)";
            string c11 = "rgb(51, 102, 0, 0.9)";

            while (dr.Read())
            {
                lsLabel.Add(dr[0].ToString());
                if (!string.IsNullOrEmpty(dr[2].ToString()))
                {
                    lsSMTotal.Add(Convert.ToInt32(dr[2].ToString()));
                }
                else
                {
                    lsSMTotal.Add(0);
                }
                if (!string.IsNullOrEmpty(dr[3].ToString()))
                {
                    lsSMCompletet.Add(Convert.ToInt32(dr[3]));
                }
                else
                {
                    lsSMCompletet.Add(0);
                }
                if (!string.IsNullOrEmpty(dr[4].ToString()))
                {
                    lsSMGI.Add(Convert.ToInt32(dr[4]));
                }
                else
                {
                    lsSMGI.Add(0);
                }
                if (!string.IsNullOrEmpty(dr[5].ToString()))
                {
                    lsSMTenderAccept.Add(Convert.ToInt32(dr[5]));
                }
                else
                {
                    lsSMTenderAccept.Add(0);
                }

                //set color
                lsbgcolorSMTotal.Add(c11);
                lsbdcolorSMTotal.Add(c11);
                lsbgcolorSMCompletet.Add(c7);
                lsbdcolorSMCompletet.Add(c7);
                lsbgcolorSMGI.Add(c8);
                lsbdcolorSMGI.Add(c8);
                lsbgcolorSMTenderAccept.Add(c9);
                lsbdcolorSMTenderAccept.Add(c9);
            }

            //Mock the data
            BarChartDataSet datasetSMTotal = new BarChartDataSet()
            {
                type            = "line",
                label           = "All Shipment",
                data            = lsSMTotal.ToArray(),
                backgroundColor = lsbgcolorSMTotal.ToArray(),
                borderColor     = lsbdcolorSMTotal.ToArray(),
                borderWidth     = 1
            };

            BarChartDataSet datasetSMCompletet = new BarChartDataSet()
            {
                type            = "bar",
                label           = "Complete Delivery",
                data            = lsSMCompletet.ToArray(),
                backgroundColor = lsbgcolorSMCompletet.ToArray(),
                borderColor     = lsbdcolorSMCompletet.ToArray(),
                borderWidth     = 1
            };

            BarChartDataSet datasetSMGI = new BarChartDataSet()
            {
                type            = "bar",
                label           = "GI",
                data            = lsSMGI.ToArray(),
                backgroundColor = lsbgcolorSMGI.ToArray(),
                borderColor     = lsbdcolorSMGI.ToArray(),
                borderWidth     = 1
            };

            BarChartDataSet datasetSMTenderAccept = new BarChartDataSet()
            {
                type            = "bar",
                label           = "Accept",
                data            = lsSMTenderAccept.ToArray(),
                backgroundColor = lsbgcolorSMTenderAccept.ToArray(),
                borderColor     = lsbdcolorSMTenderAccept.ToArray(),
                borderWidth     = 1
            };

            BarChartData data = new BarChartData()
            {
                labels   = lsLabel.ToArray(),
                datasets = new BarChartDataSet[] { datasetSMTotal, datasetSMTenderAccept, datasetSMGI, datasetSMCompletet }
            };

            var jsonResult = Json(data);

            jsonResult.MaxJsonLength = int.MaxValue;

            return(jsonResult);
        }
Пример #28
0
        public void LoadBarChart()
        {
            try
            {
                var entries  = new List <EntryChart>();
                var entries2 = new List <EntryChart>();
                var labels   = new List <string>();

                Random random = new Random();
                for (int i = 0; i < 36; i++)
                {
                    entries.Add(new EntryChart(i, random.Next(20)));
                    entries2.Add(new EntryChart(i, random.Next(20)));
                    labels.Add(states[i]);
                }

                var dataSet4 = new BarDataSet(entries, "Product Summary")
                {
                    Colors = new List <Color>()
                    {
                        Color.FromHex("#3696e0"), Color.FromHex("#9958bc"),
                        Color.FromHex("#35ad54"), Color.FromHex("#2d3e52"),
                        Color.FromHex("#e55137"), Color.FromHex("#ea9940"),
                        Color.FromHex("#3696e0"), Color.FromHex("#9958bc"),
                        Color.FromHex("#35ad54"), Color.FromHex("#2d3e52"),
                        Color.FromHex("#e55137"), Color.FromHex("#ea9940"),
                        Color.FromHex("#3696e0"), Color.FromHex("#9958bc"),
                        Color.FromHex("#35ad54"), Color.FromHex("#2d3e52"),
                        Color.FromHex("#e55137"), Color.FromHex("#ea9940"),
                        Color.FromHex("#3696e0"), Color.FromHex("#9958bc"),
                        Color.FromHex("#35ad54"), Color.FromHex("#2d3e52"),
                        Color.FromHex("#e55137"), Color.FromHex("#ea9940"),
                        Color.FromHex("#3696e0"), Color.FromHex("#9958bc"),
                        Color.FromHex("#35ad54"), Color.FromHex("#2d3e52"),
                        Color.FromHex("#e55137"), Color.FromHex("#ea9940"),
                        Color.FromHex("#3696e0"), Color.FromHex("#9958bc"),
                        Color.FromHex("#35ad54"), Color.FromHex("#2d3e52"),
                        Color.FromHex("#e55137"), Color.FromHex("#ea9940"),
                        Color.FromHex("#3696e0"), Color.FromHex("#9958bc"),
                        Color.FromHex("#35ad54"), Color.FromHex("#2d3e52"),
                        Color.FromHex("#e55137"), Color.FromHex("#ea9940"),
                        Color.FromHex("#3696e0"), Color.FromHex("#9958bc"),
                        Color.FromHex("#35ad54"), Color.FromHex("#2d3e52"),
                        Color.FromHex("#e55137"), Color.FromHex("#ea9940"),
                        Color.FromHex("#3696e0"), Color.FromHex("#9958bc"),
                        Color.FromHex("#35ad54"), Color.FromHex("#2d3e52"),
                        Color.FromHex("#e55137"), Color.FromHex("#ea9940"),
                        Color.FromHex("#3696e0"), Color.FromHex("#9958bc"),
                        Color.FromHex("#35ad54"), Color.FromHex("#2d3e52"),
                        Color.FromHex("#e55137"), Color.FromHex("#ea9940"),
                        Color.FromHex("#3696e0"), Color.FromHex("#9958bc"),
                        Color.FromHex("#35ad54"), Color.FromHex("#2d3e52"),
                        Color.FromHex("#e55137"), Color.FromHex("#ea9940"),
                        Color.FromHex("#3696e0"), Color.FromHex("#9958bc"),
                        Color.FromHex("#35ad54"), Color.FromHex("#2d3e52"),
                        Color.FromHex("#e55137"), Color.FromHex("#ea9940"),
                        Color.Black
                    },
                };

                var data4 = new BarChartData(new List <IBarDataSet>()
                {
                    dataSet4
                });

                chart.ChartData             = data4;
                chart.DescriptionChart.Text = "Product chart description";

                chart.AxisLeft.DrawGridLines = false;
                chart.AxisLeft.DrawAxisLine  = true;
                chart.AxisLeft.Enabled       = true;

                chart.AxisRight.DrawAxisLine  = false;
                chart.AxisRight.DrawGridLines = false;
                chart.AxisRight.Enabled       = false;

                chart.XAxis.XAXISPosition      = XAXISPosition.BOTTOM;
                chart.XAxis.DrawGridLines      = false;
                chart.XAxis.AxisValueFormatter = new TextByIndexXAxisFormatter(labels);
            }
            catch (Exception ex)
            {
            }
        }
Пример #29
0
 public void UpdateBarChart(BarChartData barChartData)
 {
     currentBarChartData = barChartData;
     NotifyItemChanged(summaryCardCellIndex);
 }
        public JsonResult GetLPC010_ShipmentStatusChart_ByType(string selectmonth, string selectday, string reporttype)
        {
            var cs  = "Host=qa-datalake-pg.cluster-ctg0nvlybzpq.ap-southeast-1.rds.amazonaws.com; Username=datalakero; Password=d@t@SCGL; Database=pd_datalake";
            var con = new NpgsqlConnection(cs);

            con.Open();
            NpgsqlCommand command = new NpgsqlCommand();

            command = con.CreateCommand();
            var sql = " select a.*, b.count, b.DC_Inside, b.DC_Outside, b.Transfer, b.HUB" +
                      " from ( " +
                      " SELECT date_part('day'::text, dates_in_month) AS date_part " +
                      " FROM generate_series(date_trunc('month'::text, now()) , date_trunc('month'::text, now()) + '1 mon'::interval - '1 day'::interval, '1 day'::interval) dates_in_month" +
                      " ) a" +
                      " left join (" +
                      " select tmp.groupdate" +
                      " , date_part('day'::text, tmp.groupdate) AS date_part" +
                      " , count(distinct tmp.load_id)" +
                      " , sum( case when tmp.type = 'DC_Inside' then 1 else 0 end) as DC_Inside" +
                      " , sum( case when tmp.type = 'DC_Outside' then 1 else 0 end) as DC_Outside" +
                      " , sum( case when tmp.type = 'HUB' then 1 else 0 end) as HUB" +
                      " , sum( case when tmp.type = 'Transfer' then 1 else 0 end) as Transfer" +
                      " from (" +
                      " SELECT DISTINCT ON (ll.load_id)" +
                      " ll.load_id AS load_id" +
                      " , date(ll.user_create_date) as groupdate" +
                      " , CASE" +
                      " WHEN lld.origin_code::text = ANY (ARRAY['1130000009'::character varying::text, '6140000022'::character varying::text]) THEN 'DC_Inside'::text" +
                      " WHEN lld.origin_code::text = ANY (ARRAY['1130000011'::character varying::text, '6140000023'::character varying::text]) THEN 'DC_Outside'::text" +
                      " WHEN lld.origin_code::text = ANY (ARRAY['3500000029'::character varying::text, '3520000017'::character varying::text, '3530000011'::character varying::text, '3570000020'::character varying::text, '3600000017'::character varying::text, '3650000011'::character varying::text, '3670000013'::character varying::text, '4300000035'::character varying::text, '4340000027'::character varying::text, '4400000029'::character varying::text, '4410000023'::character varying::text, '4450000022'::character varying::text, '4490000009'::character varying::text, '5800000025'::character varying::text, '5800000027'::character varying::text, '5830000005'::character varying::text, '5840000022'::character varying::text, '5900000024'::character varying::text]) THEN 'HUB'::text" +
                      " ELSE 'Transfer'::text" +
                      " END AS type" +
                      " FROM dom.scvmvc_tms_load_leg ll" +
                      " left JOIN dom.scvmvc_tms_load_leg_detail lld ON ll.load_id::text = lld.load_id::text" +
                      " where extract('month' from ll.user_create_date) = " + selectmonth +
                      " ) tmp" +
                      " group by tmp.groupdate, date_part('day'::text, tmp.groupdate)" +
                      ") b on a.date_part = b.date_part";

            command.CommandText = sql;
            command.Parameters.AddWithValue("@month", Convert.ToInt32(selectmonth));
            command.Parameters.AddWithValue("@day", Convert.ToInt32(selectday));
            NpgsqlDataReader dr = command.ExecuteReader();

            List <string> lsLabel      = new List <string>();
            List <double> lsConsoTotal = new List <double>();
            List <double> lsDC_Inside  = new List <double>();
            List <double> lsDC_Outside = new List <double>();
            List <double> lsHub        = new List <double>();
            List <double> lsTransfer   = new List <double>();

            List <string> lsbgcolorConsoTotal = new List <string>();
            List <string> lsbdcolorConsoTotal = new List <string>();
            List <string> lsbgcolorDC_Inside  = new List <string>();
            List <string> lsbdcolorDC_Inside  = new List <string>();
            List <string> lsbgcolorDC_Outside = new List <string>();
            List <string> lsbdcolorDC_Outside = new List <string>();
            List <string> lsbgcolorHub        = new List <string>();
            List <string> lsbdcolorHub        = new List <string>();
            List <string> lsbgcolorTransfer   = new List <string>();
            List <string> lsbdcolorTransfer   = new List <string>();

            string c1  = "rgba(255, 99, 132, 0.2)";
            string c2  = "rgba(54, 162, 235, 0.2)";
            string c3  = "rgba(255, 206, 86, 0.2)";
            string c4  = "rgba(75, 192, 192, 0.2)";
            string c5  = "rgba(153, 102, 255, 0.2)";
            string c6  = "rgba(255, 159, 64, 0.2)";
            string c7  = "rgb(12, 202, 142, 0.5)";
            string c8  = "rgb(255, 205, 86, 0.5)";
            string c9  = "rgb(255, 99, 132, 0.5)";
            string c10 = "rgb(54, 162, 235, 0.9)";
            string c11 = "rgb(51, 102, 0, 0.9)";

            while (dr.Read())
            {
                lsLabel.Add(dr[0].ToString());
                if (!string.IsNullOrEmpty(dr[1].ToString()))
                {
                    lsConsoTotal.Add(Convert.ToInt32(dr[1].ToString()));
                }
                else
                {
                    lsConsoTotal.Add(0);
                }
                if (!string.IsNullOrEmpty(dr[2].ToString()))
                {
                    lsDC_Inside.Add(Convert.ToInt32(dr[2]));
                }
                else
                {
                    lsDC_Inside.Add(0);
                }
                if (!string.IsNullOrEmpty(dr[3].ToString()))
                {
                    lsDC_Outside.Add(Convert.ToInt32(dr[3]));
                }
                else
                {
                    lsDC_Outside.Add(0);
                }
                if (!string.IsNullOrEmpty(dr[4].ToString()))
                {
                    lsTransfer.Add(Convert.ToInt32(dr[4]));
                }
                else
                {
                    lsTransfer.Add(0);
                }
                if (!string.IsNullOrEmpty(dr[5].ToString()))
                {
                    lsHub.Add(Convert.ToInt32(dr[5]));
                }
                else
                {
                    lsHub.Add(0);
                }

                //set color
                lsbgcolorConsoTotal.Add(c11);
                lsbdcolorConsoTotal.Add(c11);
                lsbgcolorDC_Inside.Add(c7);
                lsbdcolorDC_Inside.Add(c7);
                lsbgcolorDC_Outside.Add(c8);
                lsbdcolorDC_Outside.Add(c8);
                lsbgcolorHub.Add(c9);
                lsbdcolorHub.Add(c9);
                lsbgcolorTransfer.Add(c10);
                lsbdcolorTransfer.Add(c10);
            }

            //Mock the data
            BarChartDataSet datasetConsoTotal = new BarChartDataSet()
            {
                type            = "line",
                label           = "Conso Shipment",
                data            = lsConsoTotal.ToArray(),
                backgroundColor = lsbgcolorConsoTotal.ToArray(),
                borderColor     = lsbdcolorConsoTotal.ToArray(),
                borderWidth     = 1
            };

            BarChartDataSet datasetDC_Inside = new BarChartDataSet()
            {
                type            = "bar",
                label           = "DC_Inside",
                data            = lsDC_Inside.ToArray(),
                backgroundColor = lsbgcolorDC_Inside.ToArray(),
                borderColor     = lsbdcolorDC_Inside.ToArray(),
                borderWidth     = 1
            };

            BarChartDataSet datasetDC_Outside = new BarChartDataSet()
            {
                type            = "bar",
                label           = "DC_Outside",
                data            = lsDC_Outside.ToArray(),
                backgroundColor = lsbgcolorDC_Outside.ToArray(),
                borderColor     = lsbdcolorDC_Outside.ToArray(),
                borderWidth     = 1
            };

            BarChartDataSet datasetTransfer = new BarChartDataSet()
            {
                type            = "bar",
                label           = "Transfer",
                data            = lsTransfer.ToArray(),
                backgroundColor = lsbgcolorTransfer.ToArray(),
                borderColor     = lsbdcolorTransfer.ToArray(),
                borderWidth     = 1
            };

            BarChartDataSet datasetHub = new BarChartDataSet()
            {
                type            = "bar",
                label           = "Hub",
                data            = lsHub.ToArray(),
                backgroundColor = lsbgcolorHub.ToArray(),
                borderColor     = lsbdcolorHub.ToArray(),
                borderWidth     = 1
            };

            BarChartData data = new BarChartData()
            {
                labels   = lsLabel.ToArray(),
                datasets = new BarChartDataSet[] { datasetConsoTotal, datasetDC_Inside, datasetDC_Outside, datasetTransfer, datasetHub }
            };

            var jsonResult = Json(data);

            jsonResult.MaxJsonLength = int.MaxValue;

            return(jsonResult);
        }