// GET: Lesson/Edit/5 public ActionResult Edit(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } Lesson lesson = db.Lessons.FirstOrDefault(l => l.ID == id); if (lesson == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } else { EditLessonViewModel model = new EditLessonViewModel(); ViewBag.CourseName = lesson.Course.Title; model.LessonID = lesson.ID; model.CourseID = lesson.Course.CourseID; model.Launch = lesson.Launch; model.Day = lesson.Day; model.StartHour = lesson.StartHour; model.EndHour = lesson.EndHour; return(View(model)); } }
public ActionResult Edit(EditLessonViewModel request) { if (ModelState.IsValid) { var lesson = db.Lessons.Find(request.Id); lesson.Name = request.Name; if (request.ImageFile != null) { var imageId = Guid.NewGuid().ToString().Replace("-", "").ToLower(); var imageExtension = Path.GetExtension(request.ImageFile.FileName); var imageName = imageId + imageExtension; string pic = System.IO.Path.GetFileName(imageName); string folderPath = "/img/lesson"; Directory.CreateDirectory(Server.MapPath("~" + folderPath)); string path = System.IO.Path.Combine(Server.MapPath("~" + folderPath), pic); request.ImageFile.SaveAs(path); lesson.ImageId = imageId; lesson.ImageExtension = imageExtension; } db.SaveChanges(); return(RedirectToAction("Index")); } return(View(request)); }
public async Task <IActionResult> EditLesson(EditLessonViewModel inputModel) { if (!this.ModelState.IsValid) { return(this.View(inputModel)); } var userId = this.userManager.GetUserId(this.User); await this.lessonsService.EditLesson(inputModel.Id, inputModel.Name, inputModel.Description, userId); return(this.RedirectToAction("EditSegments", "Segments", new { lessonId = inputModel.Id, courseId = inputModel.CourseId })); }
public ActionResult Edit(int id = 0) { var lesson = db.Lessons.Find(id); if (lesson == null) { return(HttpNotFound()); } var response = new EditLessonViewModel { Id = lesson.Id, Name = lesson.Name, ImageUrl = lesson.ImageUrl }; return(View(response)); }
public ActionResult EditLesson(EditLessonViewModel newLesson) { // TODO Move entitie code to another layer try { if (newLesson.StartHour >= newLesson.EndHour) { TempData["EditError"] = "Endhour must be after StartHour"; return(RedirectToAction(nameof(LessonController.Edit), "Lesson", new { newLesson.LessonID })); } // TODO Move entitie code to another layer // method IsValid Lesson lesson = db.Lessons.FirstOrDefault(l => l.ID == newLesson.LessonID); lesson.StartHour = newLesson.StartHour; lesson.EndHour = newLesson.EndHour; lesson.Launch = newLesson.Launch; lesson.Day = newLesson.Day; // TODO the test need to check if the course already in the agenda is not the same ! // if the instructor only want to modify the hours if (!IsLessonValid(lesson)) { TempData["EditError"] = $"You have already a course between {lesson.StartHour} h and {lesson.EndHour} h {lesson.Day}"; return(RedirectToAction(nameof(LessonController.Edit), "Lesson", new { lesson.ID })); } db.SaveChanges(); return(RedirectToAction(nameof(LessonController.Details), "Lesson", new { lesson.ID })); } catch { return(RedirectToAction(nameof(LessonController.Index), "Lesson")); } }
public async Task <IActionResult> Edit(EditLessonViewModel model) { var viewModel = await this.lessonsService.ByIdAsync <EditLessonViewModel>(model.Id); var userId = this.User.FindFirst(ClaimTypes.NameIdentifier).Value; if (userId != viewModel.User.Id) { this.TempData["Error"] = "You are not authorized for this operation!"; return(this.RedirectToAction(nameof(this.ByUser))); } if (!this.ModelState.IsValid) { model.CategoriesItems = await this.categoriesService.AllAsync <CategoriesItemsViewModel>(); return(this.View(model)); } await this.lessonsService.EditAsync(model.Id, model.Title, model.Description, model.VideoUrl, model.CategoryId); this.TempData["Message"] = "Successfully changed."; return(this.RedirectToAction(nameof(this.ByUser))); }
public ActionResult EditLesson(EditLessonViewModel viewModel) { if (!Request.IsAjaxRequest()) { return(new HttpStatusCodeResult(404)); } if (!ModelState.IsValid) { var allErrors = ViewData.ModelState.Values.SelectMany(modelState => modelState.Errors).ToList(); foreach (ModelError error in allErrors) { var message = error.ErrorMessage; } return(null); } // Удаление занятия(ий) var viewModelLessonIds = viewModel.Lessons.SelectMany(x => x.LessonParts).Select(p => p.LessonId); var lessonsForDelete = UnitOfWork.Repository <Lesson>() .Get(x => x.GroupId == viewModel.GroupId && x.WeekNumber == viewModel.WeekNumber && x.DayNumber == viewModel.DayNumber && x.ClassNumber == viewModel.ClassNumber && x.DeletedAt == null) .Where(x => !viewModelLessonIds.Contains(x.LessonId)); foreach (var lesson in lessonsForDelete) { lesson.DeletedAt = DateTime.Now; UnitOfWork.Repository <Lesson>().Update(lesson); UnitOfWork.Save(); Logger.Info("Занятие помечено как удалённое : LessonId=" + lesson.LessonId); } // Создание и обновление занятий foreach (var lessonViewModel in viewModel.Lessons) { foreach (var lessonPartViewModel in lessonViewModel.LessonParts) { var lessonId = lessonPartViewModel.LessonId; var lesson = UnitOfWork.Repository <Lesson>() .Get(x => x.LessonId == lessonId) .SingleOrDefault(); // Обновление занятия if (lesson != null) { lesson.LessonTypeId = lessonViewModel.LessonTypeId; lesson.DisciplineId = lessonViewModel.DisciplineId; lesson.AuditoriumId = lessonPartViewModel.AuditoriumId; lesson.JobId = lessonPartViewModel.TeacherId; // lesson.IsNotActive = lessonPartViewModel.IsNotActive; lesson.UpdatedAt = DateTime.Now; UnitOfWork.Repository <Lesson>().Update(lesson); UnitOfWork.Save(); Logger.Info("Обновлено занятие : LessonId=" + lesson.LessonId); } // Создание нового занятия else { var classDate = ScheduleHelpers.DateOfLesson(UserProfile.EducationYear.DateStart, viewModel.WeekNumber, viewModel.DayNumber); lesson = new Lesson { LessonGuid = Guid.NewGuid(), WeekNumber = viewModel.WeekNumber, DayNumber = viewModel.DayNumber, ClassNumber = viewModel.ClassNumber, ClassDate = classDate, GroupId = viewModel.GroupId, LessonTypeId = lessonViewModel.LessonTypeId, DisciplineId = lessonViewModel.DisciplineId, AuditoriumId = lessonPartViewModel.AuditoriumId, JobId = lessonPartViewModel.TeacherId, // IsNotActive = lessonPartViewModel.IsNotActive, CreatedAt = DateTime.Now, }; UnitOfWork.Repository <Lesson>().Insert(lesson); UnitOfWork.Save(); Logger.Info("Создано новое занятие : LessonId=" + lesson.LessonId); } } } var lessonCell = GetLessonViewModel(viewModel.GroupId, viewModel.WeekNumber, viewModel.DayNumber, viewModel.ClassNumber); return(PartialView("_LessonCell", lessonCell)); }
public ActionResult EditLesson(int groupId, int weekNumber, int dayNumber, int classNumber) { if (!Request.IsAjaxRequest()) { return(null); } var viewModel = new EditLessonViewModel { GroupId = groupId, WeekNumber = weekNumber, DayNumber = dayNumber, ClassNumber = classNumber }; var lessons = GetLessonViewModel(groupId, weekNumber, dayNumber, classNumber, checkDowntimes: false); // Типы занятий viewModel.LessonTypes = UnitOfWork.Repository <LessonType>() .GetQ(orderBy: o => o.OrderBy(n => n.Order)) .Select( x => new LessonTypeViewModel { LessonTypeId = x.LessonTypeId, LessonTypeName = x.LessonTypeName }) .ToList(); // Корпуса var housingRepository = UnitOfWork.Repository <Housing>() as HousingRepository; if (housingRepository != null) { var housings = housingRepository.HousingEqualLength(); viewModel.Housings = housings .Select( x => new HousingViewModel { HousingId = x.HousingId, HousingName = x.HousingName, Abbreviation = x.Abbreviation }) .ToList(); } foreach (var lesson in lessons) { // Преподаватели var jobRepository = UnitOfWork.Repository <Job>() as JobRepository; if (jobRepository != null) { var chairTeachers = jobRepository.ActualTeachers(UserProfile.EducationYear, lesson.ChairId); lesson.ChairTeachers = chairTeachers .Select( x => new TeacherViewModel { TeacherId = x.JobId, TeacherFullName = x.FullName }) .ToList(); } // Аудитории foreach (var lessonPart in lesson.LessonParts) { var chairId = lesson.ChairId; var housingId = lessonPart.HousingId; var auditoriumRepository = UnitOfWork.Repository <Auditorium>() as AuditoriumRepository; if (auditoriumRepository != null) { var auditoriums = auditoriumRepository.AuditoriumWithEmployment(chairId, housingId, weekNumber, dayNumber, classNumber, groupId); lessonPart.Auditoriums = auditoriums .Select( x => new AuditoriumViewModel { AuditoriumId = x.AuditoriumId, AuditoriumNumber = x.AuditoriumNumber, AuditoriumTypeName = x.AuditoriumTypeName, ChairId = x.ChairId, Places = x.Places, Comment = x.Comment, Employment = x.Employment }) .ToList(); } } } viewModel.Lessons = lessons; return(Json(viewModel, JsonRequestBehavior.AllowGet)); }
public EditLessonPage(LessonDetailViewModel viewModel) { InitializeComponent(); Lesson = viewModel.Lesson; BindingContext = vm = new EditLessonViewModel(Lesson); }