コード例 #1
0
        /// <summary>
        /// Prepare paged campaign list model
        /// </summary>
        /// <param name="searchModel">Campaign search model</param>
        /// <returns>Campaign list model</returns>
        public virtual CampaignListModel PrepareCampaignListModel(CampaignSearchModel searchModel)
        {
            if (searchModel == null)
            {
                throw new ArgumentNullException(nameof(searchModel));
            }

            //get campaigns
            var campaigns = _campaignService.GetAllCampaigns(searchModel.StoreId).ToPagedList(searchModel);

            //prepare grid model
            var model = new CampaignListModel().PrepareToGrid(searchModel, campaigns, () =>
            {
                return(campaigns.Select(campaign =>
                {
                    //fill in model values from the entity
                    var campaignModel = campaign.ToModel <CampaignModel>();

                    //convert dates to the user time
                    campaignModel.CreatedOn = _dateTimeHelper.ConvertToUserTime(campaign.CreatedOnUtc, DateTimeKind.Utc);
                    if (campaign.DontSendBeforeDateUtc.HasValue)
                    {
                        campaignModel.DontSendBeforeDate = _dateTimeHelper
                                                           .ConvertToUserTime(campaign.DontSendBeforeDateUtc.Value, DateTimeKind.Utc);
                    }

                    return campaignModel;
                }));
            });

            return(model);
        }
コード例 #2
0
        public virtual IActionResult List(DataSourceRequest command, CampaignListModel searchModel)
        {
            if (!_permissionService.Authorize(StandardPermissionProvider.ManageCampaigns))
            {
                return(AccessDeniedKendoGridJson());
            }

            var campaigns = _campaignService.GetAllCampaigns(searchModel.StoreId);
            var gridModel = new DataSourceResult
            {
                Data = campaigns.Select(x =>
                {
                    var model       = x.ToModel();
                    model.CreatedOn = _dateTimeHelper.ConvertToUserTime(x.CreatedOnUtc, DateTimeKind.Utc);
                    if (x.DontSendBeforeDateUtc.HasValue)
                    {
                        model.DontSendBeforeDate = _dateTimeHelper.ConvertToUserTime(x.DontSendBeforeDateUtc.Value, DateTimeKind.Utc);
                    }
                    return(model);
                }),
                Total = campaigns.Count
            };

            return(Json(gridModel));
        }
コード例 #3
0
        public virtual IActionResult List()
        {
            if (!_permissionService.Authorize(StandardPermissionProvider.ManageCampaigns))
            {
                return(AccessDeniedView());
            }

            var stores = _storeService.GetAllStores();
            var model  = new CampaignListModel();

            model.AvailableStores.Add(new SelectListItem
            {
                Text  = _localizationService.GetResource("Admin.Common.All"),
                Value = "0"
            });

            foreach (var store in stores)
            {
                model.AvailableStores.Add(new SelectListItem
                {
                    Text  = store.Name,
                    Value = store.Id.ToString()
                });
            }

            return(View(model));
        }
コード例 #4
0
        public virtual ActionResult List()
        {
            if (!_permissionService.Authorize(StandardPermissionProvider.ManageCampaigns))
            {
                return(AccessDeniedView());
            }

            var stores = _storeService.GetAllStores();
            var model  = new CampaignListModel();

            #region Extensions by QuanNH
            //stores
            var _workContext = Nop.Core.Infrastructure.EngineContext.Current.Resolve <Nop.Core.IWorkContext>();
            var AllStores    = _storeService.GetAllStoresByEntityName(_workContext.CurrentCustomer.Id, "Stores");
            if (AllStores.Count <= 0)
            {
                AllStores = _storeService.GetAllStores();
                model.AvailableStores.Add(new SelectListItem {
                    Text = _localizationService.GetResource("Admin.Common.All"), Value = "0"
                });
            }
            foreach (var s in AllStores)
            {
                model.AvailableStores.Add(new SelectListItem {
                    Text = s.Name, Value = s.Id.ToString()
                });
            }

            #endregion

            return(View(model));
        }
コード例 #5
0
        // GET: Campaign
        public async Task <IActionResult> Index(string sortOrder, int?page)
        {
            ViewBag.CurrentSort       = sortOrder;
            ViewBag.ProductSortParm   = string.IsNullOrEmpty(sortOrder) ? "product" : "";
            ViewBag.PromotionSortParm = string.IsNullOrEmpty(sortOrder) ? "promotion" : "";
            ViewBag.DiscountSortParm  = string.IsNullOrEmpty(sortOrder) ? "discount" : "";

            var list = await GetCampaignQueryable();

            switch (sortOrder)
            {
            case "product":
                list = list.OrderByDescending(p => p.Product);
                break;

            case "promotion":
                list = list.OrderByDescending(p => p.Promotion);
                break;

            case "discount":
                list = list.OrderByDescending(p => p.Discount);
                break;

            default:
                list = list.OrderBy(s => s.Product);
                break;
            }

            var pageNumber   = page ?? 1;
            var campaignList = new CampaignListModel {
                Campaigns = list.ToPagedList(pageNumber, 15)
            };

            return(View(campaignList));
        }
コード例 #6
0
        public CampaignListModel Create(IEnumerable <Campaign> campaigns, IEnumerable <OrderedPair <long, string> > campaignCreatedByAgentNameIdPair, IEnumerable <CorporateAccount> corporateAccounts,
                                        IEnumerable <CampaignActivity> campaignActivity, IEnumerable <CampaignActivityAssignment> campaignActivityAssignments, IEnumerable <DirectMailType> directMailTypes)
        {
            var model      = new CampaignListModel();
            var collection = new List <CampaignViewModel>();

            campaigns.ToList().ForEach(cg =>
            {
                var createdBy  = "N/A";
                var modifiedBy = "N/A";

                if (campaignCreatedByAgentNameIdPair != null && campaignCreatedByAgentNameIdPair.Any())
                {
                    createdBy  = campaignCreatedByAgentNameIdPair.Single(ap => ap.FirstValue == cg.DataRecorderMetaData.DataRecorderCreator.Id).SecondValue;
                    modifiedBy = campaignCreatedByAgentNameIdPair.Single(ap => ap.FirstValue == cg.DataRecorderMetaData.DataRecorderModifier.Id).SecondValue;
                }

                var corporateAccountName = string.Empty;
                if (corporateAccounts != null && corporateAccounts.Any())
                {
                    corporateAccountName = corporateAccounts.Where(x => x.Id == cg.AccountId).Select(x => x.Name).FirstOrDefault();
                }

                var campaignActivityCollection = GetCampaignActivityViewModel(cg.Id, campaignActivity, campaignActivityAssignments, campaignCreatedByAgentNameIdPair, directMailTypes, cg.IsPublished);

                var campaignViewModel = new CampaignViewModel
                {
                    Id               = cg.Id,
                    Name             = cg.Name,
                    CampaignType     = ((CampaignType)cg.TypeId).ToString(),
                    CampaignMode     = ((CampaignMode)cg.ModeId).ToString(),
                    StartDate        = cg.StartDate,
                    EndDate          = cg.EndDate,
                    IsPublish        = cg.IsPublished,
                    CreatedOn        = cg.DataRecorderMetaData.DateCreated,
                    CreatedBy        = createdBy,
                    ModifiedOn       = cg.DataRecorderMetaData.DateModified,
                    ModifiedBy       = modifiedBy,
                    CorporateAccount = corporateAccountName,
                    CustomTags       = string.IsNullOrEmpty(cg.CustomTags) ? "" : string.Join(", ", cg.CustomTags.Split(',').ToArray()),
                    CampaignActivity = campaignActivityCollection
                };

                collection.Add(campaignViewModel);
            });

            model.Collection = collection;
            return(model);
        }