Beispiel #1
0
        /// <summary>
        /// Count of prominence
        /// </summary>
        /// <param name="programId"></param>
        /// <returns></returns>
        public SnapshotDTO GetProgramProminenceCount(List <int> programIds)
        {
            var query  = SnapshotQueries.CreateGetProgramProminenceCountQuery(Context, programIds);
            var catIds = query.Select(x => x).Distinct().Count();

            return(new SnapshotDTO()
            {
                DataLabel = "PROMINENCE",
                DataValue = catIds
            });
        }
        public void TestCreateGetProgramProminenceCountQuery()
        {
            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
            };

            var project = new Project
            {
                ProjectId       = 1,
                ParentProgram   = program,
                ProgramId       = program.ProgramId,
                Status          = status,
                ProjectStatusId = status.ProjectStatusId,
                EndDate         = endDate
            };

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

            programs.Add(program);
            List <Project> projects = new List <Project>();

            projects.Add(project);

            var category1 = new Category
            {
                CategoryId   = 1,
                CategoryName = "Cat1",
                Programs     = programs,
                Projects     = projects
            };

            var category2 = new Category
            {
                CategoryId   = 2,
                CategoryName = "Cat1",
                Programs     = programs,
                Projects     = projects
            };

            var category3 = new Category
            {
                CategoryId   = 3,
                CategoryName = "Cat1",
                Programs     = programs,
                Projects     = projects
            };

            var category4 = new Category
            {
                CategoryId   = 4,
                CategoryName = "Cat2",
                Programs     = programs,
                Projects     = projects
            };

            program.Projects.Add(project);
            project.Categories.Add(category1);
            project.Categories.Add(category2);
            project.Categories.Add(category3);
            project.Categories.Add(category4);

            context.Programs.Add(program);
            context.Projects.Add(project);
            context.Categories.Add(category1);
            context.Categories.Add(category2);
            context.Categories.Add(category3);
            context.Categories.Add(category4);

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

            programIds.Add(program.ProgramId);

            List <int> query  = SnapshotQueries.CreateGetProgramProminenceCountQuery(context, programIds).ToList();
            var        catIds = query.Select(x => x).Distinct().Count();

            Assert.AreEqual(4, catIds);
        }