Esempio n. 1
0
        public async Task <IActionResult> Edit(EditCourseModel model)
        {
            const string func = "Edit";

            if (ModelState.IsValid)
            {
                try
                {
                    Course existing = null;
                    if (model.CourseId.HasValue)
                    {
                        existing = await _courseRepo.GetData(model.CourseId.Value);
                    }
                    Course course = model.ToDataModel(_mapper, existing);
                    course.ModifyUserId = 1;
                    course.ModifyDate   = DateTime.Now;
                    await _courseRepo.SaveData(course);

                    return(Json(new AjaxResultModel(AjaxResultModel.StatusCodeSuccess, "Save Complete!")));
                }
                catch (Exception ex)
                {
                    _logger.LogError("{0}: Exception caught.", func, ex);
                    ModelState.AddModelError("", "Save Failed!");
                }
            }
            return(Json(new AjaxResultModel(AjaxResultModel.StatusCodeError, ModelState)));
        }
Esempio n. 2
0
        public ICourseModel UpdateCourse(EditCourseModel courseModel)
        {
            var updatedCourse = new CourseModel();

            try
            {
                // Step 1 - Initialize the connection and set the sproc
                var conn    = new SqlConnection(connStr);
                var command = new SqlCommand(StoredProcedures.Courses_Update, conn);
                command.CommandType = CommandType.StoredProcedure;
                conn.Open();

                // Step 2 - Set the Parameters
                command.Parameters.AddWithValue("@IdCourse", courseModel.IdCourse);
                command.Parameters.AddWithValue("@CourseName", courseModel.CourseName);
                command.Parameters.AddWithValue("@CourseDescription", string.IsNullOrEmpty(courseModel.CourseDescription) ? "" : courseModel.CourseDescription);
                command.Parameters.AddWithValue("@CourseInstructorId", courseModel.CourseInstructorId == 0 ? null : courseModel.CourseInstructorId);
                command.Parameters.AddWithValue("@CourseInstructorUsername", string.IsNullOrEmpty(courseModel.CourseInstructorUsername) ? null : courseModel.CourseInstructorUsername);
                command.Parameters.AddWithValue("@Semester", courseModel.Semester);
                command.Parameters.AddWithValue("@SeatsMax", courseModel.SeatsMax);
                command.Parameters.AddWithValue("@SeatsOpen", courseModel.SeatsOpen);
                command.Parameters.AddWithValue("@StartTime", string.IsNullOrEmpty(courseModel.StartTime) ? "" : courseModel.StartTime);
                command.Parameters.AddWithValue("@EndTime", string.IsNullOrEmpty(courseModel.EndTime) ? "" : courseModel.EndTime);
                command.Parameters.AddWithValue("@DayOfWeek", string.IsNullOrEmpty(courseModel.DayOfWeek) ? "" : courseModel.DayOfWeek);

                // Step 3 - Execute the sproc and store the new User in an object
                var sqlReader = command.ExecuteReader();

                // Null values for null assignment
                DateTime?nullDateTime = null;

                while (sqlReader.Read())
                {
                    updatedCourse.IdCourse                 = sqlReader.GetInt32(0);
                    updatedCourse.Department               = sqlReader.GetString(1);
                    updatedCourse.CourseNumber             = sqlReader.GetInt32(2);
                    updatedCourse.CourseName               = sqlReader.GetString(3);
                    updatedCourse.CourseDescription        = sqlReader.IsDBNull(4) ? "" : sqlReader.GetString(4);
                    updatedCourse.CourseInstructorId       = sqlReader.IsDBNull(5) ? 0 : sqlReader.GetInt32(5);
                    updatedCourse.CourseInstructorUsername = sqlReader.IsDBNull(6) ? "" : sqlReader.GetString(6);
                    updatedCourse.Semester                 = sqlReader.GetString(7);
                    updatedCourse.SeatsOpen                = sqlReader.GetInt32(8);
                    updatedCourse.SeatsMax                 = sqlReader.GetInt32(9);
                    updatedCourse.StartTime                = sqlReader.IsDBNull(10) ? nullDateTime : sqlReader.GetDateTime(10);
                    updatedCourse.EndTime   = sqlReader.IsDBNull(11) ? nullDateTime : sqlReader.GetDateTime(11);
                    updatedCourse.DayOfWeek = sqlReader.IsDBNull(12) ? "" : sqlReader.GetString(12);
                }
                sqlReader.Close();
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }

            return(updatedCourse);
        }
Esempio n. 3
0
        public IActionResult Edit(EditCourseModel model)
        {
            if (!ModelState.IsValid)
            {
                return(this.RedirectToAction(nameof(Edit)));
            }

            this.courses.Edit(model);

            return(this.RedirectToAction(nameof(Courses)));
        }
Esempio n. 4
0
        public void Edit(EditCourseModel model)
        {
            using (this.db)
            {
                var course = this.db.Courses
                             .FirstOrDefault(c => c.Id == model.Id);

                if (course != null)
                {
                    course.Name        = model.Name;
                    course.StartDate   = model.StartDate;
                    course.EndDate     = model.EndDate;
                    course.Description = model.Description;

                    this.db.SaveChanges();
                }
            }
        }
Esempio n. 5
0
        public CourseModel UpdateCourse(EditCourseModel courseModel)
        {
            var updatedCourse = new CourseModel();

            try
            {
                // Null check the model, then update the user
                if (courseModel != null && courseModel.IdCourse != null)
                {
                    updatedCourse = CoursesRepository.UpdateCourse(courseModel) as CourseModel;
                }
            }
            catch (Exception e)
            {
                Console.Write(e.Message);
            }

            return(updatedCourse);
        }
Esempio n. 6
0
        public ActionResult Edit(EditCourseModel courseModel, int id)
        {
            if (ModelState.IsValid)
            {
                Course course = db.Courses.Find(id);
                if (course == null)
                {
                    return(HttpNotFound());
                }
                //set creator to current user

                course.Description = courseModel.Description;
                course.Name        = courseModel.Name;

                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(courseModel));
        }
Esempio n. 7
0
        public ActionResult EditCourse(int courseId)
        {
            var viewString = ViewStrings.EditCourse;

            // Populate TempData with necessary list data
            GetListData();

            try
            {
                // Step 1 - Get the course by the courseId passed
                var course = CoursesService.GetCourse(new CourseModel {
                    IdCourse = courseId
                });

                // Step 2 - Set up an EditCourseModel based on the current Course
                var editCourse = new EditCourseModel
                {
                    IdCourse                 = course.IdCourse,
                    Department               = course.Department,
                    CourseNumber             = course.CourseNumber,
                    CourseName               = course.CourseName,
                    CourseDescription        = course.CourseDescription,
                    CourseInstructorId       = course.CourseInstructorId,
                    CourseInstructorUsername = course.CourseInstructorUsername,
                    Semester                 = course.Semester,
                    SeatsMax                 = course.SeatsMax,
                    SeatsOpen                = course.SeatsOpen,
                    StartTime                = course.StartTime?.ToShortTimeString(),
                    EndTime   = course.EndTime?.ToShortTimeString(),
                    DayOfWeek = course.DayOfWeek
                };

                // Load the page with the Current Course's Info
                return(View(viewString, editCourse));
            }
            catch (Exception e)
            {
                Console.Write(e.Message);
                return(View(viewString, new EditCourseModel()));
            }
        }
Esempio n. 8
0
        public async Task <IActionResult> Edit(int?id)
        {
            const string func = "Edit";

            try
            {
                EditCourseModel model;
                if (id.HasValue)
                {
                    model = new EditCourseModel(await _courseRepo.GetData(id), _mapper);
                }
                else
                {
                    model = new EditCourseModel();
                }

                return(View(model));
            }
            catch (Exception ex)
            {
                _logger.LogError("{0}: Exception caught with id {1}.", func, id, ex);
                return(NotFound());
            }
        }
Esempio n. 9
0
        public ActionResult EditCourse(EditCourseModel model)
        {
            var viewString = ViewStrings.EditCourse;

            // Populate TempData with necessary list data
            GetListData();

            try
            {
                // If model is invalid, show errors
                if (!ModelState.IsValid)
                {
                    return(View(viewString, model));
                }

                // Step 1 - Calculate SeatsOpen if SeatsMax field is updated
                var existingCourse = CoursesService.GetCourse(new CourseModel {
                    IdCourse = model.IdCourse
                });
                if (!model.SeatsMax.Equals(existingCourse.SeatsMax))
                {
                    // Updated SeatsMax must be greater than or equal to the number of students currently registered
                    if (!(model.SeatsMax >= existingCourse.SeatsMax - existingCourse.SeatsOpen))
                    {
                        ModelState.AddModelError("UpdateFailed", "Update Failed");
                        model.ErrorMessage = "Seats Available must be greater than " + (existingCourse.SeatsMax - existingCourse.SeatsOpen).ToString();
                        return(View(viewString, model));
                    }

                    // Update SeatsOpen: Add or subtract the number of seats added/removed
                    model.SeatsOpen += model.SeatsMax - existingCourse.SeatsMax;
                }

                // Step 2 - Update the CourseInstructorAssoc record if changed
                if (!model.CourseInstructorId.Equals(existingCourse.CourseInstructorId))
                {
                    // If instructor was removed, remove the record
                    if (model.CourseInstructorId == null)
                    {
                        InstructorCourseAssocService.DeleteAssoc(model.IdCourse ?? 0);
                        model.CourseInstructorUsername = null;
                    }
                    else
                    {
                        // If instructor is changed, update or add the record
                        if (InstructorCourseAssocService.GetAssoc(model.IdCourse ?? 0).IdCourse > 0)
                        {
                            InstructorCourseAssocService.UpdateAssoc(new InstructorCourseAssocModel {
                                IdCourse = model.IdCourse ?? 0, IdInstructor = model.CourseInstructorId ?? 0
                            });
                        }
                        else
                        {
                            InstructorCourseAssocService.InsertAssoc(new InstructorCourseAssocModel {
                                IdCourse = model.IdCourse ?? 0, IdInstructor = model.CourseInstructorId ?? 0
                            });
                        }

                        model.CourseInstructorUsername = UsersService.GetUser(model.CourseInstructorId.ToString()).Username;
                    }
                }

                // Step 3 - Update the User record in the Database and store in TempData for Current User
                CoursesService.UpdateCourse(model);

                // Step 4 - Bring the user to the success page
                viewString = ViewStrings.EditCourse_Success;
                return(View(viewString));
            }
            catch (Exception e)
            {
                Console.Write(e.Message);
                return(View(viewString, model));
            }
        }