public UpdateModuleResourceResponse Put(UpdateModuleExerciseRequest request)
        {
            var coachingCourseRepository         = new CoachingCourseRepositoryDocumentDB();
            var coachingModuleResourceRepository = new ModuleResourceRepositoryDocumentDb();
            var coachingModuleRepository         = new CoachingModuleRepositoryDocumentDB();
            var exerciseRepository = new CoachnigModuleExerciseResourceRepositoryDocumentDB();
            var userRepository     = new UserRepositoryDocumentDB();

            var module   = coachingModuleRepository.GetModuleById(request.ModuleId);
            var resource = exerciseRepository.GetResourceById(request.ResourceId);

            var coachingService = new CoachingCourseService(
                coachingCourseRepository,
                coachingModuleResourceRepository,
                coachingModuleRepository,
                exerciseRepository,
                userRepository);

            var newResource = new CoachingModuleExerciseResource()
            {
                RevisionHistory = resource.RevisionHistory,
                Elements        = request.UpdatedElements.Select(e => ModuleResourceDTOConverter.ConvertFromDTO(e, module)).ToList()
            };

            coachingService.UpdateModuleResurce(module, newResource);

            return(new UpdateModuleResourceResponse()
            {
                UpdatedResouceId = newResource.Id, UpdatedResouceVersion = newResource.Version, ParentResourceId = request.ResourceId
            });
        }
        // GET api/values
        public IEnumerable <ModuleExerciseResourceDTO> Get()
        {
            //TODO: Find user
            var exerciseRepository = new CoachnigModuleExerciseResourceRepositoryDocumentDB();

            return(exerciseRepository.GetAllItems().Select(c => ModuleResourceDTOConverter.ConvertToDTO(c)));
        }
        // GET api/values/5
        public ModuleExerciseResourceDTO Get(Guid id)
        {
            var exerciseRepository = new CoachnigModuleExerciseResourceRepositoryDocumentDB();

            return(ModuleResourceDTOConverter.ConvertToDTO(
                       exerciseRepository.GetItems(i => i.Id == id).SingleOrDefault()));
        }
        public UpdateModuleResourceResponse Put(UpdateModuleResourceRequest request)
        {
            var coachingCourseRepository         = new CoachingCourseRepositoryDocumentDB();
            var coachingModuleResourceRepository = new ModuleResourceRepositoryDocumentDb();
            var coachingModuleRepository         = new CoachingModuleRepositoryDocumentDB();
            var exerciseRepository = new CoachnigModuleExerciseResourceRepositoryDocumentDB();
            var userRepository     = new UserRepositoryDocumentDB();

            var module   = coachingModuleRepository.GetModuleById(request.ModuleId);
            var resource = coachingModuleResourceRepository.GetResourceById(request.ResourceId);

            var coachingService = new CoachingCourseService(
                coachingCourseRepository,
                coachingModuleResourceRepository,
                coachingModuleRepository,
                exerciseRepository,
                userRepository);

            var newResource = new CoachingModuleResource()
            {
                RevisionHistory = resource.RevisionHistory,
                Content         = request.UpdatedContent
            };

            coachingService.UpdateModuleResurce(module, newResource);

            return(new UpdateModuleResourceResponse()
            {
                UpdatedResouceId = newResource.Id, UpdatedResouceVersion = newResource.Version, ParentResourceId = request.ResourceId
            });
        }
예제 #5
0
        private void LoadCompletedScoreCardExercises(GetUserResultsResponse response)
        {
            var completedScoreCards = response.ModuleResults.SelectMany(m => m.ModuleResults.Where(r => r.IsCompleted));
            var exerciseIds         = completedScoreCards.Select(e => e.ExerciseId).ToList();

            var exerciseRepository = new CoachnigModuleExerciseResourceRepositoryDocumentDB();
            var exercises          = exerciseRepository.GetItemsAsQueryable().SelectMany(er => er.Elements)
                                     .Where(el => exerciseIds.Contains(el.Exercise.Id)).AsEnumerable().ToList();

            foreach (var scoreCard in completedScoreCards)
            {
                scoreCard.Exercise = ModuleResourceDTOConverter.ConvertToDTO(exercises.Single(e => e.Exercise.Id == scoreCard.ExerciseId));
            }
        }
예제 #6
0
        public dynamic GetModuleExercises(Guid moduleId, [FromBody] string description)
        {
            var coachingModuleRepository         = new CoachingModuleRepositoryDocumentDB();
            var coachingModuleResourceRepository = new CoachnigModuleExerciseResourceRepositoryDocumentDB();

            var coachingModule = coachingModuleRepository.GetModuleById(moduleId);

            //Get all exercises
            var resources = coachingModuleResourceRepository.GetItemsWithIds(new Guid[] {
                coachingModule.Exercise.ResourceReferenceId, coachingModule.Reflection.ResourceReferenceId
            });

            return(new {
                title = coachingModule.Name,
                exercises = resources.Select(r => ModuleResourceDTOConverter.ConvertToDTO(r))
            });
        }
예제 #7
0
        public Guid Post([FromBody] string courseName)
        {
            var coachingCourseRepository         = new CoachingCourseRepositoryDocumentDB();
            var coachingModuleResourceRepository = new ModuleResourceRepositoryDocumentDb();
            var coachingModuleRepository         = new CoachingModuleRepositoryDocumentDB();
            var exerciseRepository = new CoachnigModuleExerciseResourceRepositoryDocumentDB();
            var userRepository     = new UserRepositoryDocumentDB();

            var coachingService = new CoachingCourseService(
                coachingCourseRepository,
                coachingModuleResourceRepository,
                coachingModuleRepository,
                exerciseRepository,
                userRepository);

            var course = coachingService.CreateNewCoachingCourse(courseName);

            return(course.Id);
        }
예제 #8
0
        public Guid Post(CreateModuleInCourseRequest request)
        {
            var coachingCourseRepository         = new CoachingCourseRepositoryDocumentDB();
            var coachingModuleResourceRepository = new ModuleResourceRepositoryDocumentDb();
            var coachingModuleRepository         = new CoachingModuleRepositoryDocumentDB();
            var exerciseRepository = new CoachnigModuleExerciseResourceRepositoryDocumentDB();
            var userRepository     = new UserRepositoryDocumentDB();

            var coachingService = new CoachingCourseService(
                coachingCourseRepository,
                coachingModuleResourceRepository,
                coachingModuleRepository,
                exerciseRepository,
                userRepository);

            var course = coachingCourseRepository.GetCourseById(request.CourseId);

            var module = coachingService.CreateNewModuleInCourse(course, request.ModuleName, 0);

            return(course.Id);
        }
예제 #9
0
        public void AddModuleViaService()
        {
            var courseName = "Service test course with modules";
            //Create the course
            var course = _coachingCourseService.CreateNewCoachingCourse(courseName);

            _coachingCourseService.CreateNewModuleInCourse(course, "Some module", 0);

            //Check that revisions histories was created
            var resourceRepo = new ModuleResourceRepositoryDocumentDb();
            var exerciseRepo = new CoachnigModuleExerciseResourceRepositoryDocumentDB();
            var moduleRepo   = new CoachingModuleRepositoryDocumentDB();
            var foundModule  = moduleRepo.GetModuleById(course.Modules[0].ModuleReferenceId);

            //Check that repos only has one version
            Assert.AreEqual(resourceRepo.GetItems(i => i.RevisionHistory.ReferenceId == foundModule.Introduction.RevisionHistoryReferenceId).Count(), 1);
            Assert.AreEqual(exerciseRepo.GetItems(i => i.RevisionHistory.ReferenceId == foundModule.Exercise.RevisionHistoryReferenceId).Count(), 1);
            Assert.AreEqual(exerciseRepo.GetItems(i => i.RevisionHistory.ReferenceId == foundModule.Reflection.RevisionHistoryReferenceId).Count(), 1);

            Assert.AreNotEqual(foundModule.Introduction.RevisionHistoryReferenceId, foundModule.Exercise.RevisionHistoryReferenceId);
            Assert.AreNotEqual(foundModule.Introduction.RevisionHistoryReferenceId, foundModule.Reflection.RevisionHistoryReferenceId);
            Assert.AreNotEqual(foundModule.Exercise.RevisionHistoryReferenceId, foundModule.Reflection.RevisionHistoryReferenceId);
        }
예제 #10
0
        public void UpdatePromiseExerciseInstructionText()
        {
            var courseName = "Better ways course";
            //Create the course
            var courseRep   = new CoachingCourseRepositoryDocumentDB();
            var moduleRep   = new CoachingModuleRepositoryDocumentDB();
            var resourceRep = new CoachnigModuleExerciseResourceRepositoryDocumentDB();
            var course      = courseRep.GetItems(c => c.Name == courseName).Single();
            var modules     = moduleRep.GetItemsWithIds(course.Modules.Select(m => m.ModuleReferenceId)).ToList();
            var resources   = resourceRep.GetItemsWithIds(modules.SelectMany(m => new[] { m.Exercise.ResourceReferenceId, m.Reflection.ResourceReferenceId })).ToList();

            var goalExercises = resources.SelectMany(r =>
                                                     r.Elements.Where(el => el.Exercise != null && el.Exercise.ExerciseClassName == "Promise").Select(el => new { Resource = r, Exercise = el })
                                                     ).ToList();

            foreach (var goalExercise in goalExercises)
            {
                goalExercise.Exercise.Exercise.InstrunctionContent = new List <string>()
                {
                    "<p>F&oslash;r vi g&aring;r videre skal du give dig selv et m&aring;l til n&aelig;ste modul</p>\n"
                };
                resourceRep.SaveItem(goalExercise.Resource);
            }
        }