Esempio n. 1
0
        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
                }));
            }
        }
Esempio n. 2
0
        public ActionResult DisqualifiedTestReport(DisqualifiedTestReportFilter filter = null)
        {
            if (filter == null)
            {
                filter = new DisqualifiedTestReportFilter();
            }

            return(CreateExportQueue(filter, ExportableReportType.DisqualifiedTestReport, _sessionContext.UserSession.CurrentOrganizationRole.OrganizationRoleUserId));
        }
Esempio n. 3
0
        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));
        }
Esempio n. 4
0
        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));
        }