Esempio n. 1
0
        public List <global::C3.Data.Group> GroupsByContract(int contractId, User user)
        {
            //for the purpose of this mock data store, ignore User for now.
            var context = new SqlComparisonDataContext();
            List <Data.Group> groups = (from cg in context.ContractGroups
                                        from g in context.Groups
                                        where cg.GroupId == g.GroupId &&
                                        cg.ContractId == contractId
                                        select new Data.Group
            {
                CreateDate = null,
                EnableAll = false,
                GroupId = g.GroupId,
                Name = g.Name
            }).ToList();

            return(groups);
        }
Esempio n. 2
0
        public IList <Data.Program> GetReportFilters(int contractId, List <Data.Group> groups, MeasureTypes type)
        {
            var context  = new SqlComparisonDataContext();
            var programs = (from p in context.Programs
                            from cgp in context.ContractGroupPrograms
                            from cg in context.ContractGroups
                            from c in context.Contracts
                            from g in context.Groups
                            from pc in context.ProgramConditions
                            where c.ContractId == contractId &&
                            c.ContractId == cg.ContractId &&
                            cg.ContractGroupId == cgp.ContractGroupId &&
                            cgp.ProgramId == p.ProgramId &&
                            p.ProgramId == pc.ProgramId
                            select new Data.Program
            {
                Name = p.ProgramName,
                ProgramId = p.ProgramId,
            }).Distinct().OrderBy(p => p.Name).ToList();

            foreach (Data.Program program in programs)
            {
                int programId = program.ProgramId;
                program.Groups = (from cgp in context.ContractGroupPrograms
                                  from cg in context.ContractGroups
                                  from g in context.Groups
                                  where cgp.ProgramId == programId &&
                                  cgp.ContractGroupId == cg.ContractGroupId &&
                                  cg.GroupId == g.GroupId
                                  select new Data.Group()
                {
                    GroupId = g.GroupId, Name = g.Name
                }).Distinct().OrderBy(g => g.Name)
                                 .ToList();
                foreach (Data.Group group in program.Groups)
                {
                    int groupId = group.GroupId;
                    group.Subscribers = (from sb in context.GroupSubscribers
                                         where sb.GroupId == groupId
                                         select
                                         new Data.Subscriber
                    {
                        SubscriberId = sb.SubscriberId,
                        Name = sb.Subscriber.SubscriberName
                    }).Distinct().OrderBy(
                        p => p.Name).ToList();
                }
                program.Conditions = (from pc in context.ProgramConditions
                                      where pc.ProgramId == programId
                                      select new Data.Condition {
                    ConditionId = pc.ConditionId, Name = pc.Condition.ConditionName
                }).Distinct().OrderBy(c => c.Name).ToList();
                foreach (Data.Condition condition in program.Conditions)
                {
                    int conditionId = condition.ConditionId;
                    condition.Populations = (from cp in context.ConditionPopulations
                                             where cp.ConditionId == conditionId
                                             select
                                             new Data.Population
                    {
                        PopulationId = cp.PopulationId,
                        Name = cp.Population.PopulationName
                    }).Distinct().OrderBy(
                        p => p.Name).ToList();
                    foreach (Data.Population population in condition.Populations)
                    {
                        int populationId = population.PopulationId;
                        population.Measures = (from m in context.Measures
                                               where
                                               m.ConditionPopulation.PopulationId == populationId &&
                                               m.ConditionPopulation.ConditionId == conditionId
                                               select new Data.Measure
                        {
                            MeasureId = m.MeasureId,
                            Name = m.MeasureName
                        }).Distinct().OrderBy(m => m.Name).ToList();
                    }
                }
            }
            return(programs);
        }