/// <returns>A task that represents the asynchronous operation</returns> public virtual async Task <IActionResult> ExportCsv(NewsletterSubscriptionSearchModel model) { if (!await _permissionService.AuthorizeAsync(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, await _dateTimeHelper.GetCurrentTimeZoneAsync()); var endDateValue = model.EndDate == null ? null : (DateTime?)_dateTimeHelper.ConvertToUtcTime(model.EndDate.Value, await _dateTimeHelper.GetCurrentTimeZoneAsync()).AddDays(1); var subscriptions = await _newsLetterSubscriptionService.GetAllNewsLetterSubscriptionsAsync(model.SearchEmail, startDateValue, endDateValue, model.StoreId, isActive, model.CustomerRoleId); var result = await _exportManager.ExportNewsletterSubscribersToTxtAsync(subscriptions); var fileName = $"newsletter_emails_{DateTime.Now:yyyy-MM-dd-HH-mm-ss}_{CommonHelper.GenerateRandomDigitCode(4)}.csv"; return(File(Encoding.UTF8.GetBytes(result), MimeTypes.TextCsv, fileName)); }