예제 #1
0
        protected override void Initialize(HttpControllerContext controllerContext)
        {
            base.Initialize(controllerContext);
            var context = new TeachMeBackendContext();

            SetDomainManager(new EntityDomainManager <T>(context, Request));
        }
예제 #2
0
        protected override void Initialize(HttpControllerContext controllerContext)
        {
            base.Initialize(controllerContext);
            TeachMeBackendContext context = new TeachMeBackendContext();

            DomainManager = new EntityDomainManager <CommentRating>(context, Request);
        }
        // GET tables/TodoItem
        //      [Route("")]
        public IQueryable <TodoItem> GetAllTodoItems()
        {
            var query = Query();

            if (!query.Any())
            {
                List <TodoItem> todoItems = new List <TodoItem>
                {
                    new TodoItem {
                        Id = Guid.NewGuid().ToString(), Text = "First item", Complete = false
                    },
                    new TodoItem {
                        Id = Guid.NewGuid().ToString(), Text = "Second item", Complete = false
                    },
                };

                using (TeachMeBackendContext context = new TeachMeBackendContext())
                {
                    foreach (TodoItem todoItem in todoItems)
                    {
                        context.Set <TodoItem>().Add(todoItem);
                    }
                    context.SaveChanges();
                }
            }
            return(query);
        }
예제 #4
0
        //Calculates progress for all exercises under this lesson for the current user
        private ProgressLessonModel CalculateLessonProgress(string id)
        {
            ProgressLessonModel progressLessonModel = new ProgressLessonModel();

            using (var db = new TeachMeBackendContext())
            {
                var exercises = db.Exercises.Where(ex => ex.LessonId == id).Include(ex => ex.ExerciseStudents);
                progressLessonModel.ExercisesNumber = exercises.Count();
                if (User is ClaimsPrincipal claimsPrincipal)
                {
                    var userId = claimsPrincipal.FindFirst(ClaimTypes.PrimarySid).Value;
                    progressLessonModel.ExercisesDone =
                        exercises.Count(ex => ex.ExerciseStudents.Any(c => c.UserId == userId && c.IsDone));
                    var lessonProgress =
                        db.LessonProgresses.FirstOrDefault(p => p.UserId == userId && p.LessonId == id);
                    if (lessonProgress != null)
                    {
                        progressLessonModel.IsDone    = lessonProgress.IsDone;
                        progressLessonModel.IsStarted = lessonProgress.IsDone;
                    }
                }
            }

            return(progressLessonModel);
        }
        //Calculates progress for all lessons under this section for the current user
        private ProgressSectionModel CalculateSectionProgress(string id)
        {
            ProgressSectionModel progressSectionModel = new ProgressSectionModel();

            using (var db = new TeachMeBackendContext())
            {
                var lessons = db.Lessons.Where(l => l.SectionId == id).Include(l => l.LessonProgresses);
                progressSectionModel.LessonsNumber = lessons.Count();
                if (User is ClaimsPrincipal claimsPrincipal)
                {
                    var userId = claimsPrincipal.FindFirst(ClaimTypes.PrimarySid).Value;
                    progressSectionModel.LessonsDone =
                        lessons.Count(l => l.LessonProgresses.Any(p => p.UserId == userId && p.IsDone));
                    var sectionProgress =
                        db.SectionProgresses.FirstOrDefault(p => p.UserId == userId && p.SectionId == id);
                    if (sectionProgress != null)
                    {
                        progressSectionModel.IsDone    = sectionProgress.IsDone;
                        progressSectionModel.IsStarted = sectionProgress.IsDone;
                    }
                }
            }

            return(progressSectionModel);
        }
        protected override void Initialize(HttpControllerContext controllerContext)
        {
            base.Initialize(controllerContext);
            TeachMeBackendContext context = new TeachMeBackendContext();

            DomainManager = new EntityDomainManager <StudyProgramCourse>(context, Request);
        }
        // In this method we will create default User roles
        private static void CreateRoles()
        {
            TeachMeBackendContext context = new TeachMeBackendContext();

            var roleManager = new RoleManager <IdentityRole>(new RoleStore <IdentityRole>(context));


            if (!roleManager.RoleExists(UserRole.Student.ToString()))
            {
                roleManager.Create(new IdentityRole {
                    Name = UserRole.Student.ToString()
                });
            }

            if (!roleManager.RoleExists(UserRole.Teacher.ToString()))
            {
                roleManager.Create(new IdentityRole {
                    Name = UserRole.Teacher.ToString()
                });
            }

            if (!roleManager.RoleExists(UserRole.Admin.ToString()))
            {
                roleManager.Create(new IdentityRole {
                    Name = UserRole.Admin.ToString()
                });
            }
        }
예제 #8
0
        public IHttpActionResult DeleteCourse(string id)
        {
            using (var dbContext = new TeachMeBackendContext())
            {
                var course = dbContext.DeleteCourseAndChildren(id);
                if (course == null)
                {
                    return(NotFound());
                }
                dbContext.SaveChanges();
            }

            return(StatusCode(HttpStatusCode.NoContent));
        }
        public IHttpActionResult GetSectionProgress(string id)
        {
            using (var db = new TeachMeBackendContext())
            {
                Section section = db.Sections.Find(id);
                if (section == null)
                {
                    return(NotFound());
                }
            }

            //Calculates progress for all lessons under this section for the current user
            ProgressSectionModel progress = CalculateSectionProgress(id);

            return(Ok(progress));
        }
예제 #10
0
        public IHttpActionResult GetCourseProgress(string id)
        {
            using (var db = new TeachMeBackendContext())
            {
                Course course = db.Courses.Find(id);
                if (course == null)
                {
                    return(NotFound());
                }
            }

            //Calculates progress for all exercises under this course for the current user
            ProgressCourseModel progress = CalculateCourseProgress(id);

            return(Ok(progress));
        }
예제 #11
0
        //Calculates progress for all sections under this course for the current user
        private ProgressCourseModel CalculateCourseProgress(string id)
        {
            ProgressCourseModel progressCourseModel = new ProgressCourseModel();

            using (var db = new TeachMeBackendContext())
            {
                var sections = db.Sections.Where(c => c.CourseId == id).Include(c => c.SectionProgresses);
                progressCourseModel.SectionsNumber = sections.Count();
                if (User is ClaimsPrincipal claimsPrincipal)
                {
                    var userId = claimsPrincipal.FindFirst(ClaimTypes.PrimarySid).Value;
                    progressCourseModel.SectionsDone =
                        sections.Count(c => c.SectionProgresses.Any(p => p.UserId == userId && p.IsDone));
                }
            }

            return(progressCourseModel);
        }