예제 #1
0
        public string GapsReportExport(GapsClosureModelFilter filter, long userId)
        {
            var dataGen = new ExportableDataGenerator <GapsClosureModel, GapsClosureModelFilter>(_eventCustomersReportingService.GetGapsClosureReport, Logger);

            var model = dataGen.GetData(filter);

            return(WriteCsvGapClosureCustomer(GetExportableFileName("GapsReportExport"), model.Collection, userId));
        }
예제 #2
0
        public ActionResult HealthPlanGapsClosureReport(GapsClosureModelFilter filter = null)
        {
            if (filter == null)
            {
                filter = new GapsClosureModelFilter();
            }
            filter.AccountId = _sessionContext.UserSession.CurrentOrganizationRole.OrganizationId;

            return(CreateExportQueue(filter, ExportableReportType.GapsClosure, _sessionContext.UserSession.CurrentOrganizationRole.OrganizationRoleUserId));
        }
예제 #3
0
        private RouteValueDictionary GetRouteValueDictionaryForPreApprovedTestStatus(GapsClosureModelFilter filter)
        {
            var routeValueDictionary = new RouteValueDictionary
            {
                { "FromDate", filter.FromDate },
                { "ToDate", filter.ToDate },
                { "AccountId", filter.AccountId },
            };

            if (!filter.CustomTags.IsNullOrEmpty())
            {
                var index = 0;
                foreach (var customtag in filter.CustomTags)
                {
                    routeValueDictionary.Add(string.Format("CustomTags[{0}]", index), customtag);
                    index++;
                }
            }
            return(routeValueDictionary);
        }
예제 #4
0
        public ActionResult GapClosure(GapsClosureModelFilter filter = null, int pageNumber = 1)
        {
            int totalRecords;
            var model = _eventCustomerReportingService.GetGapsClosureReport(pageNumber, _pageSize, filter, out totalRecords);

            if (model == null)
            {
                model = new GapsClosureListModel();
            }
            model.Filter = filter;

            var currentAction        = ControllerContext.RouteData.Values["action"].ToString();
            var routeValueDictionary = GetRouteValueDictionaryForPreApprovedTestStatus(filter);

            Func <int, string> urlFunc = pn => Url.Action(currentAction, AddRouteValueDictionary(routeValueDictionary, pn));

            model.PagingModel = new PagingModel(pageNumber, _pageSize, totalRecords, urlFunc);

            return(View(model));
        }
예제 #5
0
 public ActionResult GapsClosureReport(GapsClosureModelFilter filter = null)
 {
     return(CreateExportQueue(filter, ExportableReportType.GapsClosure, _sessionContext.UserSession.CurrentOrganizationRole.OrganizationRoleUserId));
 }
예제 #6
0
        public IEnumerable <EventCustomerPreApprovedTest> GetEventCustomerResultForGapsClosure(int pageNumber, int pageSize, GapsClosureModelFilter filter, out int totalRecords)
        {
            using (var adapter = PersistenceLayer.GetDataAccessAdapter())
            {
                var linqMetaData = new LinqMetaData(adapter);

                filter = filter ?? new GapsClosureModelFilter();

                var query = (from vecpat in linqMetaData.VwEventCustomerPreApprovedTestList
                             join ecr in linqMetaData.EventCustomerResult on vecpat.EventCustomerId equals ecr.EventCustomerResultId
                             join ec in linqMetaData.EventCustomers on ecr.EventCustomerResultId equals ec.EventCustomerId
                             join ea in linqMetaData.EventAppointment on ec.AppointmentId equals ea.AppointmentId
                             where ec.AppointmentId != null && ec.NoShow == false && ec.LeftWithoutScreeningReasonId == null
                             select new { vecpat, ec });

                if (filter.FromDate.HasValue || filter.ToDate.HasValue)
                {
                    var eventIds = (from e in linqMetaData.Events
                                    where (filter.FromDate != null ? filter.FromDate <= e.EventDate : true) &&
                                    (filter.ToDate != null ? filter.ToDate >= e.EventDate : true)
                                    select e.EventId);

                    query = (from q in query where eventIds.Contains(q.ec.EventId) select q);
                }

                if (filter.AccountId > 0)
                {
                    var eventids = (from a in linqMetaData.EventAccount where a.AccountId == filter.AccountId select a.EventId);

                    query = (from q in query where eventids.Contains(q.ec.EventId) select q);;
                }

                if (filter.CustomTags != null && filter.CustomTags.Any())
                {
                    var customTagCustomerIds = (from ct in linqMetaData.CustomerTag
                                                where ct.IsActive && filter.CustomTags.Contains(ct.Tag)
                                                select ct.CustomerId);
                    query = (from q in query where customTagCustomerIds.Contains(q.ec.CustomerId) select q);
                }

                var finalQuery = (from q in query orderby q.ec.DateCreated descending select q.vecpat);

                totalRecords = finalQuery.Count();
                var entities = finalQuery.TakePage(pageNumber, pageSize).ToArray();

                return(AutoMapper.Mapper.Map <IEnumerable <VwEventCustomerPreApprovedTestListEntity>, IEnumerable <EventCustomerPreApprovedTest> >(entities));
            }
        }