//Move material one position up in the course public ResponseState MaterialPositionInCourseUp(int materialId, int courseId) { var materialsCourse = this.repository.Where <MaterialCourse>(x => x.CourseId == courseId).OrderBy(x => x.Position).ToList(); var value = materialsCourse.FirstOrDefault(x => x.Id == materialId); if (materialsCourse != null && value != null) { MaterialCourse prev = null; if (materialsCourse.Count > 1) { for (int i = 0; i < materialsCourse.Count; i++) { if (materialsCourse[i].Id == materialId && materialsCourse[i].CourseId == courseId) { if ((i - 1) < 0) { prev = materialsCourse[materialsCourse.Count - 1]; } else { prev = materialsCourse[i - 1]; } } } } if (prev != null) { int positionPrev = prev.Position; prev.Position = value.Position; value.Position = positionPrev; this.repository.Update <MaterialCourse>(prev); this.repository.Update <MaterialCourse>(value); this.repository.SaveChanges(); return(new ResponseState { State = true, Massage = $"OK" }); } return(new ResponseState { State = false, Massage = $"CourseHaveOneElement" }); } return(new ResponseState { State = false, Massage = $"CourseNotFound" }); }
//Removes material from a course. public ResponseState DeleteMaterialFromCourse(int courseId, int materialId) { MaterialCourse materialCourse = this.repository.FirstOrDefault <MaterialCourse>(x => x.CourseId == courseId && x.Id == materialId); if (materialCourse != null) { this.repository.Delete <MaterialCourse>(materialCourse); this.repository.SaveChanges(); return(new ResponseState { State = true, Massage = "OK" }); } return(new ResponseState { State = false, Massage = "MaterialCourseIsAbsent" }); }