public PSFVisitsViewModel GetPendingPSFVisitsSummary(DateTime?fromVisitDate, DateTime?toVisitDate) { var missedPSFVisits = GetPendingPSFVisits().Where(v => (!fromVisitDate.HasValue || v.VisitDate.Date >= fromVisitDate.Value) && (!toVisitDate.HasValue || v.VisitDate.Date <= toVisitDate.Value)); var pendingSessionsSummary = missedPSFVisits.GroupBy(v => v.VisitSettingId).Select(g => new { visitSettingId = g.Key, count = g.Count() }).ToList(); var visitStages = _smokingStudyDbContext.VisitSettings.Where(s => s.VisitStage.Value >= 10 && s.VisitStage.Value <= 17) .OrderBy(s => s.VisitStage).ToList(); var pendingPSFVisits = new PSFVisitsViewModel(); foreach (var visitstage in visitStages) { int count = 0; var group = pendingSessionsSummary.ToList().Where(g => g.visitSettingId == visitstage.VisitStage.Value).FirstOrDefault(); if (group != null) { count = group.count; } var psfVisit = new PSFVisitStatusViewModel { VisitSettingId = visitstage.VisitStage.Value, VisitStage = visitstage.VisitType, Count = count }; pendingPSFVisits.PSFVisits.Add(psfVisit); } return(pendingPSFVisits); }
private PSFVisitsViewModel GetUnCompletedPSFVisits(DateTime?fromVisitDate, DateTime?toVisitDate) { var psfVisits = new PSFVisitsViewModel(); var psfVisitStatuses = new List <PSFVisitStatusViewModel>(); var psfSchedules = _smokingStudyDbContext.PSFSchedules .Where(v => (!fromVisitDate.HasValue || v.ExpectedDate.Date >= fromVisitDate) && (!toVisitDate.HasValue || v.ExpectedDate.Date <= toVisitDate)); foreach (var visit in psfSchedules) { if (!IsCompleted(visit.ParticipantId, visit.VisitStage)) { var inCompleteVisit = new PSFVisitStatusViewModel { VisitSettingId = visit.VisitStage }; psfVisitStatuses.Add(inCompleteVisit); } } var unCompletedPSFVisits = psfVisitStatuses.GroupBy(v => v.VisitSettingId) .Select(v => new { visitSettingId = v.Key, count = v.Count() }); var visitStages = _smokingStudyDbContext.VisitSettings.Where(s => s.VisitStage.Value >= 10 && s.VisitStage.Value <= 17) .OrderBy(s => s.VisitStage).ToList(); foreach (var visitstage in visitStages) { int count = 0; var group = unCompletedPSFVisits.ToList().Where(g => g.visitSettingId == visitstage.VisitStage.Value).FirstOrDefault(); if (group != null) { count = group.count; } var psfVisit = new PSFVisitStatusViewModel { VisitSettingId = visitstage.VisitStage.Value, VisitStage = visitstage.VisitType, Count = count }; psfVisits.PSFVisits.Add(psfVisit); } return(psfVisits); }
private PSFVisitsViewModel GetCompletedPSFVisitsSummary(DateTime?fromVisitDate, DateTime?toVisitDate) { var psfVisitStatuses = new PSFVisitsViewModel(); var psfVisits = _smokingStudyDbContext.Visits .Where( v => (!fromVisitDate.HasValue || v.VisitDate.Date >= fromVisitDate) && (!toVisitDate.HasValue || v.VisitDate.Date <= toVisitDate) && v.VisitSettingId >= 10 && v.VisitSettingId <= 17 && v.ParticipantCame == 1 && v.Deleted == 0) .GroupBy(v => v.VisitSettingId) .Select(v => new { visitSettingId = v.Key, count = v.Count() }); var visitStages = _smokingStudyDbContext.VisitSettings.Where(s => s.VisitStage.Value >= 10 && s.VisitStage.Value <= 17) .OrderBy(s => s.VisitStage).ToList(); foreach (var visitstage in visitStages) { int count = 0; var group = psfVisits.Where(g => g.visitSettingId == visitstage.VisitStage.Value).FirstOrDefault(); if (group != null) { count = group.count; } var psfVisit = new PSFVisitStatusViewModel { VisitSettingId = visitstage.VisitStage.Value, VisitStage = visitstage.VisitType, Count = count }; psfVisitStatuses.PSFVisits.Add(psfVisit); } return(psfVisitStatuses); }