示例#1
0
        public List <SummaryNote> GetAllSumary()
        {
            var listado = this.context.ReportNotes
                          .Include(s => s.Student)
                          .Include(t => t.Test)
                          .GroupBy(x => x.Student);
            List <SummaryNote> summaryNotes = new List <SummaryNote>();

            foreach (var item in listado)
            {
                SummaryNote summary = new SummaryNote();
                summary.TestNoteViews = new List <TestNoteView>();
                summary.Student       = item.Key;
                var sty = item.GetEnumerator();

                decimal final = 0;
                foreach (ReportNote test in item)
                {
                    TestNoteView camp = new TestNoteView();
                    camp.Id          = test.Test.Id;
                    camp.IsAvailable = test.Test.IsAvailable;
                    camp.Name        = test.Test.Name;
                    camp.Note        = test.Note;
                    camp.Percentage  = test.Test.Percentage;
                    final           += camp.Note * (camp.Percentage / 100);

                    summary.TestNoteViews.Add(camp);
                }
                summary.Final = final;
                summaryNotes.Add(summary);
            }


            return(summaryNotes);
        }
示例#2
0
        public async Task <SummaryNote> Get(Guid bottleId)
        {
            var allNotes = await _noteStore.GetByBottle(bottleId);

            var summaryNote = new SummaryNote
            {
                BottleId = bottleId
            };

            float?SummarizeRating(IEnumerable <float?> allRatings)
            {
                float?summarizedValue = null;

                if (allRatings.Count() > 0)
                {
                    summarizedValue = (float)(allRatings.Sum(rating => rating) / allRatings.Count());
                }

                return(summarizedValue);
            }

            summaryNote.Rating = SummarizeRating(allNotes.Where(note => note.Rating != null).Select(note => note.Rating));

            Dictionary <string, int> SummarizeTags(IEnumerable <string> allTags)
            {
                var summary = new Dictionary <string, int>();

                foreach (string tags in allTags)
                {
                    string[] tagArr = tags.Split(',');

                    foreach (string tag in tagArr)
                    {
                        if (!summary.ContainsKey(tag))
                        {
                            summary.Add(tag, 0);
                        }

                        summary[tag] = summary[tag] + 1;
                    }
                }

                return(summary);
            }

            summaryNote.Tags = SummarizeTags(allNotes.Where(note => note.Tags != null).Select(note => note.Tags));

            return(summaryNote);
        }