Beispiel #1
0
        /// <summary>
        /// Top themes
        /// </summary>
        /// <param name="programId"></param>
        /// <returns></returns>
        public async Task <IEnumerable <string> > GetProgramTopThemes(int programId)
        {
            var childPrograms = programService.GetAllChildProgramsWithParent(programId);
            var dto           = await SnapshotQueries.CreateGetProgramTopThemesQuery(Context, childPrograms.Select(p => p.ProgramId).ToList());

            return(dto);
        }
        public void TestCreateGetProgramTopThemesQuery()
        {
            var active = new ProgramStatus
            {
                ProgramStatusId = ProgramStatus.Active.Id,
                Status          = ProgramStatus.Active.Value
            };

            var status = new ProjectStatus
            {
                ProjectStatusId = 1,
                Status          = "status"
            };

            var endDate = DateTime.UtcNow;

            var org = new Organization
            {
                OrganizationId = 1,
                OfficeSymbol   = "ABCDE"
            };

            var program = new Program
            {
                ProgramId       = 1,
                Owner           = org,
                OwnerId         = org.OrganizationId,
                ProgramStatus   = active,
                ProgramStatusId = active.ProgramStatusId
            };

            List <Program> programs = new List <Program>();

            programs.Add(program);

            var theme1 = new Theme
            {
                ThemeId   = 1,
                ThemeName = "Theme 1",
                Programs  = programs
            };

            var theme2 = new Theme
            {
                ThemeId   = 2,
                ThemeName = "Theme 1",
                Programs  = programs
            };

            var theme3 = new Theme
            {
                ThemeId   = 3,
                ThemeName = "Theme 1",
                Programs  = programs
            };

            var theme4 = new Theme
            {
                ThemeId   = 4,
                ThemeName = "Theme 2",
                Programs  = programs
            };

            program.Themes.Add(theme1);
            program.Themes.Add(theme2);
            program.Themes.Add(theme3);
            program.Themes.Add(theme4);
            context.Programs.Add(program);
            context.Themes.Add(theme1);
            context.Themes.Add(theme2);
            context.Themes.Add(theme3);
            context.Themes.Add(theme4);

            List <int> programIds = new List <int>();

            programIds.Add(program.ProgramId);

            List <string> results = SnapshotQueries.CreateGetProgramTopThemesQuery(context, programIds).Result.ToList();

            Assert.AreEqual(0, results.FindIndex(t => t == "Theme 1"));
            Assert.AreEqual(1, results.FindIndex(t => t == "Theme 2"));
        }