//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"
            });
        }