public IEnumerable <CallUpload> GetByFilter(int pageNumber, int pageSize, CallUploadListModelFilter filter, out int totalRecords) { using (var adapter = PersistenceLayer.GetDataAccessAdapter()) { var linqMetaData = new LinqMetaData(adapter); if (filter == null) { totalRecords = linqMetaData.CallUpload.Count(); var entities = linqMetaData.CallUpload.OrderByDescending(p => p.UploadTime).TakePage(pageNumber, pageSize).Select(x => x).ToArray(); return(AutoMapper.Mapper.Map <IEnumerable <CallUploadEntity>, IEnumerable <CallUpload> >(entities)); } else { var query = (from c in linqMetaData.CallUpload select c); if (filter.FromUploadDate != null) { query = (from c in query where c.UploadTime.Date >= filter.FromUploadDate.Value.Date select c); } if (filter.ToUploadDate != null) { query = (from c in query where c.UploadTime.Date <= filter.ToUploadDate.Value.Date select c); } if (filter.UploadedBy != null && filter.UploadedBy > 0) { query = (from c in query where c.UploadedBy == filter.UploadedBy select c); } totalRecords = query.Count(); var entities = query.OrderByDescending(p => p.UploadTime).TakePage(pageNumber, pageSize).Select(x => x).ToArray(); return(AutoMapper.Mapper.Map <IEnumerable <CallUploadEntity>, IEnumerable <CallUpload> >(entities)); } } }
public ActionResult CallUploadDetail(CallUploadListModelFilter filter = null, int pageNumber = 1) { try { IoC.Resolve <ILogManager>().GetLogger <Global>().Info("Call Upload Index method called @" + DateTime.Now); int totalRecords; var model = _callUploadService.GetCallUploadDetails(pageNumber, _pageSize, filter, out totalRecords); IoC.Resolve <ILogManager>().GetLogger <Global>().Info("Call Upload Result returned from service @" + DateTime.Now); if (model == null) { model = new CallUploadListModel(); } model.Filter = filter; var currentAction = ControllerContext.RouteData.Values["action"].ToString(); Func <int, string> urlFunc = pn => Url.Action(currentAction, new { pageNumber = pn, filter.FromUploadDate, filter.ToUploadDate, filter.UploadedBy }); model.PagingModel = new PagingModel(pageNumber, _pageSize, totalRecords, urlFunc); IoC.Resolve <ILogManager>().GetLogger <Global>().Info("Call Upload going to return view @" + DateTime.Now); return(View(model)); } catch (Exception ex) { IoC.Resolve <ILogManager>().GetLogger <Global>().Error(ex.Message); IoC.Resolve <ILogManager>().GetLogger <Global>().Error("Call Upload Stack Trace :" + ex.StackTrace); var model = new CallUploadListModel(); model.Filter = filter; return(View(model)); } }
public CallUploadListModel GetCallUploadDetails(int pageNumber, int pageSize, CallUploadListModelFilter filter, out int totalRecords) { var callUploads = _callUploadRepository.GetByFilter(pageNumber, pageSize, filter, out totalRecords); if (callUploads == null || !callUploads.Any()) { return(null); } var successfileIds = callUploads.Select(s => s.FileId).ToArray(); var failedfileIds = callUploads.Where(x => x.LogFileId.HasValue).Select(s => s.LogFileId.Value).ToArray(); var fileIds = successfileIds.Concat(failedfileIds).ToArray(); IEnumerable <FileModel> fileModels = null; if (fileIds != null && fileIds.Any()) { var files = _fileRepository.GetByIds(fileIds); if (files != null && files.Any()) { fileModels = GetFileModelFromFile(files, _mediaRepository.GetCallUploadMediaFileLocation()); } } var callUploadByIds = callUploads.Select(c => c.UploadedBy).ToArray(); IEnumerable <OrderedPair <long, string> > uploadedbyAgentNameIdPair = null; if (callUploadByIds != null && callUploadByIds.Any()) { uploadedbyAgentNameIdPair = _organizationRoleUserRepository.GetNameIdPairofUsers(callUploadByIds).ToArray(); } return(_callUploadListModelFactory.Create(fileModels, callUploads, uploadedbyAgentNameIdPair)); }