Esempio n. 1
0
        //public IEnumerable<Subject> Subjects { get; private set; }
        /// <summary>
        /// Initializes a new instance of the <see cref="T:RUTimetable.DayViewModel"/> class.
        /// </summary>
        /// <param name="day">Day.</param>
        /// <param name="semester">Semester.</param>
        public DayViewModel(string day, int semester)
        {
            db = new RealmDataBase();
            var Day = db.GetDay(day, semester);

            Subjects = new ObservableCollection <Subject>()
            {
            };
            subjects = new ObservableCollection <Subject>()
            {
            };
            this.day      = day;
            ChangeHandler = new SemesterChangeHandler();
            this.semester = semester;
            Populate();
        }
Esempio n. 2
0
        /// <summary>
        /// Populate the specified day.
        /// </summary>
        /// <returns></returns>
        /// <param name="day">Day.</param>
        public void Populate()
        {
            if (LoadedAlready)
            {
                return;
            }
            Subjects.Clear();
            subjects.Clear();
            var dayT = db.GetDay(day, semester);

            if (dayT == null)
            {
                return;
            }
            var dayT2 = dayT.Subjects.ToList();

            for (int i = 0; i < dayT2.Count; i++)
            {
                Subjects.Add(dayT2[i]);
            }
            LoadedAlready = true;
        }
        /// <summary>
        /// Gets the Current days subject period that are upcoming
        /// This feature is still under development not really it works
        ///A demo version is enabled but still needs improving
        /// </summary>

        public void GetSummary()
        {
            summary.Clear();
            Summary.Clear();
            AnyChange = false;
            if (DateTime.Now.DayOfWeek != DayOfWeek.Saturday && DateTime.Now.DayOfWeek != DayOfWeek.Sunday)
            {
                var subs = db.GetDay(DateTime.Now.DayOfWeek.ToString(), DateTime.Now.Month > 6 ? 2 : 1);
                if (subs == null)
                {
                    return;
                }
                var dayT2 = subs.Subjects.ToList();
                for (int i = 0; i < dayT2.Count; i++)
                {
                    var time = new TimeProvider().ConvertLectureTimeToAlarmTime(dayT2[i].Time).Split(':');
                    var DT   = new DateTime(DateTime.Now.Year, DateTime.UtcNow.Month, DateTime.Now.Day, int.Parse(time[0]), int.Parse(time[1]), int.Parse(time[2]));
                    if (DT.TimeOfDay <= DateTime.Now.TimeOfDay)
                    {
                        AnyChange = true;
                        if (dayT2.Count > 1)
                        {
                            for (int i2 = 0; i2 < dayT2.Count; i2++)// this is to check if we already had the lectures listed in the day summary or not
                            {
                                time = new TimeProvider().ConvertLectureTimeToAlarmTime(dayT2[i2].Time).Split(':');
                                DT   = new DateTime(DateTime.Now.Year, DateTime.UtcNow.Month, DateTime.Now.Day, int.Parse(time[0]), int.Parse(time[1]), int.Parse(time[2]));
                                if (DT.TimeOfDay <= DateTime.Now.TimeOfDay)
                                {
                                    //for some odd reason removing an item off the list doesnt work
                                    var removed = dayT2.Remove(dayT2[i2]);
                                    var k       = "";
                                }
                            }
                            if (dayT2.Count > 0)
                            {
                                time = new TimeProvider().ConvertLectureTimeToAlarmTime(dayT2[0].Time).Split(':');
                                DT   = new DateTime(DateTime.Now.Year, DateTime.UtcNow.Month, DateTime.Now.Day, int.Parse(time[0]), int.Parse(time[1]), int.Parse(time[2]));
                                if (DT.TimeOfDay <= DateTime.Now.TimeOfDay)
                                {
                                    Summary.Add(new Subject {
                                        Name = dayT2[i].Name, Period = dayT2[i].Period, Venue = dayT2[i].Venue, Time = dayT2[i].Time, Semester = dayT2[i].Semester, IsReminderSet = dayT2[i].IsReminderSet, FallsIn = "Passed Lecture"
                                    });
                                }
                            }
                            if (i + 1 < dayT2.Count)
                            {
                                Summary.Add(new Subject {
                                    Name = dayT2[i + 1].Name, Period = dayT2[i + 1].Period, Venue = dayT2[i + 1].Venue, Time = dayT2[i + 1].Time, Semester = dayT2[i + 1].Semester, IsReminderSet = dayT2[i + 1].IsReminderSet, FallsIn = "Up-Comming "
                                });
                            }
                            if (i + 2 < dayT2.Count)
                            {
                                Summary.Add(new Subject {
                                    Name = dayT2[i + 2].Name, Period = dayT2[i + 2].Period, Venue = dayT2[i + 2].Venue, Time = dayT2[i + 2].Time, Semester = dayT2[i + 2].Semester, IsReminderSet = dayT2[i + 2].IsReminderSet, FallsIn = "Later on"
                                });
                            }
                            break;
                        }
                    }
                    if (DT.TimeOfDay >= DateTime.Now.TimeOfDay && DateTime.Now.TimeOfDay > new TimeSpan(6, 01, 01) && DateTime.Now.ToString("tt") != "PM")
                    {
                        AnyChange = true;
                        Summary.Add(new Subject {
                            Name = dayT2[i].Name, Period = dayT2[i].Period, Venue = dayT2[i].Venue, Time = dayT2[i].Time, Semester = dayT2[i].Semester, IsReminderSet = dayT2[i].IsReminderSet, FallsIn = "1st Lecture/Practical/Tutorial"
                        });
                        if (i + 1 < dayT2.Count)
                        {
                            Summary.Add(new Subject {
                                Name = dayT2[i + 1].Name, Period = dayT2[i + 1].Period, Venue = dayT2[i + 1].Venue, Time = dayT2[i + 1].Time, Semester = dayT2[i + 1].Semester, IsReminderSet = dayT2[i + 1].IsReminderSet, FallsIn = "Up-Comming"
                            });
                        }
                        if (i + 2 < dayT2.Count)
                        {
                            Summary.Add(new Subject {
                                Name = dayT2[i + 2].Name, Period = dayT2[i + 2].Period, Venue = dayT2[i + 2].Venue, Time = dayT2[i + 2].Time, Semester = dayT2[i + 2].Semester, IsReminderSet = dayT2[i + 2].IsReminderSet, FallsIn = "Later on"
                            });
                        }
                        if (i + 3 < dayT2.Count)
                        {
                            Summary.Add(new Subject {
                                Name = dayT2[i + 3].Name, Period = dayT2[i + 3].Period, Venue = dayT2[i + 3].Venue, Time = dayT2[i + 3].Time, Semester = dayT2[i + 3].Semester, IsReminderSet = dayT2[i + 3].IsReminderSet, FallsIn = "Later on"
                            });
                        }
                        break;
                    }
                    if (DateTime.Now.ToString("tt") == "PM" && DateTime.Now.Hour >= 6)
                    {
                        subs = db.GetDay(DateTime.Now.AddDays(1).DayOfWeek.ToString(), DateTime.Now.Month > 6 ? 2 : 1);
                        if (subs == null)
                        {
                            return;
                        }
                        dayT2 = subs.Subjects.ToList();
                        Summary.Add(new Subject {
                            Name = dayT2[i].Name, Period = dayT2[i].Period, Semester = dayT2[i].Semester, Time = dayT2[i].Time, Venue = dayT2[i].Venue, FallsIn = "Tommorrow"
                        });
                        break;
                    }
                    else if ((DateTime.Now.ToString("tt") == "AM" && DateTime.Now.TimeOfDay <= new TimeSpan(7, 45, 01) && DateTime.Now.TimeOfDay >= new TimeSpan(00, 00, 01)))
                    {
                        AnyChange = true;
                        Summary.Add(new Subject {
                            Name = dayT2[i].Name, Period = dayT2[i].Period, Venue = dayT2[i].Venue, Time = dayT2[i].Time, Semester = dayT2[i].Semester, IsReminderSet = dayT2[i].IsReminderSet, FallsIn = "First Lecture/Practical/Tutorial"
                        });
                        if (i + 1 < dayT2.Count)
                        {
                            Summary.Add(new Subject {
                                Name = dayT2[i + 1].Name, Period = dayT2[i + 1].Period, Venue = dayT2[i + 1].Venue, Time = dayT2[i + 1].Time, Semester = dayT2[i + 1].Semester, IsReminderSet = dayT2[i + 1].IsReminderSet, FallsIn = "Followed by"
                            });
                        }
                        if (i + 2 < dayT2.Count)
                        {
                            Summary.Add(new Subject {
                                Name = dayT2[i + 2].Name, Period = dayT2[i + 2].Period, Venue = dayT2[i + 2].Venue, Time = dayT2[i + 2].Time, Semester = dayT2[i + 2].Semester, IsReminderSet = dayT2[i + 2].IsReminderSet, FallsIn = "Later on"
                            });
                        }
                        break;
                    }
                }
            }
        }