Ejemplo n.º 1
0
        public IEnumerable <Report> GetReport(string date, string subject, string domain, string viewtype)
        {
            var workData     = _reportProvider.getAllReports();
            var dateToSearch = DateTime.Parse(date);
            var reports      = new List <Report>();

            if (workData != null)
            {
                var workList = workData.Where(a => a.SubmitDate == dateToSearch);

                if (!string.IsNullOrWhiteSpace(subject))
                {
                    workList = workList.Where(a => a.Subject == subject);
                }
                if (!string.IsNullOrWhiteSpace(domain))
                {
                    workList = workList.Where(a => a.Domain == domain);
                }

                var groupByList = GroupDataByViewType(workList, viewtype);

                foreach (var item in groupByList)
                {
                    var report = new Report();
                    report.Key               = item.Key;
                    report.NoOfExercises     = item.GroupBy(a => a.ExerciseId).Count();
                    report.NoOfStudents      = item.GroupBy(a => a.UserId).Count();
                    report.CorrectAttempts   = item.ToList().FindAll(a => a.Correct == 1).Count();
                    report.IncorrectAttempts = item.ToList().FindAll(a => a.Correct == 0).Count();
                    reports.Add(report);
                }
            }

            return(reports);
        }