public IEnumerable <DisqualifiedTestModel> GetByFilter(DisqualifiedTestReportFilter filter, int pageNumber, int pageSize, out int totalRecords) { using (var adapter = PersistenceLayer.GetDataAccessAdapter()) { var linqMetaData = new LinqMetaData(adapter); var disqualifiedTests = from dt in linqMetaData.DisqualifiedTest where dt.IsActive group dt by new { dt.CustomerId, dt.EventId, dt.TestId } into dts select new { dts.Key.CustomerId, dts.Key.EventId, dts.Key.TestId, Version = dts.Max(x => x.Version), DateCreated = dts.Max(x => x.CreatedDate) }; if (filter.CustomerId.HasValue && filter.CustomerId > 0 && filter.EventId == null) { disqualifiedTests = (from q in disqualifiedTests where q.CustomerId == filter.CustomerId select q); } else { if (filter.AccountId > 0) { var tag = (from a in linqMetaData.Account where a.AccountId == filter.AccountId select a.Tag).Single(); var customerIds = (from cp in linqMetaData.CustomerProfile where cp.Tag == tag select cp.CustomerId); disqualifiedTests = (from q in disqualifiedTests where customerIds.Contains(q.CustomerId) select q); } if (filter.EventId > 0) { disqualifiedTests = (from q in disqualifiedTests where q.EventId == filter.EventId select q); } if (filter.TestId > 0) { disqualifiedTests = (from q in disqualifiedTests where q.TestId == filter.TestId select q); } } totalRecords = disqualifiedTests.Count(); var pagedDisqualifiedTests = disqualifiedTests.OrderByDescending(x => x.DateCreated).TakePage(pageNumber, pageSize).ToArray(); return(pagedDisqualifiedTests.Select(x => new DisqualifiedTestModel { CustomerId = x.CustomerId, EventId = x.EventId, TestId = x.TestId, Version = x.Version, DateCreated = x.DateCreated.Value })); } }
public ActionResult DisqualifiedTestReport(DisqualifiedTestReportFilter filter = null) { if (filter == null) { filter = new DisqualifiedTestReportFilter(); } return(CreateExportQueue(filter, ExportableReportType.DisqualifiedTestReport, _sessionContext.UserSession.CurrentOrganizationRole.OrganizationRoleUserId)); }
public string DisqualifiedTestReportExport(DisqualifiedTestReportFilter filter, long userId) { var dataGen = new ExportableDataGenerator <DisqualifiedTestReportViewModel, DisqualifiedTestReportFilter>(_eventCustomerQuestionAnswerServcie.GetDisqualifiedTestReport, Logger); var model = dataGen.GetData(filter); var exporter = ExportableDataGeneratorProcessManager <ViewModelBase, ModelFilterBase> .GetCsvExporter <DisqualifiedTestReportViewModel>(); return(WriteCsv(GetExportableFileName("DisqualifiedTestReport"), exporter, model.Collection, userId)); }
public ActionResult DisqualifiedTestReport(DisqualifiedTestReportFilter filter, int pageNumber = 1) { int totalRecords; if (filter == null) { filter = new DisqualifiedTestReportFilter(); } var model = _eventCustomerQuestionAnswerServcie.GetDisqualifiedTestReport(pageNumber, _pageSize, filter, out totalRecords); model.Filter = filter; var currentAction = ControllerContext.RouteData.Values["action"].ToString(); Func <int, string> urlFunc = pn => Url.Action(currentAction, new { pageNumber = pn, filter.AccountId, filter.CustomerId, filter.TestId, filter.EventId }); model.PagingModel = new PagingModel(pageNumber, _pageSize, totalRecords, urlFunc); return(View(model)); }