Пример #1
0
        public ProcessDetailsViewModel createProcessDetails(int processId)
        {
            var process = _inflowDb.P_Processes.Find(processId);

            ProcessDetailsViewModel model = new ProcessDetailsViewModel() { Id = process.Id, Name = process.WS_Project.Name , Version = process.WS_Project_Version, Info = process.ProcessInfo};

            var completed =
                from pi in _inflowDb.P_ProcessInstance
                where pi.P_Process_Id == processId && pi.Ended == true  
                select new ProcessDetailsItemViewModel { Ended = true, Id = pi.Id, StartedByUser = pi.StartedByUser, EndedByUser = pi.EndedByUser, DateStarted = pi.DateStarted.Value, DateEnded = pi.DateEnded.Value, CycleTimet = DbFunctions.DiffSeconds(pi.DateStarted.Value, pi.DateEnded.Value).Value };

            var running =
                from pi in _inflowDb.P_ProcessInstance
                where pi.P_Process_Id == processId && pi.Ended == false
                select new ProcessDetailsItemViewModel { Ended = false, Id = pi.Id, StartedByUser = pi.StartedByUser, EndedByUser = "", DateStarted = pi.DateStarted.Value };


            model.Details = completed.ToList();
            model.Details.ForEach(d => d.CycleTime = new TimeSpan(0, 0, 0, (int) d.CycleTimet));

            model.Details.AddRange(running.ToList());

            model.Details = model.Details.OrderByDescending(x => x.DateStarted).ToList();

            return model;
        }