Пример #1
0
        private List <EmotionDuringYear> YearlyEmotions()
        {
            string connectionString = DependencyService.Get <IDataBaseAccess>().DataBasePath();

            using (var db = new LiteDatabase(connectionString))
            {
                var collection = db.GetCollection <Emotion>("emotions");

                string[] emotions = { "joy", "anger", "disgust", "contempt", "sadness", "fear", "surprise" };


                List <EmotionDuringYear> EmotionsDuringYear = new List <EmotionDuringYear>();

                List <int> MonthTotal = new List <int>();

                MonthTotal.Add(collection.Count(x => x.Time.Month == 0 && x.Time.Year == DateTime.Now.Year));
                MonthTotal.Add(collection.Count(x => x.Time.Month == 1 && x.Time.Year == DateTime.Now.Year));
                MonthTotal.Add(collection.Count(x => x.Time.Month == 2 && x.Time.Year == DateTime.Now.Year));
                MonthTotal.Add(collection.Count(x => x.Time.Month == 3 && x.Time.Year == DateTime.Now.Year));
                MonthTotal.Add(collection.Count(x => x.Time.Month == 4 && x.Time.Year == DateTime.Now.Year));
                MonthTotal.Add(collection.Count(x => x.Time.Month == 5 && x.Time.Year == DateTime.Now.Year));
                MonthTotal.Add(collection.Count(x => x.Time.Month == 6 && x.Time.Year == DateTime.Now.Year));
                MonthTotal.Add(collection.Count(x => x.Time.Month == 7 && x.Time.Year == DateTime.Now.Year));
                MonthTotal.Add(collection.Count(x => x.Time.Month == 8 && x.Time.Year == DateTime.Now.Year));
                MonthTotal.Add(collection.Count(x => x.Time.Month == 9 && x.Time.Year == DateTime.Now.Year));
                MonthTotal.Add(collection.Count(x => x.Time.Month == 10 && x.Time.Year == DateTime.Now.Year));
                MonthTotal.Add(collection.Count(x => x.Time.Month == 11 && x.Time.Year == DateTime.Now.Year));

                foreach (string element in emotions)
                {
                    List <int> MonthCount = new List <int>();

                    MonthCount.Add(collection.Count(x => x.Feeling == element && x.Time.Month == 0 && x.Time.Year == DateTime.Now.Year));
                    MonthCount.Add(collection.Count(x => x.Feeling == element && x.Time.Month == 1 && x.Time.Year == DateTime.Now.Year));
                    MonthCount.Add(collection.Count(x => x.Feeling == element && x.Time.Month == 2 && x.Time.Year == DateTime.Now.Year));
                    MonthCount.Add(collection.Count(x => x.Feeling == element && x.Time.Month == 3 && x.Time.Year == DateTime.Now.Year));
                    MonthCount.Add(collection.Count(x => x.Feeling == element && x.Time.Month == 4 && x.Time.Year == DateTime.Now.Year));
                    MonthCount.Add(collection.Count(x => x.Feeling == element && x.Time.Month == 5 && x.Time.Year == DateTime.Now.Year));
                    MonthCount.Add(collection.Count(x => x.Feeling == element && x.Time.Month == 6 && x.Time.Year == DateTime.Now.Year));
                    MonthCount.Add(collection.Count(x => x.Feeling == element && x.Time.Month == 7 && x.Time.Year == DateTime.Now.Year));
                    MonthCount.Add(collection.Count(x => x.Feeling == element && x.Time.Month == 8 && x.Time.Year == DateTime.Now.Year));
                    MonthCount.Add(collection.Count(x => x.Feeling == element && x.Time.Month == 9 && x.Time.Year == DateTime.Now.Year));
                    MonthCount.Add(collection.Count(x => x.Feeling == element && x.Time.Month == 10 && x.Time.Year == DateTime.Now.Year));
                    MonthCount.Add(collection.Count(x => x.Feeling == element && x.Time.Month == 11 && x.Time.Year == DateTime.Now.Year));


                    List <double> MonthPercentage = new List <double>();

                    for (int i = 0; i < 12; i++)
                    {
                        double value        = (double)MonthCount[i];
                        double total        = (double)MonthTotal[i];
                        double monthPercent = 0;

                        if (total != 0)
                        {
                            monthPercent = value / total * 100;
                        }

                        MonthPercentage.Add(Math.Round(monthPercent, 1));
                    }

                    EmotionDuringYear emotionData = new EmotionDuringYear
                    {
                        Emotion    = element,
                        Month      = MonthCount,
                        Percentage = MonthPercentage
                    };

                    EmotionsDuringYear.Add(emotionData);
                }

                return(EmotionsDuringYear);
            }
        }
Пример #2
0
        private Chart GetYearChart(EmotionDuringYear EmotionDuringYear, SKColor EmotionColor)
        {
            Chart chart = new LineChart();

            List <double> Percentages = EmotionDuringYear.Percentage;

            var entries = new[]
            {
                new Microcharts.Entry((float)Percentages[0])
                {
                    Label      = "January",
                    ValueLabel = Percentages[0].ToString() + "%",
                    Color      = EmotionColor,
                    TextColor  = SKColors.White
                },

                new Microcharts.Entry((float)Percentages[1])
                {
                    Label      = "February",
                    ValueLabel = Percentages[1].ToString() + "%",
                    Color      = EmotionColor,
                    TextColor  = SKColors.White
                },
                new Microcharts.Entry((float)Percentages[2])
                {
                    Label      = "March",
                    ValueLabel = Percentages[2].ToString() + "%",
                    Color      = EmotionColor,
                    TextColor  = SKColors.White
                },
                new Microcharts.Entry((float)Percentages[3])
                {
                    Label      = "April",
                    ValueLabel = Percentages[3].ToString() + "%",
                    Color      = EmotionColor,
                    TextColor  = SKColors.White
                },
                new Microcharts.Entry((float)Percentages[4])
                {
                    Label      = "May",
                    ValueLabel = Percentages[4].ToString() + "%",
                    Color      = EmotionColor,
                    TextColor  = SKColors.White
                },
                new Microcharts.Entry((float)Percentages[5])
                {
                    Label      = "June",
                    ValueLabel = Percentages[5].ToString() + "%",
                    Color      = EmotionColor,
                    TextColor  = SKColors.White
                },
                new Microcharts.Entry((float)Percentages[6])
                {
                    Label      = "July",
                    ValueLabel = Percentages[6].ToString() + "%",
                    Color      = EmotionColor,
                    TextColor  = SKColors.White
                },
                new Microcharts.Entry((float)Percentages[7])
                {
                    Label      = "August",
                    ValueLabel = Percentages[7].ToString() + "%",
                    Color      = EmotionColor,
                    TextColor  = SKColors.White
                },
                new Microcharts.Entry((float)Percentages[8])
                {
                    Label      = "September",
                    ValueLabel = Percentages[8].ToString() + "%",
                    Color      = EmotionColor,
                    TextColor  = SKColors.White
                },
                new Microcharts.Entry((float)Percentages[9])
                {
                    Label      = "October",
                    ValueLabel = Percentages[9].ToString() + "%",
                    Color      = EmotionColor,
                    TextColor  = SKColors.White
                },
                new Microcharts.Entry((float)Percentages[10])
                {
                    Label      = "November",
                    ValueLabel = Percentages[10].ToString() + "%",
                    Color      = EmotionColor,
                    TextColor  = SKColors.White
                },
                new Microcharts.Entry((float)Percentages[11])
                {
                    Label      = "December",
                    ValueLabel = Percentages[11].ToString() + "%",
                    Color      = EmotionColor,
                    TextColor  = SKColors.White
                },
            };

            chart.Entries         = entries;
            chart.BackgroundColor = SKColors.Transparent;
            chart.LabelColor      = SKColors.White;
            chart.MaxValue        = 100;
            chart.MinValue        = 0;


            return(chart);
        }