示例#1
0
        public static IEnumerable <MissionInfo> GetExecutedMissions()
        {
            using (var context = new Dal.EF.ReportsDBEntities())
            {
                List <MissionInfo> missions = new List <MissionInfo>();
                var missionsDB = context.MissionPlans.Include("ExecutedMissions").Select(m => new { ID = m.ID, Name = m.Title, ExecMissions = m.ExecutedMissions });

                foreach (var miss in missionsDB)
                {
                    var mission = new MissionInfo();
                    mission.ID            = miss.ID;
                    mission.Name          = miss.Name;
                    mission.ExecutionInfo = new List <ExecMissionInfo>();
                    miss.ExecMissions.ToList().ForEach(e => mission.ExecutionInfo.Add(new ExecMissionInfo {
                        ExecutionID = e.ID, StartAt = e.StartedAt, EndAt = e.EndedAt
                    }));

                    missions.Add(mission);
                }
                return(missions);
            }
        }
示例#2
0
        public static List <ExecutedStepsStatus> GetExecutedMissionStepsStatuses(int id)
        {
            using (var context = new Dal.EF.ReportsDBEntities())
            {
                List <ExecutedStepsStatus> steps = new List <ExecutedStepsStatus>();
                //var stepsDB = context.Steps.Include("ExecutedSteps.ExecutedStepStatuses").Include("StepType")
                //    .Select(s => new { ID= s.ID, Name = s.Title, StepType = s.StepType.DisplayedName, s.ExecutedSteps });

                var stepsDBs = context.ExecutedMissions
                               .Where(s => s.ID == id).SelectMany(s => s.MissionPlan.Steps);

                var stepsDBStatuses = context.ExecutedSteps.Include("ExecutedStepStatuses")
                                      .Where(s => s.ExecutedMissionID == id);

                foreach (var st in stepsDBs)
                {
                    ExecutedStepsStatus status = new ExecutedStepsStatus();
                    status.ID         = st.ID;
                    status.Name       = st.Title;
                    status.TypeName   = st.StepType.DisplayedName;
                    status.StatusInfo = new List <ExecutedStepsStatusInfo>();

                    foreach (var info in stepsDBStatuses.Where(s => s.StepID == st.ID).SelectMany(x => x.ExecutedStepStatuses))
                    {
                        status.StatusInfo.Add(new ExecutedStepsStatusInfo
                        {
                            IterationsNumber = info.IterationNumber.GetValueOrDefault(0),
                            EndAt            = info.EndedAt.GetValueOrDefault(),
                            StartAt          = info.StartedAt.GetValueOrDefault(),
                            StatusID         = info.StatusID.GetValueOrDefault(0)
                        });
                    }
                    steps.Add(status);
                }

                return(steps);
            }
        }