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()); }
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)); }
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); }
public ActionResult AppointmentsBooked(AppointmentsBookedListModelFilter filter = null) { return(CreateExportQueue(filter, ExportableReportType.AppointmentsBooked, _sessionContext.UserSession.CurrentOrganizationRole.OrganizationRoleUserId)); }
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)); }