public int GetSummaryQueueCount(QueueType queueType, QueueQuery queueQuery) { switch (queueType) { case QueueType.Incident: return(IncidentSummaries(queueQuery).Count()); case QueueType.Arrest: return(ArrestSummaries(queueQuery).Count()); case QueueType.FieldInterview: return(FieldInterviewSummaries(queueQuery).Count()); case QueueType.Case: return(CaseSummmaries(queueQuery).Count()); case QueueType.OtherEvent: return(OtherEventSummaries(queueQuery).Count()); case QueueType.Citation: return(CitationSummaries(queueQuery).Count()); case QueueType.CallForService: return(CallForServiceSummaries(queueQuery).Count()); } return(0); }
public ICollection <IncidentSummaryQueueItem> GetIncidentSummaryQueueItems(QueueQuery queueQuery) { var summaries = IncidentSummaries(queueQuery); if (queueQuery.QueueSort != null) { try { var orderBy = QueueSpecifications.GetOrderBy <IncidentSummary>(queueQuery.QueueSort); summaries = (orderBy != null) ? summaries.OrderBy(orderBy) : summaries.OrderBy(s => s.Number); } catch (Exception e) { Log.Error(string.Format("Failed to apply queue sorting for {0}", queueQuery.QueueType), e); summaries = summaries.OrderBy(s => s.Number); // ensure that a filtering is applying in order for skip take to work } } else { summaries = summaries.OrderBy(s => s.Number); } var summaryQueueItems = summaries.Skip(queueQuery.Skip).Take(queueQuery.Take).ToList().AsListOf <IncidentSummaryQueueItem>(); return(summaryQueueItems); }
public static DateTime[] GetDateRangeByQueueField(QueueQuery queueQuery, string queueFieldName) { DateTime[] dateRange = new DateTime[0]; QueueFilter filter = queueQuery.QueueFilters.Find(f => f.Filter1.FieldName == queueFieldName && f.Filter1.QueueFilterOperator == QueueFilterOperator.DateRange); if (filter != null) { int dateFilterIndex; if (int.TryParse(filter.Filter1.Value, out dateFilterIndex) == true) { dateRange = GetDateRangeByDateFilterIndex(dateFilterIndex); } else { DateTime startDate = DateTime.MinValue; DateTime endDate = DateTime.MaxValue; string[] dateRangeValues = filter.Filter1.Value.Split('|'); DateTime.TryParse(dateRangeValues[0], out startDate); DateTime.TryParse(dateRangeValues[1], out endDate); dateRange = new DateTime[] { startDate, endDate }; } } return(dateRange); }
public HttpResponseMessage GetInProgressCount(QueueType queueType, QueueQuery queueQuery) { var r = new { Count = _reportQueueService.GetReportsQueueRecordCount(queueType, queueQuery) }; return(Request.CreateResponse(r)); }
/// <summary> /// Retrieve Queue Record Count By QueueType and Filter. /// </summary> public int GetReportsQueueRecordCount(QueueType queueType, QueueQuery queueQuery) { var reports = GetReportsByQueueType(queueType); // apply filter(s) reports = ApplyQueueFilter(queueQuery, reports); return(reports.ToList().Count); }
public HttpResponseMessage GetIncidentsCount(QueueType queueType, QueueQuery queueQuery) { var r = new { Count = _summaryQueueService.GetSummaryQueueCount(queueType, queueQuery) }; return(Request.CreateResponse(r)); }
private IQueryable <Report> ApplyQueueFilter(QueueQuery queueQuery, IQueryable <Report> reports) { if (queueQuery.QueueFilters == null || queueQuery.QueueFilters.Count == 0) { return(reports); } try { reports = queueQuery.QueueFilters.Select(QueueSpecifications.GetQueuePredicate <Report>) .Where(predicate => predicate != null) .Aggregate(reports, (current, predicate) => current.Where(predicate.Predicate, predicate.PredicateParms)); #region Apply Date Filters string queueFieldName = "eventStartDate"; DateTime[] dateRange = QueueSpecifications.GetDateRangeByQueueField(queueQuery, queueFieldName); if (dateRange.Length == 2) { DateTime startDate = dateRange[0]; DateTime endDate = dateRange[1]; queueQuery.QueueFilters.RemoveAll(f => f.Filter1.QueueFilterOperator == QueueFilterOperator.DateRange && f.Filter1.FieldName == queueFieldName); reports = reports.Where(r => r.Event.StartDate >= startDate && r.Event.StartDate <= endDate); } queueFieldName = "createdOn"; dateRange = QueueSpecifications.GetDateRangeByQueueField(queueQuery, queueFieldName); if (dateRange.Length == 2) { DateTime startDate = dateRange[0]; DateTime endDate = dateRange[1]; queueQuery.QueueFilters.RemoveAll(f => f.Filter1.QueueFilterOperator == QueueFilterOperator.DateRange && f.Filter1.FieldName == queueFieldName); reports = reports.Where(r => r.Event.CreatedOn >= startDate && r.Event.CreatedOn <= endDate); } #endregion // Apply Custom Filters if (queueQuery.QueueFilters != null) { reports = queueQuery.QueueFilters.Aggregate(reports, (current, filter) => current.Where(QueueSpecifications.ReportCustomFilterExpression(filter))); } } catch (Exception e) { Log.Error(string.Format("Failed to apply queue filter(s) for {0}", queueQuery.QueueType), e); } return(reports); }
private IQueryable <CitationSummary> CitationSummaries(QueueQuery queueQuery) { var summaries = UnitOfWork.GetEntityQuery <CitationSummary>(); var agencies = GetAgenciesWithViewGranted(ModuleType.Citation); summaries = ApplyQueueFilter(queueQuery, summaries.Where(x => agencies.Contains(x.AgencyId))); #region Apply Date Filters try { string queueFieldName = "eventStartDate"; DateTime[] dateRange = QueueSpecifications.GetDateRangeByQueueField(queueQuery, queueFieldName); if (dateRange.Length == 2) { DateTime startDate = dateRange[0]; DateTime endDate = dateRange[1]; queueQuery.QueueFilters.RemoveAll(f => f.Filter1.QueueFilterOperator == QueueFilterOperator.DateRange && f.Filter1.FieldName == queueFieldName); summaries = summaries.Where(s => s.Event.StartDate >= startDate && s.Event.StartDate <= endDate); } queueFieldName = "eventDateReported"; dateRange = QueueSpecifications.GetDateRangeByQueueField(queueQuery, queueFieldName); if (dateRange.Length == 2) { DateTime startDate = dateRange[0]; DateTime endDate = dateRange[1]; queueQuery.QueueFilters.RemoveAll(f => f.Filter1.QueueFilterOperator == QueueFilterOperator.DateRange && f.Filter1.FieldName == queueFieldName); summaries = summaries.Where(s => s.Officers.FirstOrDefault(x => x.InvolvementType.Code == OfficerInvolvementTypes.Reporting.Code).InvolvementDate >= startDate && s.Officers.FirstOrDefault(x => x.InvolvementType.Code == OfficerInvolvementTypes.Reporting.Code).InvolvementDate <= endDate); } } catch (Exception ex) { Log.Error(string.Format("Failed to apply queue date filter(s) for {0}", queueQuery.QueueType), ex); } #endregion // Apply Custom Filters if (queueQuery.QueueFilters != null) { summaries = queueQuery.QueueFilters.Aggregate(summaries, (current, filter) => current.Where(QueueSpecifications.CitationQueueCustomFilterExpression(filter))); } return(summaries); }
private IQueryable <Case> CaseSummmaries(QueueQuery queueQuery) { var summaries = UnitOfWork.GetEntityQuery <Case>(); var agencies = GetAgenciesWithViewGranted(ModuleType.Case); summaries = ApplyQueueFilter(queueQuery, summaries.Where(x => agencies.Contains(x.AgencyId))); // Apply Custom Filters if (queueQuery.QueueFilters != null) { summaries = queueQuery.QueueFilters.Aggregate(summaries, (current, filter) => current.Where(QueueSpecifications.CaseQueueCustomFilterExpression(filter))); } return(summaries); }
private IQueryable <T> ApplyQueueFilter <T>(QueueQuery queueQuery, IQueryable <T> summaries) { if (queueQuery == null || queueQuery.QueueFilters == null) { return(summaries); } try { summaries = queueQuery.QueueFilters.Select(QueueSpecifications.GetQueuePredicate <T>) .Where(predicate => predicate != null) .Aggregate(summaries, (current, predicate) => current.Where(predicate.Predicate, predicate.PredicateParms)); } catch (Exception e) { Log.Error(string.Format("Failed to apply queue filter(s) for {0}", queueQuery.QueueType), e); } return(summaries); }
private IQueryable <Report> ApplyQueueSorting(QueueQuery queueQuery, IQueryable <Report> reports) { if (queueQuery != null && queueQuery.QueueSort != null) { try { var orderBy = QueueSpecifications.GetOrderBy <Report>(queueQuery.QueueSort); reports = (orderBy != null) ? reports.OrderBy(orderBy) : reports.OrderBy(r => r.ModifiedOn); } catch (Exception e) { Log.Error(string.Format("Failed to apply queue sorting for {0}", queueQuery.QueueType), e); reports = reports.OrderBy(r => r.Event.StartDate); } } else { reports = reports.OrderBy(r => r.Event.StartDate); } return(reports); }
public ICollection <CallForServiceSummaryQueueItem> GetCallsForService(QueueQuery queueQuery) { return(_summaryQueueService.GetCallForServiceSummaryQueueItems(queueQuery)); }
public virtual void QueueQuery(C context, QueueQuery mystruct) { }
/// <summary> /// Return Queue Records by QueueType and Filter /// </summary> public ICollection <ReportQueueItem> GetReportQueueItems(QueueType queueType, QueueQuery queueQuery) { var reports = GetReportsByQueueType(queueType); // apply filter(s) reports = ApplyQueueFilter(queueQuery, reports); // apply sorting reports = ApplyQueueSorting(queueQuery, reports); // apply skip, take and map into ReportQueueItem var reportQueueItems = queueQuery != null ? reports.Skip(queueQuery.Skip).Take(queueQuery.Take).ToList().AsListOf <ReportQueueItem>() : reports.ToList().AsListOf <ReportQueueItem>(); // map the creators MapCreators(reportQueueItems); return(reportQueueItems); }
public ICollection <IncidentSummaryQueueItem> GetIncidents(QueueQuery queueQuery) { return(_summaryQueueService.GetIncidentSummaryQueueItems(queueQuery)); }
public ICollection <CaseQueueItem> GetCases(QueueQuery queueQuery) { return(_summaryQueueService.CaseQueueItems(queueQuery)); }
public ICollection <ArrestSummaryQueueItem> GetArrests(QueueQuery queueQuery) { return(_summaryQueueService.GetArrestSummaryQueueItems(queueQuery)); }
public ICollection <CitationSummaryQueueItem> GetCitations(QueueQuery queueQuery) { return(_summaryQueueService.GetCitationSummaryQueueItems(queueQuery)); }
public ICollection <FieldInterviewSummaryQueueItem> GetFieldInterviews(QueueQuery queueQuery) { return(_summaryQueueService.GetFieldInterviewSummaryQueueItems(queueQuery)); }
public ICollection <OtherEventSummaryQueueItem> GetOtherEvents(QueueQuery queueQuery) { return(_summaryQueueService.GetOtherEventSummaryQueueItems(queueQuery)); }
public ICollection <ReportQueueItem> GetReportQueueItems(QueueType queueType, QueueQuery queueQuery) { return(_reportQueueService.GetReportQueueItems(queueType, queueQuery)); }