Esempio n. 1
0
        private RouteValueDictionary GetRouteValueDictionaryForMemberStatus(MemberStatusListModelFilter filter)
        {
            var routeValueDictionary = new RouteValueDictionary
            {
                { "FirstName", filter.FirstName },
                { "LastName", filter.LastName },
                { "CustomerId", filter.CustomerId },
                { "IsAttendedCustomers", filter.IsAttendedCustomers },
                { "IsNotAttendedCustomers", filter.IsNotAttendedCustomers },
                { "IsPublicEvent", filter.IsPublicEvent },
                { "IsPrivateEvent", filter.IsPrivateEvent },
                { "Tag", filter.Tag },
                { "DoNotContactOnly", filter.DoNotContactOnly },
                { "IncludeDoNotContact", filter.IncludeDoNotContact },
                { "EligibleStatus", filter.EligibleStatus },
                { "HealthPlanId", filter.HealthPlanId },
                { "Year", filter.Year },
                { "TargetMemberStatus", filter.TargetMemberStatus },
                { "CallAttemptFilter", filter.CallAttemptFilter },
                { "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++;
                }
            }

            return(routeValueDictionary);
        }
        private void GenerateMemberStatusListCsvByFilter(MemberStatusListModelFilter filter, CorporateAccount account)
        {
            _logger.Info(string.Format("Generating Member Status Report for {0}", account.Tag));

            var dataGen = new ExportableDataGenerator <MemberStatusModel, MemberStatusListModelFilter>(_eventCustomerReportingService.GetMemberStatusReport, _logger);
            var model   = dataGen.GetData(filter);

            if (model != null && model.Collection != null && model.Collection.Any())
            {
                var fileName = string.Format("WellMed_Monthly_Cumulative_Status_Report_{0}.csv", DateTime.Now.ToString("yyyyMM"));

                var csvFileName = GetCsvFileName(account, fileName);
                WriteCsv(csvFileName, model.Collection);
                if (_settings.WellmedMemberStatusReportSendToSftp)
                {
                    if (ExportReportOnWellMedSftp(fileName, csvFileName))
                    {
                        _logger.Info("File posted on client SFTP");
                    }
                    else
                    {
                        _logger.Info("File didn't posted,some error occurred.");
                    }
                }
            }
            else
            {
                _logger.Info("No records found");
            }
        }
        public string MemberStatusReportExport(MemberStatusListModelFilter filter, long userId)
        {
            var dataGen = new ExportableDataGenerator <MemberStatusModel, MemberStatusListModelFilter>(_eventCustomerReportingService.GetMemberStatusReport, Logger);

            var model = dataGen.GetData(filter);

            return(WriteCsvMemberStatus(GetExportableFileName("HealthPlanMemberStatusReport"), model.Collection, userId));
        }
Esempio n. 4
0
        public ActionResult HealthPlanMemberStatusReport(MemberStatusListModelFilter filter = null)
        {
            if (filter == null)
            {
                filter = new MemberStatusListModelFilter();
            }
            filter.HealthPlanId = _sessionContext.UserSession.CurrentOrganizationRole.OrganizationId;

            return(CreateExportQueue(filter, ExportableReportType.MemberStatusReport, _sessionContext.UserSession.CurrentOrganizationRole.OrganizationRoleUserId));
        }
        public void PollForMemberStatusReport()
        {
            try
            {
                if (_accountId <= 0)
                {
                    _logger.Info("Corporate Account Id Not found");
                    return;
                }
                var today      = DateTime.Today;
                var dayOfMonth = new DateTime(today.Year, today.Month, _dayOfMonth);

                if (dayOfMonth != today)
                {
                    _logger.Info("Report is schedule to run on " + _dayOfMonth + " of every month");
                    _logger.Info("Today is " + today);
                    _logger.Info(string.Format("Set day of month to {0} to run today ", _dayOfMonth));
                    return;
                }

                var account = _corporateAccountRepository.GetById(_accountId);

                if (account == null)
                {
                    _logger.Info("Corporate Account Not found");
                    return;
                }

                _logger.Info("Starting Member Status Report for " + account.Tag);

                var filter = new MemberStatusListModelFilter
                {
                    EligibleStatus      = EligibleFilterStatus.OnlyEligible,
                    IncludeDoNotContact = true,
                    DoNotContactOnly    = false,
                    Tag  = account.Tag,
                    Year = today.Year,
                    CallAttemptFilter             = CallAttemptFilterStatus.All,
                    ConsiderEligibiltyFromHistory = true
                };

                GenerateMemberStatusListCsvByFilter(filter, account);

                _logger.Info("Completed Member Status Report for " + account.Tag);
            }
            catch (Exception ex)
            {
                _logger.Error("Some error occured on Member status Report account Id " + _accountId);
                _logger.Error("Exception: " + ex.Message);
                _logger.Error("Stack Trace: " + ex.StackTrace);
            }
        }
        public void GetGetMemberForReportTester()
        {
            var filter = new MemberStatusListModelFilter
            {
                EligibleStatus      = EligibleFilterStatus.OnlyEligible,
                IncludeDoNotContact = true,
                DoNotContactOnly    = false,
                Tag  = "Wellmed",
                Year = 2018,
                CallAttemptFilter             = CallAttemptFilterStatus.All,
                ConsiderEligibiltyFromHistory = true
            };
            ICustomerRepository customerRepository = new CustomerRepository();
            int totalRecors;
            var reports = customerRepository.GetMemberForReport(1, 100, filter, out totalRecors);

            Assert.IsNotNull(reports);
        }
Esempio n. 7
0
        private void GenerateMemberStatusListCsvByFilter(MemberStatusListModelFilter filter, CorporateAccount account)
        {
            _logger.Info(string.Format("Generating Member Status Report for filter :  Tag {0}", filter.Tag));

            var dataGen = new ExportableDataGenerator <MemberStatusModel, MemberStatusListModelFilter>(_eventCustomerReportingService.GetMemberStatusReport, _logger);
            var model   = dataGen.GetData(filter);

            if (model != null)
            {
                var fileName = GetCsvFileName(account);

                var exporter = ExportableDataGeneratorProcessManager <ViewModelBase, ModelFilterBase> .GetCsvExporter <MemberStatusModel>();

                if (model.Collection != null && model.Collection.Any())
                {
                    _baseExportableReportHelper.GenerateCsv(fileName, exporter, model.Collection);
                }
            }
        }
Esempio n. 8
0
        public ActionResult MemberStatusReport(MemberStatusListModelFilter filter = null, int pageNumber = 1)
        {
            int totalRecords;
            var model = _eventCustomerReportingService.GetMemberStatusReport(pageNumber, _pageSize, filter, out totalRecords);

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

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

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

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

            return(View(model));
        }
Esempio n. 9
0
        public ActionResult HealthPlanMemberStatusReport(MemberStatusListModelFilter filter = null, int pageNumber = 1)
        {
            int totalRecords;

            filter = filter ?? new MemberStatusListModelFilter();

            filter.HealthPlanId = _sessionContext.UserSession.CurrentOrganizationRole.OrganizationId;

            var model = _eventCustomerReportingService.GetMemberStatusReport(pageNumber, _pageSize, filter, out totalRecords) ?? new MemberStatusListModel();

            model.Filter = filter;

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

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

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

            return(View(model));
        }
Esempio n. 10
0
 public ActionResult MemberStatusReport(MemberStatusListModelFilter filter = null)
 {
     return(CreateExportQueue(filter, ExportableReportType.MemberStatusReport, _sessionContext.UserSession.CurrentOrganizationRole.OrganizationRoleUserId));
 }
Esempio n. 11
0
        public void PollForMemberStatusReport()
        {
            try
            {
                if (_accountIds.IsNullOrEmpty())
                {
                    _logger.Info("Corporate Account Ids Not found");
                    return;
                }

                var accounts = _corporateAccountRepository.GetByIds(_accountIds);

                if (accounts.IsNullOrEmpty())
                {
                    _logger.Info("Corporate Accounts Not found");
                    return;
                }

                foreach (var account in accounts)
                {
                    try
                    {
                        _logger.Info("Starting for Member Status Report for " + account.Tag);

                        var bcbsTags = new string[0];

                        if (account.Id == _settings.BcbsScAccountId && !string.IsNullOrEmpty(_bcbsSouthCarolinaCustomTag))
                        {
                            bcbsTags = _bcbsSouthCarolinaCustomTag.Split(',').ToArray();
                            bcbsTags = bcbsTags.Where(x => !string.IsNullOrEmpty(x)).ToArray();
                        }

                        var filter = new MemberStatusListModelFilter
                        {
                            EligibleStatus      = EligibleFilterStatus.OnlyEligible,
                            IncludeDoNotContact = true,
                            DoNotContactOnly    = false,
                            Tag               = account.Tag,
                            CustomTags        = bcbsTags,
                            CallAttemptFilter = CallAttemptFilterStatus.All,
                        };

                        GenerateMemberStatusListCsvByFilter(filter, account);

                        _logger.Info("Completed for Member Status Report for " + account.Tag);
                    }
                    catch (Exception ex)
                    {
                        _logger.Error("Some error occured on Member status Report for Account Tag : " + account.Tag);
                        _logger.Error("Exception: " + ex.Message);
                        _logger.Error("Stack Trace: " + ex.StackTrace);
                    }
                }
            }
            catch (Exception ex)
            {
                _logger.Error("Some error occured on Member status Report");
                _logger.Error("Exception: " + ex.Message);
                _logger.Error("Stack Trace: " + ex.StackTrace);
            }
        }