Exemplo n.º 1
0
        private void AppointmentsBooked(AppointmentsBookedListModelFilter filter, string destinationPath)
        {
            var       pageNumber = 1;
            const int pageSize   = 100;

            var list = new List <AppointmentsBookedModel>();

            while (true)
            {
                int totalRecords;
                var model = _eventCustomerReportingService.GetAppointmentsBooked(pageNumber, pageSize, filter, out totalRecords);
                if (model == null || model.Collection == null || !model.Collection.Any())
                {
                    break;
                }

                list.AddRange(model.Collection);
                _logger.Info(String.Format("\n\nPageNumber:{0} Totalrecords: {1}  Current Length: {2}", pageNumber, totalRecords, list.Count));

                pageNumber++;

                if (list.Count >= totalRecords)
                {
                    break;
                }
            }

            if (list.Any())
            {
                _appointmentBookedExportCsvHelper.WriteCsv(list, destinationPath, _logger);
            }
        }
        private void AppointmentBookedReportForNormalPatient(DateTime fromDate, DateTime toDate, CorporateAccount account, string destinationPath)
        {
            _logger.Info(string.Format("Generating AppointmentBooked Date From. {0} To Date {1}", fromDate.Date.ToShortDateString(), toDate.ToShortDateString()));

            var tagToExlude = new List <string>();

            if (!_bcbsMiGapPatinetTags.IsNullOrEmpty())
            {
                tagToExlude.AddRange(_bcbsMiGapPatinetTags);
            }

            if (!_bcbsMiRiskPatientTags.IsNullOrEmpty())
            {
                tagToExlude.AddRange(_bcbsMiRiskPatientTags);
            }

            var filter = new AppointmentsBookedListModelFilter
            {
                EventFrom  = fromDate,
                EventTo    = toDate.Date,
                AccountId  = account.Id,
                CustomTags = tagToExlude.ToArray(),
                ExcludeCustomerWithCustomTag = true,
                Tag = account.Tag
            };

            var fileName = destinationPath + string.Format(@"\AppointmentBookedReport_{0}.csv", DateTime.Today.ToString("yyyyMMdd"));

            AppointmentsBooked(filter, destinationPath, fileName);
        }
        public string AppointmentBookedReportExport(AppointmentsBookedListModelFilter filter, long userId)
        {
            var dataGen = new ExportableDataGenerator <AppointmentsBookedModel, AppointmentsBookedListModelFilter>(_eventCustomerReportingService.GetAppointmentsBooked, Logger);

            var model = dataGen.GetData(filter);

            return(WriteCsvAppointmentBooked(GetExportableFileName("AppointmentsBooked"), model.Collection, userId));
        }
        public void GetEventCustomersbyRegisterationDateWithFilterTest()
        {
            int totalRecords = 0;
            var filter       = new AppointmentsBookedListModelFilter
            {
                IsCorporateEvent = false,
                IsRetailEvent    = true
            };
            var eventCustomers = _eventCustomerRepository.GetEventCustomersbyRegisterationDate(1, 20, filter, out totalRecords);

            Assert.IsNotNull(eventCustomers);
            Assert.IsNotEmpty(eventCustomers.ToList());
        }
Exemplo n.º 5
0
        public ListModelBase <CustomAppointmentsBookedModel, CustomAppointmentsBookedListModelFilter> GetCustomAppointmentsBooked(int pageNumber, int pageSize, ModelFilterBase filter, out int totalRecords)
        {
            var customFilter = filter as CustomAppointmentsBookedListModelFilter;

            customFilter = customFilter ?? new CustomAppointmentsBookedListModelFilter();

            var appFilter = new AppointmentsBookedListModelFilter
            {
                AccountId = customFilter.AccountId,
                FromDate  = customFilter.FromDate,
                ToDate    = customFilter.ToDate,
                Tag       = customFilter.Tag
            };
            var eventCustomers = _eventCustomerRepository.GetEventCustomersbyRegisterationDate(pageNumber, pageSize, appFilter, out totalRecords);

            if (eventCustomers.IsNullOrEmpty())
            {
                return(null);
            }

            var appointments = _appointmentRepository.GetByIds(eventCustomers.Where(ec => ec.AppointmentId.HasValue).Select(ec => ec.AppointmentId.Value).ToList());
            var eventIds     = eventCustomers.Select(ec => ec.EventId).Distinct().ToArray();
            var model        = _eventReportingService.GetEventVolumeModel(eventCustomers.Select(ec => ec.EventId).Distinct().ToArray());

            var customers   = _customerRepository.GetCustomers(eventCustomers.Select(ec => ec.CustomerId).Distinct().ToArray());
            var customerIds = customers.Select(x => x.CustomerId);
            var orders      = _orderRepository.GetAllOrdersByEventCustomerIds(eventCustomers.Select(ec => ec.Id).ToArray(), true);

            var eventPackages = _eventPackageRepository.GetbyEventIds(eventIds);
            var eventTests    = _eventTestRepository.GetByEventIds(eventIds);


            var orgRoleUserIds = eventCustomers.Where(ec => ec.DataRecorderMetaData != null && ec.DataRecorderMetaData.DataRecorderCreator != null).Select(ec => ec.DataRecorderMetaData.DataRecorderCreator.Id).ToList();

            var eventAppointmentChangeLogs = _eventAppointmentChangeLogRepository.GetByEventCustomerIds(eventCustomers.Select(ec => ec.Id).ToArray()).ToArray();

            orgRoleUserIds.AddRange(eventAppointmentChangeLogs.Select(eacl => eacl.CreatedByOrgRoleUserId));

            var registeredbyAgent = _organizationRoleUserRepository.GetOrganizationRoleUsers(orgRoleUserIds);

            var roles = _roleRepository.GetAll();

            var registeredbyAgentNameIdPair = _organizationRoleUserRepository.GetNameIdPairofUsers(orgRoleUserIds.ToArray()).ToArray();

            var primaryCarePhysicians = _primaryCarePhysicianRepository.GetByCustomerIds(eventCustomers.Select(ec => ec.CustomerId).Distinct().ToArray());
            var languages             = _languageRepository.GetAll();

            return(_customAppointmentsBookedModelFactory.Create(eventCustomers, appointments, orders, model, customers, registeredbyAgent,
                                                                roles, registeredbyAgentNameIdPair, eventAppointmentChangeLogs, primaryCarePhysicians, eventPackages, eventTests, languages));
        }
Exemplo n.º 6
0
        public ActionResult AppointmentsBooked(AppointmentsBookedListModelFilter filter = null, int pageNumber = 1)
        {
            int totalRecords;
            var model = _eventCustomerReportingService.GetAppointmentsBooked(pageNumber, _pageSize, filter, out totalRecords);

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

            var currentAction        = ControllerContext.RouteData.Values["action"].ToString();
            var routeValueDictionary = new RouteValueDictionary
            {
                { "IsRetailEvent", filter.IsRetailEvent },
                { "IsCorporateEvent", filter.IsCorporateEvent },
                { "IsHealthPlanEvent", filter.IsHealthPlanEvent },
                { "IsPublicEvent", filter.IsPublicEvent },
                { "IsPrivateEvent", filter.IsPrivateEvent },
                { "EventFrom", filter.EventFrom },
                { "EventTo", filter.EventTo },
                { "FromDate", filter.FromDate },
                { "ToDate", filter.ToDate },
                { "EventId", filter.EventId },
                { "CancelledCustomer", filter.CancelledCustomer },
                { "Tag", filter.Tag },
                { "EventStatus", filter.EventStatus },
                { "AccountId", filter.AccountId },
                { "ProductTypeId", filter.ProductTypeId }
            };

            if (!filter.CustomTags.IsNullOrEmpty())
            {
                var index = 0;
                foreach (var customtag in filter.CustomTags)
                {
                    routeValueDictionary.Add(string.Format("CustomTags[{0}]", index), customtag);
                    index++;
                }
            }
            Func <int, string> urlFunc =
                pn =>
                Url.Action(currentAction, AddRouteValueDictionary(routeValueDictionary, pn));

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

            return(View(model));
        }
        private void AppointmentBookedReportForGapPatient(DateTime fromDate, DateTime toDate, CorporateAccount account, string destinationPath)
        {
            _logger.Info(string.Format("Generating Q_MOBILE_AppointmentBooked Date From. {0} To Date {1}", fromDate.Date.ToShortDateString(), toDate.ToShortDateString()));

            var filter = new AppointmentsBookedListModelFilter
            {
                EventFrom  = fromDate,
                EventTo    = toDate.Date,
                AccountId  = account.Id,
                CustomTags = _bcbsMiGapPatinetTags,
                Tag        = account.Tag
            };

            var fileName = destinationPath + string.Format(@"\Q_MOBILE_AppointmentBookedReport_{0}.csv", DateTime.Today.ToString("yyyyMMdd"));

            AppointmentsBooked(filter, destinationPath, fileName);
        }
        private string AppointmentsBooked(AppointmentsBookedListModelFilter filter)
        {
            var       pageNumber = 1;
            const int pageSize   = 100;

            var list = new List <AppointmentsBookedModel>();

            CreateDestinationDirectory(_physicianPartnerAppointmentBookedReportDownloadPath);
            var fileName = _physicianPartnerAppointmentBookedReportDownloadPath + string.Format(@"\AppointmentBookedReport_{0}.csv", DateTime.Today.ToString("yyyyMMdd"));

            while (true)
            {
                int totalRecords;
                var model = _eventCustomerReportingService.GetAppointmentsBooked(pageNumber, pageSize, filter, out totalRecords);
                if (model == null || model.Collection == null || !model.Collection.Any())
                {
                    break;
                }

                list.AddRange(model.Collection);
                _logger.Info(String.Format("\n\nPageNumber:{0} Totalrecords: {1}  Current Length: {2}", pageNumber, totalRecords, list.Count));

                pageNumber++;

                if (list.Count >= totalRecords)
                {
                    break;
                }
            }
            if (list.Any())
            {
                WriteCsv(list, fileName);
            }

            return(fileName);
        }
Exemplo n.º 9
0
 public ActionResult AppointmentsBooked(AppointmentsBookedListModelFilter filter = null)
 {
     return(CreateExportQueue(filter, ExportableReportType.AppointmentsBooked, _sessionContext.UserSession.CurrentOrganizationRole.OrganizationRoleUserId));
 }
Exemplo n.º 10
0
        public ListModelBase <HourlyAppointmentBookedModel, HourlyAppointmentsBookedListModelFilter> GetHourlyAppointmentsBooked(int pageNumber, int pageSize, ModelFilterBase filter, out int totalRecords)
        {
            var customFilter = filter as HourlyAppointmentsBookedListModelFilter;

            customFilter = customFilter ?? new HourlyAppointmentsBookedListModelFilter();

            var appFilter = new AppointmentsBookedListModelFilter
            {
                AccountId = customFilter.AccountId,
                FromDate  = customFilter.FromDate,
                ToDate    = customFilter.ToDate,
                ShowCustomersWithAppointment = customFilter.ShowCustomersWithAppointment,
                IsHealthPlanEvent            = true
            };

            var eventCustomers = _eventCustomerRepository.GetEventCustomersbyRegisterationDate(pageNumber, pageSize, appFilter, out totalRecords);

            if (eventCustomers.IsNullOrEmpty())
            {
                return(null);
            }

            var appointments = _appointmentRepository.GetByIds(eventCustomers.Where(ec => ec.AppointmentId.HasValue).Select(ec => ec.AppointmentId.Value).ToList());
            var eventIds     = eventCustomers.Select(ec => ec.EventId).Distinct().ToArray();
            var model        = _eventReportingService.GetEventVolumeModel(eventCustomers.Select(ec => ec.EventId).Distinct().ToArray());

            var customers             = _customerRepository.GetCustomers(eventCustomers.Select(ec => ec.CustomerId).Distinct().ToArray());
            var customerIds           = customers.Select(x => x.CustomerId);
            var orders                = _orderRepository.GetAllOrdersByEventCustomerIds(eventCustomers.Select(ec => ec.Id).ToArray(), true);
            var customerEligibilities = _customerEligibilityRepository.GetCustomerEligibilityByCustomerIdsAndYear(customerIds, DateTime.Today.Year);

            if (customerEligibilities.IsNullOrEmpty())
            {
                customerEligibilities = new List <CustomerEligibility>();
            }

            var eventPackages = _eventPackageRepository.GetbyEventIds(eventIds);
            var eventTests    = _eventTestRepository.GetByEventIds(eventIds);

            var sourceCodes = _sourceCodeRepository.GetSourceCodeByIds(orders.SelectMany(o => o.OrderDetails.Where(od => od.SourceCodeOrderDetail != null && od.SourceCodeOrderDetail.IsActive)
                                                                                         .Select(od => od.SourceCodeOrderDetail.SourceCodeId)).Distinct().ToArray());

            var orgRoleUserIds = eventCustomers.Where(ec => ec.DataRecorderMetaData != null && ec.DataRecorderMetaData.DataRecorderCreator != null).Select(ec => ec.DataRecorderMetaData.DataRecorderCreator.Id).ToList();

            var eventAppointmentChangeLogs = _eventAppointmentChangeLogRepository.GetByEventCustomerIds(eventCustomers.Select(ec => ec.Id).ToArray()).ToArray();

            orgRoleUserIds.AddRange(eventAppointmentChangeLogs.Select(eacl => eacl.CreatedByOrgRoleUserId));

            var registeredbyAgent = _organizationRoleUserRepository.GetOrganizationRoleUsers(orgRoleUserIds);

            var roles = _roleRepository.GetAll();

            var registeredbyAgentNameIdPair = _organizationRoleUserRepository.GetNameIdPairofUsers(orgRoleUserIds.ToArray()).ToArray();

            var callDetails = _callCenterCallRepository.GetCallDetails(customers);

            var shippingDetailIds = orders.SelectMany(o => o.OrderDetails.SelectMany(od => od.ShippingDetailOrderDetails.Select(sdod => sdod.ShippingDetailId))).ToArray();
            var shippingDetails   = _shippingDetailRepository.GetByIds(shippingDetailIds);
            var cdShippingOption  = _shippingOptionRepository.GetShippingOptionByProductId((long)Product.UltraSoundImages);
            var shippingOptions   = _shippingOptionRepository.GetAllShippingOptions();

            var customTags = _customTagRepository.GetByCustomerIds(customerIds);

            var tagNames               = customers.Where(x => !string.IsNullOrEmpty(x.Tag)).Select(x => x.Tag).ToArray();
            var corporateAccount       = _corporateAccountRepository.GetByTags(tagNames);
            var corporateAccountIds    = corporateAccount.Select(x => x.Id).ToArray();
            var accountAdditionalField = _accountAdditionalFieldRepository.GetAccountAdditionalFieldsByAccountIds(corporateAccountIds);

            var primaryCarePhysicians = _primaryCarePhysicianRepository.GetByCustomerIds(eventCustomers.Select(ec => ec.CustomerId).Distinct().ToArray());
            var languages             = _languageRepository.GetAll();
            var pcpAppointments       = _pcpAppointmentRepository.GetByEventCustomerIds(eventCustomers.Select(ec => ec.Id).ToArray());

            return(_customAppointmentsBookedModelFactory.CreateHourlyModel(eventCustomers, appointments, orders, model, customers, registeredbyAgent, roles, registeredbyAgentNameIdPair, sourceCodes, callDetails,
                                                                           shippingDetails, cdShippingOption, shippingOptions, eventAppointmentChangeLogs, primaryCarePhysicians, eventPackages, eventTests, languages, customTags, corporateAccount,
                                                                           accountAdditionalField, pcpAppointments, customerEligibilities));
        }