示例#1
0
 public List<Subject> generateSubjectList(int newProgress, DateTime submitDate, List<Subject> listOfSubjects, string subjectName)
 {
     Boolean isNewSubject = true;
     foreach (var sub in listOfSubjects)
     {
         if (sub.SubjectName.Equals(subjectName))
         {
             isNewSubject = false;
             sub.Progress += newProgress;
         }
     }
     if (isNewSubject)
     {
         Subject tempSubject = new Subject();
         tempSubject.Progress = newProgress;
         tempSubject.SubjectName = subjectName;
         tempSubject.SubmitDate = submitDate;
         listOfSubjects.Add(tempSubject);
     }
     return listOfSubjects;
 }
示例#2
0
        public ActionResult Work(string SubmitDate, string GenerateReport)
        {
            if (SubmitDate == null)
                SubmitDate = "3/24/2015";
            IEnumerable<Work> workData;

            // Get the correct file path
            var dataPath = AppDomain.CurrentDomain.BaseDirectory.ToString();
            var filePath = Path.Combine(dataPath, "App_Data\\work.json");

            DateTime submitDate = Convert.ToDateTime(SubmitDate);

            // Serialize Json to objects
            using (StreamReader file = System.IO.File.OpenText(filePath))
            {
                JsonSerializer serializer = new JsonSerializer()
                {
                    DateTimeZoneHandling = DateTimeZoneHandling.Utc
                };
                workData = (IEnumerable<Work>)serializer.Deserialize(file, typeof(IEnumerable<Work>));
            }
            workData = RemoveAllRecordsAfterToday(workData);

            // Return only the answers for today
            IEnumerable<Work> totalRecordsByDate = workData.Where(x => x.SubmitDate == submitDate).AsEnumerable<Work>();
            if (totalRecordsByDate.Count() == 0)
            {
                ViewBag.ErrorMessageForNoRecord = "No record found for "+ submitDate + ", please choose some other date. Showing data for today";
                submitDate = Convert.ToDateTime("3/24/2015");
                totalRecordsByDate = workData.Where(x => x.SubmitDate == submitDate).AsEnumerable<Work>();
            }
            var subjectList = (from records in totalRecordsByDate
                               group records by records.Subject into subjectGroup
                               select subjectGroup);
            var cou = subjectList.Count();
            List<User> listOfUsers = new List<User>();
            List<Subject> listOfSubjects = new List<Subject>();
            foreach (var subject in subjectList)
            {
                Console.WriteLine("Key: {0}", subject.Key);
                Boolean isFirstTime = true;
                foreach (var records in subject)
                {
                    int newProgress = records.Progress;
                    int newUserId = records.UserId;
                    String subjectName = subject.Key;
                    if (isFirstTime)
                    {
                        //Add first record in User
                        User newUser = new User();
                        newUser.UserId = newUserId;
                        newUser.Progress = newProgress;
                        newUser.Subject = subjectName;
                        newUser.SubmitDate = submitDate;
                        listOfUsers.Add(newUser);

                        //Add first record in Subject
                        Subject sub = new Subject();
                        sub.SubjectName = subjectName;
                        sub.Progress = newProgress;
                        sub.SubmitDate = submitDate;

                        isFirstTime = false;
                    }
                    else
                    {
                        listOfSubjects = generateSubjectList(newProgress, submitDate, listOfSubjects, subjectName);
                        listOfUsers = generateUserList(newUserId, newProgress, submitDate, listOfUsers, subjectName);
                    }
                }

                int c = listOfUsers.Count();
            }
            ViewBag.Users = listOfUsers;
            ViewBag.Subjects = listOfSubjects;
            ViewBag.DataPoints1 = JsonConvert.SerializeObject(subjectGraph(listOfSubjects));
            ViewBag.DataPoints2 = JsonConvert.SerializeObject(userGraph(listOfUsers));
            return View(listOfSubjects);
        }