Ejemplo n.º 1
0
        public static int UpdateCourse <T>(int id, CourseAttributes attribute, T newValue)
        {
            using (SchoolContext sc = new SchoolContext())
            {
                Course course;

                try
                {
                    course = sc.Courses.Find(id);
                    switch (attribute)
                    {
                    case CourseAttributes.Title:
                        course.Title = newValue.ToString();
                        break;

                    case CourseAttributes.Stream:
                        course.Stream = newValue.ToString();
                        break;

                    case CourseAttributes.Type:
                        course.Type = newValue.ToString();
                        break;

                    case CourseAttributes.StartDate:
                        course.StartDate = (DateTime)(object)newValue;
                        break;

                    case CourseAttributes.EndDate:
                        course.EndDate = (DateTime)(object)newValue;
                        break;

                    default:
                        break;
                    }
                    return(sc.SaveChanges());
                }
                catch (Exception)
                {
                    return(0);
                }
            }
        }
        public void Update()
        {
            bool exit;


            ICollection <Course> courses = DBCourse.ReadCourses();

            if (courses.Count() == 0)
            {
                ConsoleUI.ShowLine("no courses yet");
                ConsoleUI.ReadKey();
                ConsoleUI.Clear();
                return;
            }
            else
            {
                ConsoleUI.ShowLine("select course to update, type 0 to exit");
                foreach (Course c in courses)
                {
                    ConsoleUI.ShowLine(c);
                }
            }


            exit = ConsoleUI.GetInt(out int CourseID, "give course id: ");
            if (exit)
            {
                return;
            }

            ConsoleUI.Clear();

            Course course;

            try
            {
                course = courses.Where(c => c.Id == CourseID).First();
            }
            catch (Exception)
            {
                ConsoleUI.ShowLine($"NO COURSE FOUND WITH ID: {CourseID}");
                ConsoleUI.ReadKey();
                return;
            }

            ConsoleUI.ShowLine($"you selected to edit course: {course.Title}");

            ConsoleUI.ShowLine($"select attribute to edit, type 0 anytime to exit");
            ConsoleUI.ShowLine("1. Title");
            ConsoleUI.ShowLine("2. Stream");
            ConsoleUI.ShowLine("3. Type");
            ConsoleUI.ShowLine("4. Date of start");
            ConsoleUI.ShowLine("5. Date of end");

            exit = ConsoleUI.GetInt(out int choice);
            if (exit)
            {
                return;
            }
            ConsoleUI.Clear();

            CourseAttributes attribute = (CourseAttributes)choice;
            string           newInput  = "";
            DateTime?        newStartDate;
            DateTime?        newEndDate;

            int result = 0;

            switch (attribute)
            {
            case CourseAttributes.Title:
                exit = ConsoleUI.GetString(out newInput, "enter new title: ");
                if (exit)
                {
                    return;
                }

                result = DBCourse.UpdateCourse(CourseID, attribute, newInput);

                break;

            case CourseAttributes.Stream:
                exit = ConsoleUI.GetString(out newInput, "enter new stream: ");
                if (exit)
                {
                    return;
                }

                result = DBCourse.UpdateCourse(CourseID, attribute, newInput);

                break;

            case CourseAttributes.Type:
                exit = ConsoleUI.GetString(out newInput, "enter new type: ");
                if (exit)
                {
                    return;
                }

                result = DBCourse.UpdateCourse(CourseID, attribute, newInput);

                break;

            case CourseAttributes.StartDate:
                exit = ConsoleUI.GetDate(out newStartDate, "enter new start date: ");
                if (exit)
                {
                    return;
                }

                result = DBCourse.UpdateCourse(CourseID, attribute, newStartDate);

                break;

            case CourseAttributes.EndDate:
                exit = ConsoleUI.GetDate(out newEndDate, "enter new end date: ");
                if (exit)
                {
                    return;
                }

                result = DBCourse.UpdateCourse(CourseID, attribute, newEndDate);

                break;

            default:
                break;
            }

            if (result == 0)
            {
                ConsoleUI.ShowLine("course update failed");
            }
            else
            {
                ConsoleUI.ShowLine("course updated successfully");
            }
            ConsoleUI.ReadKey();
        }