123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- using System.Linq;
- using System;
- using Microsoft.AspNetCore.Components;
- using Microsoft.Extensions.Primitives;
- using System.Collections.Generic;
- using System.IO;
- using System.Net;
- using System.Net.Http;
- using System.Threading.Tasks;
- namespace FastReport.Web.Blazor.Components.Internal
- {
- public partial class ModalContainer
- {
- [Inject]
- internal NavigationManager NavManager { get; set; }
- private string ExportParametersToString()
- {
- if (!ExportParameters.Any())
- return "";
- var uri = string.Join('&',
- ExportParameters.Select(kvp =>
- $"{kvp.Key}={kvp.Value}"));
- #if DEBUG
- Console.WriteLine(uri);
- #endif
- return uri;
- }
- private async Task OkClick()
- {
- if (WebReport.ExportType == Exports.Email)
- {
- if (string.IsNullOrEmpty(ExportParameters["Address"])) return;
- await SendEmailAsync();
- }
- else
- {
- var href = $"{ExportsHelper.GetHref(WebReport)}&{ExportParametersToString()}";
- if (WebReport.HasValidationError)
- return;
- ExportParameters.Clear();
- WebReport.EnableModalDialog = false;
- NavManager.NavigateTo(href, true);
- }
- }
- private async Task SendEmailAsync()
- {
- var href = $"{WebReport.templte_email_export_url}";
- var formContent = new FormUrlEncodedContent(new Dictionary<string, string>
- {
- {"Address", ExportParameters["Address"]},
- {"Subject", ExportParameters["Subject"]},
- {"MessageBody", ExportParameters["MessageBody"]},
- {"ExportFormat", ExportParameters["ExportFormat"]},
- {"NameAttachmentFile", ExportParameters["NameAttachmentFile"]}
- });
- ExportParameters.Clear();
- WebReport.EnableModalDialog = false;
- var baseUri = new Uri(NavManager.BaseUri);
- var absoluteUri = new Uri(baseUri, href);
- using var httpClient = new HttpClient();
- var response = await httpClient.PostAsync(absoluteUri, formContent);
- if (response.IsSuccessStatusCode)
- {
- await ShowPositivePopup();
- }
- else if (response.StatusCode == HttpStatusCode.BadRequest)
- {
- await ShowNegativePopup();
- }
- }
- }
- }
|