public virtual IActionResult ExportCsv(NewsletterSubscriptionSearchModel model) { if (!_permissionService.Authorize(StandardPermissionProvider.ManageNewsletterSubscribers)) { return(AccessDeniedView()); } bool?isActive = null; if (model.ActiveId == 1) { isActive = true; } else if (model.ActiveId == 2) { isActive = false; } var startDateValue = model.StartDate == null ? null : (DateTime?)_dateTimeHelper.ConvertToUtcTime(model.StartDate.Value, _dateTimeHelper.CurrentTimeZone); var endDateValue = model.EndDate == null ? null : (DateTime?)_dateTimeHelper.ConvertToUtcTime(model.EndDate.Value, _dateTimeHelper.CurrentTimeZone).AddDays(1); var subscriptions = _newsLetterSubscriptionService.GetAllNewsLetterSubscriptions(model.SearchEmail, startDateValue, endDateValue, model.StoreId, isActive, model.CustomerRoleId); var result = _exportManager.ExportNewsletterSubscribersToTxt(subscriptions); var fileName = $"newsletter_emails_{DateTime.Now:yyyy-MM-dd-HH-mm-ss}_{CommonHelper.GenerateRandomDigitCode(4)}.txt"; return(File(Encoding.UTF8.GetBytes(result), MimeTypes.TextCsv, fileName)); }
public virtual IActionResult SubscriptionList(NewsletterSubscriptionSearchModel searchModel) { if (!_permissionService.Authorize(StandardPermissionProvider.ManageNewsletterSubscribers)) { return(AccessDeniedKendoGridJson()); } //prepare model var model = _newsletterSubscriptionModelFactory.PrepareNewsletterSubscriptionListModel(searchModel); return(Json(model)); }
/// <returns>A task that represents the asynchronous operation</returns> public virtual async Task <IActionResult> SubscriptionList(NewsletterSubscriptionSearchModel searchModel) { if (!await _permissionService.AuthorizeAsync(StandardPermissionProvider.ManageNewsletterSubscribers)) { return(await AccessDeniedDataTablesJson()); } //prepare model var model = await _newsletterSubscriptionModelFactory.PrepareNewsletterSubscriptionListModelAsync(searchModel); return(Json(model)); }
/// <summary> /// Prepare newsletter subscription search model /// </summary> /// <param name="searchModel">Newsletter subscription search model</param> /// <returns>Newsletter subscription search model</returns> public virtual NewsletterSubscriptionSearchModel PrepareNewsletterSubscriptionSearchModel(NewsletterSubscriptionSearchModel searchModel) { if (searchModel == null) { throw new ArgumentNullException(nameof(searchModel)); } //prepare available stores _baseAdminModelFactory.PrepareStores(searchModel.AvailableStores); //prepare available customer roles _baseAdminModelFactory.PrepareCustomerRoles(searchModel.AvailableCustomerRoles); //prepare "activated" filter (0 - all; 1 - activated only; 2 - deactivated only) searchModel.ActiveList.Add(new SelectListItem { Value = "0", Text = _localizationService.GetResource("Admin.Promotions.NewsLetterSubscriptions.List.SearchActive.All") }); searchModel.ActiveList.Add(new SelectListItem { Value = "1", Text = _localizationService.GetResource("Admin.Promotions.NewsLetterSubscriptions.List.SearchActive.ActiveOnly") }); searchModel.ActiveList.Add(new SelectListItem { Value = "2", Text = _localizationService.GetResource("Admin.Promotions.NewsLetterSubscriptions.List.SearchActive.NotActiveOnly") }); searchModel.HideStoresList = _catalogSettings.IgnoreStoreLimitations || searchModel.AvailableStores.SelectionIsNotPossible(); //prepare page parameters searchModel.SetGridPageSize(); return(searchModel); }
/// <summary> /// Prepare paged newsletter subscription list model /// </summary> /// <param name="searchModel">Newsletter subscription search model</param> /// <returns>Newsletter subscription list model</returns> public virtual NewsletterSubscriptionListModel PrepareNewsletterSubscriptionListModel(NewsletterSubscriptionSearchModel searchModel) { if (searchModel == null) { throw new ArgumentNullException(nameof(searchModel)); } //get parameters to filter newsletter subscriptions var isActivatedOnly = searchModel.ActiveId == 0 ? null : searchModel.ActiveId == 1 ? true : (bool?)false; var startDateValue = !searchModel.StartDate.HasValue ? null : (DateTime?)_dateTimeHelper.ConvertToUtcTime(searchModel.StartDate.Value, _dateTimeHelper.CurrentTimeZone); var endDateValue = !searchModel.EndDate.HasValue ? null : (DateTime?)_dateTimeHelper.ConvertToUtcTime(searchModel.EndDate.Value, _dateTimeHelper.CurrentTimeZone).AddDays(1); //get newsletter subscriptions var newsletterSubscriptions = _newsLetterSubscriptionService.GetAllNewsLetterSubscriptions(email: searchModel.SearchEmail, customerRoleId: searchModel.CustomerRoleId, storeId: searchModel.StoreId, isActive: isActivatedOnly, createdFromUtc: startDateValue, createdToUtc: endDateValue, pageIndex: searchModel.Page - 1, pageSize: searchModel.PageSize); //prepare list model var model = new NewsletterSubscriptionListModel().PrepareToGrid(searchModel, newsletterSubscriptions, () => { return(newsletterSubscriptions.Select(subscription => { //fill in model values from the entity var subscriptionModel = subscription.ToModel <NewsletterSubscriptionModel>(); //convert dates to the user time subscriptionModel.CreatedOn = _dateTimeHelper.ConvertToUserTime(subscription.CreatedOnUtc, DateTimeKind.Utc).ToString(); //fill in additional values (not existing in the entity) subscriptionModel.StoreName = _storeService.GetStoreById(subscription.StoreId)?.Name ?? "Deleted"; return subscriptionModel; })); }); return(model); }