Prac2026_Email/ListmonkIntegration/Pages/Subscribers/Upload.cshtml
2026-07-15 17:17:03 +03:00

73 lines
2.6 KiB
Plaintext

@page
@model ListmonkIntegration.Pages.Subscribers.UploadModel
@{
ViewData["Title"] = "Загрузка подписчиков";
}
<h1>Загрузка списка подписчиков</h1>
<hr />
@if (!string.IsNullOrEmpty(Model.Message))
{
<div class="alert @(Model.IsSuccess ? "alert-success" : "alert-danger")">
@Model.Message
</div>
}
<div class="row">
<div class="col-md-6">
<form method="post" enctype="multipart/form-data">
<div class="mb-3">
<label class="form-label">Выберите Excel файл (.xlsx)</label>
<input type="file" name="excelFile" class="form-control" accept=".xlsx" required />
<div class="form-text">
Файл должен содержать столбцы: Email, FullName и другие атрибуты
</div>
</div>
<div class="mb-3">
<label class="form-label">Название списка в Listmonk</label>
<input type="text" name="listName" class="form-control" value="Рассылка @DateTime.Now.ToString("dd.MM.yyyy")" required />
</div>
<div class="mb-3">
<button type="submit" class="btn btn-primary">Загрузить и обработать</button>
<a asp-page="/Index" class="btn btn-secondary">Отмена</a>
</div>
</form>
</div>
</div>
@if (Model.Subscribers != null && Model.Subscribers.Any())
{
<h3 class="mt-4">Загружено подписчиков: @Model.Subscribers.Count</h3>
@if (Model.ColumnHeaders != null && Model.ColumnHeaders.Any())
{
<div class="table-responsive">
<table class="table table-striped table-sm">
<thead class="table-dark">
<tr>
@foreach (var header in Model.ColumnHeaders)
{
<th>@header</th>
}
</tr>
</thead>
<tbody>
@foreach (var sub in Model.Subscribers)
{
<tr>
<td>@sub.Email</td>
<td>@sub.FullName</td>
@foreach (var attr in sub.Attributes)
{
<td>@attr.Value</td>
}
</tr>
}
</tbody>
</table>
</div>
}
}