public ActionResult CallCenterCallReport(CallCenterCallReportModelFilter filter = null, int pageNumber = 1) { int totalRecords; if (filter == null) { filter = new CallCenterCallReportModelFilter { DateFrom = DateTime.Now.AddDays(-1).Date, DateTo = DateTime.Now.Date.AddDays(-1).Date } } ; var model = _callQueueService.GetCallCenterCallReport(pageNumber, _pageSize, filter, out totalRecords); if (model == null) { model = new CallCenterCallReportListModel(); } if (string.IsNullOrEmpty(filter.Tag) && (filter.CustomTags == null) && !filter.DateFrom.HasValue && !filter.DateTo.HasValue && !filter.CustomerId.HasValue && filter.HealthPlanId <= 0 && filter.CallQueueId <= 0) { filter.DateFrom = filter.DateFrom.HasValue ? filter.DateFrom.Value : DateTime.Now.AddDays(-1).Date; filter.DateTo = filter.DateTo.HasValue ? filter.DateTo.Value : DateTime.Now.AddDays(-1).Date; } model.Filter = filter; var currentAction = ControllerContext.RouteData.Values["action"].ToString(); var routeValueDictionary = GetRouteValueDictionaryForCallCenterCallReportModel(filter); Func <int, string> urlFunc = pn => Url.Action(currentAction, AddRouteValueDictionary(routeValueDictionary, pn)); model.PagingModel = new PagingModel(pageNumber, _pageSize, totalRecords, urlFunc); return(View(model)); }
public string CallCenterCallReportExport(CallCenterCallReportModelFilter filter, long userId) { var dataGen = new ExportableDataGenerator <CallCenterCallReportModel, CallCenterCallReportModelFilter>(_callQueueService.GetCallCenterCallReport, Logger); var model = dataGen.GetData(filter); return(WriteCsvCallCenterCallReport(GetExportableFileName("CallCenterCallReport"), model.Collection, userId)); }
public void CallCenterCallReportAsync(string id = null, CallCenterCallReportModelFilter filter = null) { if (id == null) { return; } AsyncManager.OutstandingOperations.Increment(); var dataGen = new ExportableDataGenerator <CallCenterCallReportModel, CallCenterCallReportModelFilter>(_callQueueService.GetCallCenterCallReport); var processmanager = new ExportableDataGeneratorProcessManager <CallCenterCallReportModel, CallCenterCallReportModelFilter>(); processmanager.Add(id, dataGen); GetNewProcessStarted(filter, dataGen, id); }
public IEnumerable <Call> GetCallCenterCallQueueCustomer(CallCenterCallReportModelFilter filter, int pageNumber, int pageSize, out int totalRecords) { using (var adapter = PersistenceLayer.GetDataAccessAdapter()) { var linqMetaData = new LinqMetaData(adapter); filter = filter ?? new CallCenterCallReportModelFilter(); var query = (from cccr in linqMetaData.VwCallCenterCallReport where cccr.CalledCustomerId > 0 select cccr); if (filter.CustomerId.HasValue) { if (filter.CustomerId.Value > 0) { query = (from cqc in query where cqc.CalledCustomerId == filter.CustomerId select cqc); } else { totalRecords = 0; return(null); } } else { if (string.IsNullOrEmpty(filter.Tag) && (filter.CustomTags == null) && !filter.DateFrom.HasValue && !filter.DateTo.HasValue && !filter.CustomerId.HasValue && filter.HealthPlanId <= 0 && filter.CallQueueId <= 0) { filter.DateFrom = filter.DateFrom.HasValue ? filter.DateFrom.Value : DateTime.Now.AddDays(-1).Date; filter.DateTo = filter.DateTo.HasValue ? filter.DateTo.Value : DateTime.Now.AddDays(-1).Date; } if (filter.HealthPlanId > 0) { query = (from cccr in linqMetaData.VwCallCenterCallReport where cccr.AccountId == filter.HealthPlanId select cccr); } else if (filter.Tag != null && !string.IsNullOrEmpty(filter.Tag.Trim())) { query = (from cccr in linqMetaData.VwCallCenterCallReport where cccr.Tag == filter.Tag.Trim() select cccr); } if (filter.CallQueueId > 0) { query = (from cqc in query where cqc.CallQueueId == filter.CallQueueId select cqc); } if (filter.DateFrom.HasValue && filter.DateTo.HasValue) { query = (from cqc in query where cqc.DateCreated >= filter.DateFrom && cqc.DateCreated <= filter.DateTo.Value.AddDays(1) select cqc); } else if (filter.DateFrom.HasValue && !filter.DateTo.HasValue) { query = (from cqc in query where cqc.DateCreated >= filter.DateFrom select cqc); } else if (!filter.DateFrom.HasValue && filter.DateTo.HasValue) { query = (from cqc in query where cqc.DateCreated <= filter.DateTo.Value.AddDays(1) select cqc); } if (filter.CustomTags != null) { var customTagCustomersIds = (from ct in linqMetaData.CustomerTag where ct.IsActive && filter.CustomTags.Contains(ct.Tag) select ct.CustomerId); query = (from cqc in query where customTagCustomersIds.Contains(cqc.CalledCustomerId) select cqc); } if (filter.CallType == (int)CallCenterCallType.Inbound) { query = (from q in query where q.OutBound != null && q.OutBound == false select q); } else if (filter.CallType == (int)CallCenterCallType.Outbound) { query = (from q in query where q.OutBound != null && q.OutBound == true select q); } } totalRecords = query.Count(); //var entities = finalQuery.OrderByDescending(x => x.DateCreated).TakePage(pageNumber, pageSize).Select(x => x).ToArray(); var entities = query.OrderByDescending(x => x.DateCreated).Skip((pageNumber - 1) * pageSize).Take(pageSize).ToArray(); return(Mapper.Map <IEnumerable <VwCallCenterCallReportEntity>, IEnumerable <Call> >(entities)); } }
private RouteValueDictionary GetRouteValueDictionaryForCallCenterCallReportModel(CallCenterCallReportModelFilter filter) { var routeValueDictionary = new RouteValueDictionary { { "DateFrom", filter.DateFrom }, { "DateTo", filter.DateTo }, { "Tag", filter.Tag }, { "CustomerId", filter.CustomerId }, { "HealthPlanId", filter.HealthPlanId }, { "CallQueueId", filter.CallQueueId }, { "CallType", filter.CallType } }; if (filter.CustomTags != null) { var index = 0; foreach (var customtag in filter.CustomTags) { routeValueDictionary.Add(string.Format("CustomTags[{0}]", index), customtag); index++; } } return(routeValueDictionary); }
public ActionResult CallCenterCallReport(CallCenterCallReportModelFilter filter = null) { return(CreateExportQueue(filter, ExportableReportType.CallCenterCallReport, _sessionContext.UserSession.CurrentOrganizationRole.OrganizationRoleUserId)); }