Ejemplo n.º 1
0
        private RouteValueDictionary GetProspectCustomerAbandonedReport(ProspectCustomerListModelFilter filter)
        {
            var routeValueDictionary = new RouteValueDictionary
            {
                { "FromDate", filter.FromDate },
                { "ToDate", filter.ToDate },
                { "DateType", filter.DateType },
                { "Source", filter.Source },
                { "Tag", filter.Tag },
                { "Miles", filter.Miles },
                { "Zipcode", filter.Zipcode },
                { "PhoneNumber", filter.PhoneNumber },
                { "StateId", filter.StateId },
                { "City", filter.City },
                { "CorporateTag", filter.CorporateTag },
                { "AgentOrganizationId", filter.AgentOrganizationId }
            };

            if (!filter.CustomTags.IsNullOrEmpty())
            {
                var index = 0;
                foreach (var customtag in filter.CustomTags)
                {
                    routeValueDictionary.Add(string.Format("CustomTags[{0}]", index), customtag);
                    index++;
                }
            }

            return(routeValueDictionary);
        }
Ejemplo n.º 2
0
        public ActionResult ProspectCustomerAbandonedReport(int pageNumber = 1, ProspectCustomerListModelFilter filter = null)
        {
            var filterValidator = IoC.Resolve <ProspectCustomerListModelFilterValidator>();
            var result          = filterValidator.Validate(filter);

            if (result.IsValid)
            {
                if (_sessionContext.UserSession.CurrentOrganizationRole.GetSystemRoleId == (long)Roles.CallCenterRep)
                {
                    filter.AgentOrganizationId = _sessionContext.UserSession.CurrentOrganizationRole.OrganizationId;
                }

                int totalRecords;
                var model = _prospectCustomerService.GetAbandonedCustomers(pageNumber, _pageSize, filter, out totalRecords);
                if (model == null)
                {
                    model = new ProspectCustomerListModel();
                }
                model.Filter = filter;

                var currentAction = ControllerContext.RouteData.Values["action"].ToString();
                //Func<int, string> urlFunc = pn => Url.Action(currentAction, new
                //                                                                {
                //                                                                    pageNumber = pn,
                //                                                                    filter.FromDate,
                //                                                                    filter.ToDate,
                //                                                                    filter.DateType,
                //                                                                    filter.Source,
                //                                                                    filter.Tag,
                //                                                                    filter.Miles,
                //                                                                    filter.Zipcode,
                //                                                                    filter.PhoneNumber,
                //                                                                    filter.StateId,
                //                                                                    filter.City,
                //                                                                    filter.CorporateTag,
                //                                                                    CustomTags = filter.CustomTags.IsNullOrEmpty() ? "" : string.Join("&CustomTags=", filter.CustomTags)
                //                                                                });

                var routeValueDictionary = GetProspectCustomerAbandonedReport(filter);

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


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

                return(View(model));
            }
            var propertyNames = result.Errors.Select(e => e.PropertyName).Distinct();
            var htmlString    = propertyNames.Aggregate("", (current, property) => current + (result.Errors.Where(e => e.PropertyName == property).FirstOrDefault().ErrorMessage + "<br />"));

            return(View(new ProspectCustomerListModel {
                Filter = filter, FeedbackMessage = FeedbackMessageModel.CreateFailureMessage(htmlString)
            }));
        }
        public void ProspectCustomerAbandonedReportAsync(string id = null, ProspectCustomerListModelFilter filter = null)
        {
            if (id == null)
            {
                return;
            }

            AsyncManager.OutstandingOperations.Increment();
            var dataGen =
                new ExportableDataGenerator <ProspectCustomerBasicInfoModel, ProspectCustomerListModelFilter>(
                    _prospectCustomerService.GetAbandonedCustomers);

            var processmanager = new ExportableDataGeneratorProcessManager <ProspectCustomerBasicInfoModel, ProspectCustomerListModelFilter>();

            processmanager.Add(id, dataGen);

            GetNewProcessStarted(filter, dataGen, id);
        }