public void CreateMethod()
        {
            //If any of the properties are null, there was a problem loading the variables
            if (ClassName == null && DateDue == null && Importance == null)
            {
                throw new InvalidOperationException($"{nameof(ClassName)}, {nameof(DateDue)} or {nameof(Importance)} is null");
            }

            DateTime formatDateDue;

            try
            {
                //Convert the date String into type DateTime
                formatDateDue = DateTime.Parse(DateDue);
            }
            catch (Exception ex)
            {
                //String was in a incorrect format
                throw new FormatException("The Date Due was in a bad format", ex);
            }

            //Retrieves the letter from the end of the Course, this determines which semester the class is in
            var    charArray   = ClassName.ToArray();
            var    getSemester = charArray.Last();
            string semester;

            switch (getSemester)
            {
            case 'a':
                semester = "1st";
                break;

            case 'b':
                semester = "2nd";
                break;

            default:
                semester = "NA";
                break;
            }

            var addClass = new DueItem()
            {
                Class       = ClassName,
                Semester    = semester,
                Date_Due    = formatDateDue,
                Importance  = Importance,
                Description = Description
            };

            using (databaseConnection = new CoursesEntities1())
            {
                databaseConnection.DueItems.Add(addClass);
                databaseConnection.SaveChanges();
            }

            Refresh();
        }
        /// <summary>
        /// Refresh the list that is bound to the DataGridView
        /// </summary>
        private void Refresh()
        {
            Classes.Clear();
            using (databaseConnection = new CoursesEntities1())
            {
                var classList = databaseConnection.DueItems
                                .OrderBy(c => c.Date_Due);

                Classes.AddRange <DueItem>(classList);
            }
        }
        public void DeleteItem()
        {
            if (SelectedClass == null)
            {
                throw new Exception();
            }

            using (databaseConnection = new CoursesEntities1())
            {
                var deletedClass = databaseConnection.DueItems
                                   .Where(x => x.id == SelectedClass.id)
                                   .FirstOrDefault();

                databaseConnection.DueItems.Remove(deletedClass);
                databaseConnection.SaveChanges();
            }
            Refresh();
        }
        private void FilterListExecute()
        {
            if (SelectedFilterClass == null)
            {
                throw new InvalidOperationException($"{nameof(SelectedFilterClass)} is null");
            }

            Classes.Clear();

            using (databaseConnection = new CoursesEntities1())
            {
                var filterList = databaseConnection.DueItems
                                 .Where(x => x.Class == SelectedFilterClass)
                                 .OrderBy(x => x.Date_Due)
                                 .ToList();

                Classes.AddRange <DueItem>(filterList);
            }
        }
        public void InitializeComponents()
        {
            using (databaseConnection = new CoursesEntities1())
            {
                var classList = databaseConnection.DueItems
                                .OrderBy(c => c.Date_Due)
                                .ToList();

                Classes = new ObservableCollection <DueItem>(classList);
            }

            var list = FillEnrollClasses();

            EnrolledClasses = new List <string>(list);

            ImportanceList = new List <string>()
            {
                "Low",
                "Medium",
                "High"
            };
        }
        public void UpdateClass()
        {
            using (databaseConnection = new CoursesEntities1())
            {
                var updateClass = databaseConnection.DueItems
                                  .Where(x => x.id == SelectedClass.id)
                                  .FirstOrDefault();

                if (updateClass.Date_Due != SelectedClass.Date_Due)
                {
                    updateClass.Date_Due = SelectedClass.Date_Due;
                }

                if (updateClass.Description != SelectedClass.Description)
                {
                    updateClass.Description = SelectedClass.Description;
                }

                databaseConnection.SaveChanges();

                Refresh();
            }
        }