private DateTime?getStepResponsesEarliestUpdatedDate(Phytel.API.DataDomain.Program.MongoDB.DTO.Action meA, IProgramRepository ppRrepo) { List <DateTime> updatedDates = new List <DateTime>(); List <Step> steps = meA.Steps; if (steps != null && steps.Count > 0) { foreach (Step meS in steps) { List <MEPatientProgramResponse> meResponses = ppRrepo.FindByStepId(meS.Id.ToString()) as List <MEPatientProgramResponse>; meResponses.ForEach(c => { updatedDates.Add((DateTime)c.LastUpdatedOn); }); } } updatedDates.Sort(); if (updatedDates.Count > 0) { return(updatedDates[0]); } else { return(null); } }
public GetPatientActionDetailsDataResponse GetActionDetails(GetPatientActionDetailsDataRequest request) { try { GetPatientActionDetailsDataResponse response = new GetPatientActionDetailsDataResponse(); IProgramRepository repo = Factory.GetRepository(request, RepositoryType.PatientProgram);//.GetPatientProgramRepository(request); MEPatientProgram mepp = repo.FindByID(request.PatientProgramId) as MEPatientProgram; IProgramRepository respRepo = Factory.GetRepository(request, RepositoryType.PatientProgramResponse); var stepIds = mepp.Modules.SelectMany(m => m.Actions.SelectMany(a => a.Steps.Select(s => s.Id))).ToList(); DTOUtility.ResponsesBag = respRepo.Find(stepIds).Cast <MEPatientProgramResponse>().ToList(); Module meModule = mepp.Modules.Where(m => m.Id == ObjectId.Parse(request.PatientModuleId)).FirstOrDefault(); if (meModule != null) { MongoDB.DTO.Action meAction = meModule.Actions.Where(a => a.Id == ObjectId.Parse(request.PatientActionId)).FirstOrDefault(); if (meAction != null) { List <Module> tMods = DTOUtility.GetTemplateModulesList(mepp.SourceId.ToString(), request.ContractNumber, request.UserId); Module tmodule = tMods.Find(tm => tm.SourceId == meModule.SourceId); if (tmodule != null) { meAction.Objectives = DTOUtility.GetTemplateObjectives(meAction.SourceId, tmodule); } response.ActionData = DTOUtility.GetAction(request.ContractNumber, request.UserId, meAction); } } return(response); } catch (Exception ex) { DTOUtility.ResponsesBag = null; throw new Exception("DD:DataProgramManager:GetActionDetails()::" + ex.Message, ex.InnerException); } finally { DTOUtility.ResponsesBag = null; } }