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
            });
        }
        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
            });
        }
Пример #3
0
        // GET api/values
        public IEnumerable <CoachingCourseDTO> Get()
        {
            //TODO: Find user
            var coachingCourseRepository = new CoachingCourseRepositoryDocumentDB();

            return(coachingCourseRepository.GetAllItems().Select(c => CoachingCourseDTOConverter.ConvertToDTO(c)));
        }
Пример #4
0
        private GetUserResultsResponse UserResults(User usr)
        {
            //Load modules
            var coachingCourseRepository = new CoachingCourseRepositoryDocumentDB();
            var coachingModuleRepository = new CoachingModuleRepositoryDocumentDB();
            var moduleGroupRepository    = new ModuleGroupRepositoryDocumentDB();

            //TODO: Support multiple course admissions
            var course       = coachingCourseRepository.GetCourseById(usr.CourseAdmissions.Single().CourseId);
            var modules      = coachingModuleRepository.GetModulesWithIds(course.Modules.Select(m => m.ModuleReferenceId)).ToList();
            var moduleGroups = moduleGroupRepository.GetItemsWithIds(course.ModuleGroups);

            var userResults = new GetUserResultsResponse()
            {
                ModuleResults = modules.Select(m => {
                    var moduleResults = usr.CourseAdmissions.Single().Results.Where(r =>
                                                                                    r.Module.ModuleReferenceId == m.Id
                                                                                    ).ToList();

                    return(new ModuleResultsDto()
                    {
                        Module = CoachingModuleDTOConverter.ConvertToDTO(m),
                        ModuleResults = moduleResults.Select(mr =>
                                                             UserDtoConverter.ConvertScoreCardDto(mr)).ToList()
                    });
                }).ToList(),
                Groups = moduleGroups.Select(CoachingModuleDTOConverter.ConvertToDTO),
                User   = UserDtoConverter.ConvertUserToBaseDto(usr)
            };

            userResults.ActiveModule      = userResults.ModuleResults.FirstOrDefault(mr => mr.ModuleResults.Any(r => !r.IsCompleted)).Module;
            userResults.ActiveModuleIndex = modules.IndexOf(modules.Single(m => m.Id == userResults.ActiveModule.Id));

            return(userResults);
        }
Пример #5
0
        // GET api/values/5
        public CoachingCourseDTO Get(Guid id)
        {
            var coachingCourseRepository = new CoachingCourseRepositoryDocumentDB();

            return(CoachingCourseDTOConverter.ConvertToDTO(
                       coachingCourseRepository.GetItems(i => i.Id == id).SingleOrDefault()));
        }
Пример #6
0
        public IEnumerable <CoachingModuleDTO> Modules(Guid courseId)
        {
            var coachingCourseRepository = new CoachingCourseRepositoryDocumentDB();
            var coachingModuleRepository = new CoachingModuleRepositoryDocumentDB();

            //Get the course
            var course = coachingCourseRepository.GetCourseById(courseId);
            //Get modules in course
            var modules = coachingModuleRepository.GetItemsWithIds(course.Modules.Select(m => m.ModuleReferenceId)).OrderBy(m => m.ModuleIndex);

            return(modules.Select(m => CoachingModuleDTOConverter.ConvertToDTO(m)));
        }
        public void UpdateModuleName()
        {
            var courseName = "Course with modules";
            var courseRepo = new CoachingCourseRepositoryDocumentDB();
            var moduleRepo = new CoachingModuleRepositoryDocumentDB();
            var course     = new CoachingCourse(courseName);

            courseRepo.CreateCoachingCourse(course);

            var introduction = new CoachingModuleResource()
            {
                RevisionHistory = new ResourseRevisionHistoryReference(), Content = "<h1>&lt;Overskrift her&gt;</h1> <p>&lt;Kort tekst her&gt;</p> <div data-oembed-url='https://vimeo.com/ricardonilsson/coachingwill'> <div style='left: 0px; width: 100%; height: 0px; position: relative; padding-bottom: 56.2493%;'><iframe allowfullscreen='true' frameborder='0' mozallowfullscreen='true' src='//player.vimeo.com/video/77308630?byline=0&amp;badge=0&amp;portrait=0&amp;title=0' style='top: 0px; left: 0px; width: 100%; height: 100%; position: absolute;' webkitallowfullscreen='true'></iframe></div> </div> <h2>&lt;Overskrift, start p&aring; udvidet intro&gt;</h2> <p>&lt;Intro her&gt;</p> <h2>&lt;Overskrift, eksterne henvisninger&gt;</h2> <p><a href='http://wikipedia.org'>&lt;Eksempel p&aring; link&gt;</a></p>"
            };
            var exercise = new CoachingModuleExerciseResource()
            {
                RevisionHistory = new ResourseRevisionHistoryReference(), Elements = new List <ResourceExerciseElement>()
                {
                    new ResourceExerciseElement("<h1>&lt;Overskrift her&gt;</h1>  <p>&lt;Kort tekst her, efterfulgt af &gt;</p>  <SortableList/>")
                }
            };
            var reflection = new CoachingModuleExerciseResource()
            {
                RevisionHistory = new ResourseRevisionHistoryReference(), Elements = new List <ResourceExerciseElement>()
                {
                    new ResourceExerciseElement("<h1>&lt;Overskrift her&gt;</h1>  <p>&lt;Kort tekst her&gt;</p>  <h2>&nbsp;</h2>")
                }
            };

            var module = new CoachingModule
                         (
                "Some module, that is gonna have its name changed",
                introduction,
                exercise,
                reflection
                         );

            course.AddCoachingModule(module);
            moduleRepo.CreateModule(module);
            courseRepo.SaveCoachingCourse(course);

            moduleRepo = new CoachingModuleRepositoryDocumentDB();
            var foundModule = moduleRepo.GetItems(m => m.Id == module.Id).Single();

            Assert.IsNotNull(foundModule);

            module.Name = "Some module with a new name";
            moduleRepo.SaveModule(module);

            moduleRepo = new CoachingModuleRepositoryDocumentDB();
            var newFoundModule = moduleRepo.GetItems(m => m.Id == module.Id).Single();

            Assert.AreEqual(newFoundModule.Name, "Some module with a new name");
        }
Пример #8
0
        public void CreateCoachingCourse()
        {
            var courseName = "Service test course";

            //Create the course
            _coachingCourseService.CreateNewCoachingCourse(courseName);

            //Check if we can find it, via another repository
            var repo        = new CoachingCourseRepositoryDocumentDB();
            var foundCourse = repo.GetItems(c => c.Name == courseName).Single();

            Assert.IsNotNull(foundCourse);
        }
Пример #9
0
        public void SetupModulePeptalk()
        {
            var courseRep = new CoachingCourseRepositoryDocumentDB();
            var moduleRep = new CoachingModuleRepositoryDocumentDB();
            var groupRep  = new ModuleGroupRepositoryDocumentDB();

            //Find modules
            var allModules = moduleRep.GetAllItems();

            Assert.AreEqual(allModules.Count(), 12);

            var md1  = allModules.Single(m => m.ModuleIndex == 0);
            var md2  = allModules.Single(m => m.ModuleIndex == 1);
            var md3  = allModules.Single(m => m.ModuleIndex == 2);
            var md4  = allModules.Single(m => m.ModuleIndex == 3);
            var md5  = allModules.Single(m => m.ModuleIndex == 4);
            var md6  = allModules.Single(m => m.ModuleIndex == 5);
            var md7  = allModules.Single(m => m.ModuleIndex == 6);
            var md8  = allModules.Single(m => m.ModuleIndex == 7);
            var md9  = allModules.Single(m => m.ModuleIndex == 8);
            var md10 = allModules.Single(m => m.ModuleIndex == 9);
            var md11 = allModules.Single(m => m.ModuleIndex == 10);
            var md12 = allModules.Single(m => m.ModuleIndex == 11);

            md1.Peptalk  = "<p>Velkommen til Better Ways - vi hjælper dig med at finde vejen til dit nye job. Du er allerede godt på vej.</p><p>Dit kursus består af 12 moduler fordelt i 4 faser. Vi starter med at se på dit tidligere job og ligge en plan for den kommende tid. Hvis du har spørgsmål er du velkommen til at skrive til din coach. For at komme i gang skal du klikke på det første modul: Fyret. Hvad nu?</p>";
            md2.Peptalk  = "<p>Velkommen tilbage - du er nået til modul 2.<p></p>Husk at bevare optimismen. Din indstilling har betydning for hvordan du kommer videre.</p>";
            md3.Peptalk  = "<p>Velkommen tilbage - du er nået til modul 3 - det er nu tid til at finde ud af hvem du er.<br/>Hvordan går det med at følge din plan? Det kræver tålmodighed at indarbejde nye vaner.</p><p>Har du talt med din coach? Han/hun er klar til at hjælpe dig.</p>";
            md4.Peptalk  = "<p>Velkommen tilbage - du er nået til modul 2.<p>";
            md5.Peptalk  = "<p>Velkommen tilbage - du er nået til modul 2.<p>";
            md6.Peptalk  = "<p>Velkommen tilbage - du er nået til modul 2.<p>";
            md7.Peptalk  = "<p>Velkommen tilbage - du er nået til modul 2.<p>";
            md8.Peptalk  = "<p>Velkommen tilbage - du er nået til modul 2.<p>";
            md9.Peptalk  = "<p>Velkommen tilbage - du er nået til modul 2.<p>";
            md10.Peptalk = "<p>Velkommen tilbage - du er nået til modul 2.<p>";
            md11.Peptalk = "<p>Velkommen tilbage - du er nået til modul 2.<p>";
            md12.Peptalk = "<p>Velkommen tilbage - du er nået til modul 2.<p>";

            moduleRep.SaveItem(md1);
            moduleRep.SaveItem(md2);
            moduleRep.SaveItem(md3);
            moduleRep.SaveItem(md4);
            moduleRep.SaveItem(md5);
            moduleRep.SaveItem(md6);
            moduleRep.SaveItem(md7);
            moduleRep.SaveItem(md8);
            moduleRep.SaveItem(md9);
            moduleRep.SaveItem(md10);
            moduleRep.SaveItem(md11);
            moduleRep.SaveItem(md12);
        }
        public void CreateAndFindNewCourse()
        {
            var courseName = "Test coaching course";
            var courseRepo = new CoachingCourseRepositoryDocumentDB();
            var course     = new CoachingCourse(courseName);

            courseRepo.CreateCoachingCourse(course);

            courseRepo.SaveCoachingCourse(course);

            courseRepo = new CoachingCourseRepositoryDocumentDB();
            var foundCourses = courseRepo.GetItems(c => c.Name == courseName).Single();

            Assert.IsNotNull(foundCourses);
        }
Пример #11
0
        public void UpdateModulePromiseResult(Guid exerciseId, PromiseScoreCardDto scoreCard)
        {
            if (exerciseId != scoreCard.ExerciseId)
            {
                throw new Exception("Scorecard ids does not match");
            }

            var userRepo = new UserRepositoryDocumentDB();
            //var usr = userRepo.GetAllItems().Last();
            var usr = userRepo.GetUserById((Guid)HttpContext.Current.Items["UserId"]);

            foreach (var admission in usr.CourseAdmissions)
            {
                var excistingScoreCard = admission.Results.SingleOrDefault(r => r.ExerciseId == exerciseId) as PromiseScoreCard;

                if (excistingScoreCard != null)
                {
                    //Update the score card
                    excistingScoreCard.IsCompleted = scoreCard.IsCompleted;
                    excistingScoreCard.PromiseText = scoreCard.PromiseText;
                    excistingScoreCard.Responses   = scoreCard.Responses != null?scoreCard.Responses.Select(e => new QuestionResponse()
                    {
                        Score    = e.Score,
                        Question = e.Question
                    }).ToList() : null;

                    //find next nodule
                    var course          = new CoachingCourseRepositoryDocumentDB().GetItems(c => c.Id == admission.CourseId).Single();
                    var nextModuleIndex = course.Modules.IndexOf(course.Modules.Single(m => m.ModuleReferenceId == excistingScoreCard.Module.ModuleReferenceId)) + 1;

                    if (nextModuleIndex < course.Modules.Count)
                    {
                        var nextModule        = course.Modules[nextModuleIndex];
                        var nextGoalScorecard = (admission.Results.SingleOrDefault(r => r is GoalScoreCard && r.Module.ModuleReferenceId == nextModule.ModuleReferenceId) as GoalScoreCard);
                        if (nextGoalScorecard != null)
                        {
                            nextGoalScorecard.PreviousModulePromiseText = scoreCard.PromiseText;
                        }
                    }
                }
            }
            //Save user
            userRepo.SaveUser(usr);
        }
Пример #12
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);
        }
Пример #13
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);
        }
Пример #14
0
        public void AdmitUsertoCourse()
        {
            var courseRepo = new CoachingCourseRepositoryDocumentDB();

            var userRepo = new UserRepositoryDocumentDB();

            var foundUsr = userRepo.GetUserById(new Guid("e65bed30-1e7e-4920-9ee4-b880fe9034e5"));

            var coachingCourseService = new CoachingCourseService(
                courseRepo,
                new ModuleResourceRepositoryDocumentDb(),
                new CoachingModuleRepositoryDocumentDB(),
                new CoachnigModuleExerciseResourceRepositoryDocumentDB(),
                new UserRepositoryDocumentDB());


            var courseName = "Better ways course";

            //Get course
            var course = courseRepo.GetItems(i => i.Name == courseName).Last(); // _coachingCourseService.CreateNewCoachingCourse(courseName);

            coachingCourseService.AdmitUserToCourse(foundUsr, course);
        }
Пример #15
0
        public void UpdateModuleResource()
        {
            var courseName = "Service test course with updated module";
            //Create the course
            var course         = _coachingCourseService.CreateNewCoachingCourse(courseName);
            var coachingModule = _coachingCourseService.CreateNewModuleInCourse(course, "Some module", 0);

            var newResource = new CoachingModuleResource()
            {
                Content         = "En meget kortere tekst",
                RevisionHistory = new ResourseRevisionHistoryReference()
                {
                    ReferenceId = coachingModule.Introduction.RevisionHistoryReferenceId
                }
            };

            _coachingCourseService.UpdateModuleResurce(coachingModule, newResource);

            var courseRepo   = new CoachingCourseRepositoryDocumentDB();
            var resourceRepo = new ModuleResourceRepositoryDocumentDb();
            var moduleRepo   = new CoachingModuleRepositoryDocumentDB();
            var foundCourse  = courseRepo.GetItems(i => i.Id == course.Id).Single();
            var foundModule  = moduleRepo.GetModuleById(foundCourse.Modules[0].ModuleReferenceId);
            var foundIntroductionResource = resourceRepo.GetResourceById(foundModule.Introduction.ResourceReferenceId);

            Assert.AreEqual(foundCourse.Modules.Count, 1);
            Assert.AreEqual(foundIntroductionResource.Content, "En meget kortere tekst");

            resourceRepo = new ModuleResourceRepositoryDocumentDb();
            var foundResources = resourceRepo.GetItems(i => i.RevisionHistory.ReferenceId == foundModule.Introduction.RevisionHistoryReferenceId);

            Assert.AreEqual(foundResources.OrderBy(v => v.Version).ToList()[0].Version, 1);
            Assert.AreEqual(foundResources.OrderBy(v => v.Version).ToList()[1].Version, 2);

            Assert.AreNotEqual(foundResources.OrderBy(v => v.Version).ToList()[0].Content, "En meget kortere tekst");
            Assert.AreEqual(foundResources.OrderBy(v => v.Version).ToList()[1].Content, "En meget kortere tekst");
        }
Пример #16
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);
            }
        }
Пример #17
0
        public void SetupModuleGroups()
        {
            var courseRep = new CoachingCourseRepositoryDocumentDB();
            var moduleRep = new CoachingModuleRepositoryDocumentDB();
            var groupRep  = new ModuleGroupRepositoryDocumentDB();

            //Find modules
            var allModules = moduleRep.GetAllItems();

            Assert.AreEqual(allModules.Count(), 12);

            var course = courseRep.GetAllItems().Single();


            //Create groups
            var grp1 = new ModuleGroup()
            {
                GroupName        = "Læg en plan og hold den",
                GroupDescription = "Få overblik over din situation og få redskaber til at komme videre. Dette er en fase, og vi hjælper dig til at se på tingene i et ny lys."
            };

            var grp2 = new ModuleGroup()
            {
                GroupName        = "Dit talent og din profil",
                GroupDescription = "Hvad er egentligt din profil? Hvad brænder du for? Måske er det tid til at skifte retning. Få klarhed og opdag nye sider af dit talent."
            };

            var grp3 = new ModuleGroup()
            {
                GroupName        = "Gør dig synlig",
                GroupDescription = "Du har en unik og attraktiv profil, men får virksomhederne øje på dig? Lær at synliggøre de egenskaber der er værdifulde for din fremtidige arbejdsgiver."
            };

            var grp4 = new ModuleGroup()
            {
                GroupName        = "Nå dit mål",
                GroupDescription = "Det kræver en stor indsats at finde det rette job. Det er ikke sikkert at det vil lykkedes i første hug. Lær at strukturere søgningen og få noget positivt ud af afslagene."
            };

            course.ModuleGroups = new List <Guid>()
            {
                grp1.Id, grp2.Id, grp3.Id, grp4.Id
            };

            var md1  = allModules.Single(m => m.ModuleIndex == 0);
            var md2  = allModules.Single(m => m.ModuleIndex == 1);
            var md3  = allModules.Single(m => m.ModuleIndex == 2);
            var md4  = allModules.Single(m => m.ModuleIndex == 3);
            var md5  = allModules.Single(m => m.ModuleIndex == 4);
            var md6  = allModules.Single(m => m.ModuleIndex == 5);
            var md7  = allModules.Single(m => m.ModuleIndex == 6);
            var md8  = allModules.Single(m => m.ModuleIndex == 7);
            var md9  = allModules.Single(m => m.ModuleIndex == 8);
            var md10 = allModules.Single(m => m.ModuleIndex == 9);
            var md11 = allModules.Single(m => m.ModuleIndex == 10);
            var md12 = allModules.Single(m => m.ModuleIndex == 11);

            groupRep.SaveItem(grp1);
            groupRep.SaveItem(grp2);
            groupRep.SaveItem(grp3);
            groupRep.SaveItem(grp4);

            md1.GroupId = grp1.Id;
            md2.GroupId = grp1.Id;

            md3.GroupId = grp2.Id;
            md4.GroupId = grp2.Id;
            md5.GroupId = grp2.Id;
            md6.GroupId = grp2.Id;
            md7.GroupId = grp2.Id;

            md8.GroupId  = grp3.Id;
            md9.GroupId  = grp3.Id;
            md10.GroupId = grp3.Id;

            md11.GroupId = grp4.Id;
            md12.GroupId = grp4.Id;

            moduleRep.SaveItem(md1);
            moduleRep.SaveItem(md2);
            moduleRep.SaveItem(md3);
            moduleRep.SaveItem(md4);
            moduleRep.SaveItem(md5);
            moduleRep.SaveItem(md6);
            moduleRep.SaveItem(md7);
            moduleRep.SaveItem(md8);
            moduleRep.SaveItem(md9);
            moduleRep.SaveItem(md10);
            moduleRep.SaveItem(md11);
            moduleRep.SaveItem(md12);

            courseRep.SaveItem(course);
        }
        public void GetMultipleModulesWithSpecificIds()
        {
            var courseName = "Course with multiple modules";
            var courseRepo = new CoachingCourseRepositoryDocumentDB();
            var moduleRepo = new CoachingModuleRepositoryDocumentDB();
            var course     = new CoachingCourse(courseName);

            courseRepo.CreateCoachingCourse(course);

            var introduction1 = new CoachingModuleResource()
            {
                RevisionHistory = new ResourseRevisionHistoryReference(), Content = "<h1>&lt;Overskrift her&gt;</h1> <p>&lt;Kort tekst her&gt;</p> <div data-oembed-url='https://vimeo.com/ricardonilsson/coachingwill'> <div style='left: 0px; width: 100%; height: 0px; position: relative; padding-bottom: 56.2493%;'><iframe allowfullscreen='true' frameborder='0' mozallowfullscreen='true' src='//player.vimeo.com/video/77308630?byline=0&amp;badge=0&amp;portrait=0&amp;title=0' style='top: 0px; left: 0px; width: 100%; height: 100%; position: absolute;' webkitallowfullscreen='true'></iframe></div> </div> <h2>&lt;Overskrift, start p&aring; udvidet intro&gt;</h2> <p>&lt;Intro her&gt;</p> <h2>&lt;Overskrift, eksterne henvisninger&gt;</h2> <p><a href='http://wikipedia.org'>&lt;Eksempel p&aring; link&gt;</a></p>"
            };
            var exercise1 = new CoachingModuleExerciseResource()
            {
                RevisionHistory = new ResourseRevisionHistoryReference(), Elements = new List <ResourceExerciseElement>()
                {
                    new ResourceExerciseElement("<h1>&lt;Overskrift her&gt;</h1>  <p>&lt;Kort tekst her, efterfulgt af &gt;</p>  <SortableList/>")
                }
            };
            var reflection1 = new CoachingModuleExerciseResource()
            {
                RevisionHistory = new ResourseRevisionHistoryReference(), Elements = new List <ResourceExerciseElement>()
                {
                    new ResourceExerciseElement("<h1>&lt;Overskrift her&gt;</h1>  <p>&lt;Kort tekst her&gt;</p>  <h2>&nbsp;</h2>")
                }
            };

            var module1 = new CoachingModule
                          (
                "My coaching module 1",
                introduction1,
                exercise1,
                reflection1
                          );

            var introduction2 = new CoachingModuleResource()
            {
                RevisionHistory = new ResourseRevisionHistoryReference(), Content = "<h1>&lt;Overskrift her&gt;</h1> <p>&lt;Kort tekst her&gt;</p> <div data-oembed-url='https://vimeo.com/ricardonilsson/coachingwill'> <div style='left: 0px; width: 100%; height: 0px; position: relative; padding-bottom: 56.2493%;'><iframe allowfullscreen='true' frameborder='0' mozallowfullscreen='true' src='//player.vimeo.com/video/77308630?byline=0&amp;badge=0&amp;portrait=0&amp;title=0' style='top: 0px; left: 0px; width: 100%; height: 100%; position: absolute;' webkitallowfullscreen='true'></iframe></div> </div> <h2>&lt;Overskrift, start p&aring; udvidet intro&gt;</h2> <p>&lt;Intro her&gt;</p> <h2>&lt;Overskrift, eksterne henvisninger&gt;</h2> <p><a href='http://wikipedia.org'>&lt;Eksempel p&aring; link&gt;</a></p>"
            };
            var exercise2 = new CoachingModuleExerciseResource()
            {
                RevisionHistory = new ResourseRevisionHistoryReference(), Elements = new List <ResourceExerciseElement>()
                {
                    new ResourceExerciseElement("<h1>&lt;Overskrift her&gt;</h1>  <p>&lt;Kort tekst her, efterfulgt af &gt;</p>  <SortableList/>")
                }
            };
            var reflection2 = new CoachingModuleExerciseResource()
            {
                RevisionHistory = new ResourseRevisionHistoryReference(), Elements = new List <ResourceExerciseElement>()
                {
                    new ResourceExerciseElement("<h1>&lt;Overskrift her&gt;</h1>  <p>&lt;Kort tekst her&gt;</p>  <h2>&nbsp;</h2>")
                }
            };

            var module2 = new CoachingModule
                          (
                "My coaching module 2",
                introduction2,
                exercise2,
                reflection2
                          );

            var introduction3 = new CoachingModuleResource()
            {
                RevisionHistory = new ResourseRevisionHistoryReference(), Content = "<h1>&lt;Overskrift her&gt;</h1> <p>&lt;Kort tekst her&gt;</p> <div data-oembed-url='https://vimeo.com/ricardonilsson/coachingwill'> <div style='left: 0px; width: 100%; height: 0px; position: relative; padding-bottom: 56.2493%;'><iframe allowfullscreen='true' frameborder='0' mozallowfullscreen='true' src='//player.vimeo.com/video/77308630?byline=0&amp;badge=0&amp;portrait=0&amp;title=0' style='top: 0px; left: 0px; width: 100%; height: 100%; position: absolute;' webkitallowfullscreen='true'></iframe></div> </div> <h2>&lt;Overskrift, start p&aring; udvidet intro&gt;</h2> <p>&lt;Intro her&gt;</p> <h2>&lt;Overskrift, eksterne henvisninger&gt;</h2> <p><a href='http://wikipedia.org'>&lt;Eksempel p&aring; link&gt;</a></p>"
            };
            var exercise3 = new CoachingModuleExerciseResource()
            {
                RevisionHistory = new ResourseRevisionHistoryReference(), Elements = new List <ResourceExerciseElement>()
                {
                    new ResourceExerciseElement("<h1>&lt;Overskrift her&gt;</h1>  <p>&lt;Kort tekst her, efterfulgt af &gt;</p>  <SortableList/>")
                }
            };
            var reflection3 = new CoachingModuleExerciseResource()
            {
                RevisionHistory = new ResourseRevisionHistoryReference(), Elements = new List <ResourceExerciseElement>()
                {
                    new ResourceExerciseElement("<h1>&lt;Overskrift her&gt;</h1>  <p>&lt;Kort tekst her&gt;</p>  <h2>&nbsp;</h2>")
                }
            };

            var module3 = new CoachingModule
                          (
                "My coaching module 2",
                introduction3,
                exercise3,
                reflection3
                          );

            course.AddCoachingModule(module1);
            course.AddCoachingModule(module2);
            course.AddCoachingModule(module3);
            courseRepo.SaveCoachingCourse(course);

            moduleRepo.SaveModule(module1);
            moduleRepo.SaveModule(module2);
            moduleRepo.SaveModule(module3);

            courseRepo = new CoachingCourseRepositoryDocumentDB();
            moduleRepo = new CoachingModuleRepositoryDocumentDB();
            var foundCourses = courseRepo.GetItems(c => c.Name == courseName).Single();

            var foundModules = moduleRepo.GetItemsWithIds(foundCourses.Modules.Select(m => m.ModuleReferenceId)).ToList();

            Assert.AreEqual(foundModules.Count(), 3);

            Assert.IsNotNull(foundCourses);
        }