PIbd-22_Chernyshev_Shabunov.../ComputerShopImplementerApp/Controllers/HomeController.cs

880 lines
29 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using ComputerShopImplementerApp.Models;
using ComputerShopContracts.BindingModels;
using ComputerShopContracts.ViewModels;
using Microsoft.AspNetCore.Mvc;
using System.Diagnostics;
using ComputerShopDataModels.Enums;
using ComputerShopDataModels.Models;
using ComputerShopContracts.SearchModels;
using ComputerShopContracts.BusinessLogicContracts;
using DocumentFormat.OpenXml.Bibliography;
using Microsoft.AspNetCore.DataProtection.Repositories;
namespace ComputerShopImplementerApp.Controllers
{
public class HomeController : Controller
{
private readonly ILogger<HomeController> _logger;
private readonly IReportImplementerLogic _logic;
public HomeController(ILogger<HomeController> logger, IReportImplementerLogic logic)
{
_logger = logger;
_logic = logic;
}
public IActionResult Index()
{
if (APIUser.User == null)
{
return Redirect("~/Home/Enter");
}
return View(/*APIUser.GetRequest<List<OrderViewModel>>($"api/main/getorders?userId={APIUser.User.Id}")*/);
}
// ЗАКАЗЫ ЗАКАЗЫ ЗАКАЗЫ ЗАКАЗЫ ЗАКАЗЫ
//!!!МБ ДОБАВИТЬ [HttpGet]
public IActionResult Orders()
{
if (APIUser.User == null)
{
return Redirect("~/Home/Enter");
}
return View(APIUser.GetRequest<List<OrderViewModel>>($"api/order/getorders?userId={APIUser.User.Id}"));
}
[HttpGet]
public OrderViewModel GetOrder(int orderId)
{
if (APIUser.User == null)
{
Response.Redirect("Enter");
}
var result = APIUser.GetRequest<OrderViewModel>($"api/order/getorder?id={orderId}");
if (result == null)
{
return default;
}
return result;
}
[HttpGet]
public IActionResult CreateOrder()
{
//!!!ПОТОМ УДАЛИТЬ
//ViewBag.OrderStatuses = APIUser.GetRequest<List<String>>("api/order/getorderstatuses");
return View();
}
[HttpPost]
public void CreateOrder(OrderStatus status, DateTime date)
{
if (APIUser.User == null)
{
throw new Exception("Вход только авторизованным");
}
//if (count <= 0)
//{
// throw new Exception("Количество и сумма должны быть больше 0");
//}
//if ()
if (date != DateTime.MinValue)
{
APIUser.PostRequest("api/order/createorder", new OrderBindingModel
{
UserId = APIUser.User.Id,
Status = status,
DateCreate = date,
Sum = 0
});
}
Response.Redirect("Orders");
//try
//{
//}
//catch (Exception)
//{
// Response.Redirect("CreateOrder");
//}
}
[HttpGet]
public IActionResult UpdateOrder()
{
if (APIUser.User == null)
{
return Redirect("~/Home/Enter");
}
ViewBag.Orders = APIUser.GetRequest<List<OrderViewModel>>($"api/order/getorders?userId={APIUser.User.Id}");
//ViewBag.Statuses =
return View();
}
//МБ ПОСТАВИТЬ int? и передавать order.Value
[HttpPost]
public void UpdateOrder(int order, OrderStatus status, DateTime date, double sum)
{
if (APIUser.User == null)
{
Response.Redirect("~/Home/Entry");
}
//if (order == null)
//{
// throw new Exception("Выберите заказ для изменения");
//}
//if (status == null)
//{
// throw new Exception("Выберите статус для заказа");
//}
if (order > 0 && date != DateTime.MinValue)
{
APIUser.PostRequest("api/order/updateorder", new OrderBindingModel
{
Id = order,
UserId = APIUser.User.Id,
Status = status,
DateCreate = date,
Sum = sum
});
}
Response.Redirect("Orders");
}
[HttpGet]
public IActionResult DeleteOrder()
{
if (APIUser.User == null)
{
return Redirect("~/Home/Enter");
}
ViewBag.Orders = APIUser.GetRequest<List<OrderViewModel>>($"api/order/getorders?userId={APIUser.User.Id}");
//ViewBag.Statuses =
return View();
}
[HttpPost]
public void DeleteOrder(int order)
{
if (APIUser.User == null)
{
Redirect("~/Home/Enter");
//throw new Exception("Вход только авторизованным");
}
if (order > 0)
{
APIUser.PostRequest("api/order/deleteorder", new OrderBindingModel
{
Id = order
});
}
Response.Redirect("Orders");
}
// ПАРТИИ ТОВАРОВ ПАРТИИ ТОВАРОВ ПАРТИИ ТОВАРОВ ПАРТИИ ТОВАРОВ ПАРТИИ ТОВАРОВ
public async Task<IActionResult> Shipments()
{
if (APIUser.User == null)
{
return Redirect("~/Home/Enter");
}
var shipments = await APIUser.GetRequestShipmentAsync<List<ShipmentViewModel>>($"api/shipment/getshipments?userId={APIUser.User.Id}");
return View(shipments);
}
[HttpGet]
public async Task<ShipmentViewModel> GetShipment(int shipmentId)
{
if (APIUser.User == null)
{
Redirect("~/Home/Enter");
//throw new Exception("Вход только авторизованным");
}
//GetRequestShipmentAsync
var result = await APIUser.GetRequestShipmentAsync<ShipmentViewModel>($"api/shipment/getshipment?id={shipmentId}");
if (result == null)
{
return default;
}
return result;
//try
//{
//}
//catch (Exception)
//{
// Response.Redirect("Shipments");
// return default;
//}
}
[HttpGet]
public IActionResult CreateShipment()
{
if (APIUser.User == null)
{
Redirect("~/Home/Enter");
}
ViewBag.Orders = APIUser.GetRequest<List<OrderViewModel>>($"api/order/getorders?userId={APIUser.User.Id}");
return View();
}
[HttpPost]
public void CreateShipment(string providerName, DateTime date, int[] orders)
{
if (APIUser.User == null)
{
Redirect("~/Home/Enter");
}
// Создаем словарь из выбранных заказов
var selectedOrders = new Dictionary<int, IOrderModel>();
foreach (var orderId in orders)
{
selectedOrders.Add(orderId, new OrderSearchModel { Id = orderId } as IOrderModel);
//var orderModel = APIUser.GetRequest<OrderViewModel>($"api/order/getorder?id={orderId}");
//selectedOrders.Add(orderId, orderModel);
}
if (!string.IsNullOrEmpty(providerName) && date != DateTime.MinValue && APIUser.User != null)
{
APIUser.PostRequest("api/shipment/createshipment", new ShipmentBindingModel
{
UserId = APIUser.User.Id,
ProviderName = providerName,
DateShipment = date,
ShipmentOrders = selectedOrders
});
}
Response.Redirect("Shipments");
}
//!!!МБ СДЕЛАТЬ ПО АНАЛОГИИ С public async Task<IActionResult> Shipments()
[HttpGet]
public async Task<IActionResult> UpdateShipment()
{
if (APIUser.User == null)
{
return Redirect("~/Home/Enter");
}
ViewBag.Shipments = await APIUser.GetRequestShipmentAsync<List<ShipmentViewModel>>($"api/shipment/getshipments?userId={APIUser.User.Id}");
ViewBag.Orders = APIUser.GetRequest<List<OrderViewModel>>($"api/order/getorders?userId={APIUser.User.Id}");
return View();
}
[HttpPost]
public void UpdateShipment(int shipment, string providerName, DateTime date, int[] orders)
{
if (APIUser.User == null)
{
Redirect("~/Home/Enter");
}
var selectedOrders = new Dictionary<int, IOrderModel>();
foreach (var orderId in orders)
{
selectedOrders.Add(orderId, new OrderSearchModel { Id = orderId } as IOrderModel);
}
if (shipment > 0 && !string.IsNullOrEmpty(providerName) && date != DateTime.MinValue && APIUser.User != null)
{
APIUser.PostRequest("api/shipment/updateshipment", new ShipmentBindingModel
{
Id = shipment,
UserId = APIUser.User.Id,
ProviderName = providerName,
DateShipment = date,
ShipmentOrders = selectedOrders
});
}
Response.Redirect("Shipments");
}
[HttpGet]
public async Task<IActionResult> DeleteShipment()
{
if (APIUser.User == null)
{
return Redirect("~/Home/Enter");
//throw new Exception("Вход только авторизованным");
}
ViewBag.Shipments = await APIUser.GetRequestShipmentAsync<List<ShipmentViewModel>>($"api/shipment/getshipments?userId={APIUser.User.Id}");
return View();
}
//[HttpPost]
//public void DeleteShipment(int shipment)
//{
// if (APIUser.User == null)
// {
// throw new Exception("Вход только авторизованным");
// }
// APIUser.PostRequest("api/shipment/deleteshipment", new ShipmentBindingModel
// {
// Id = shipment
// });
// Response.Redirect("Shipments");
//}
[HttpPost]
public async Task<IActionResult> DeleteShipment(int shipment)
{
if (APIUser.User == null)
{
return Redirect("~/Home/Enter");
}
if (shipment > 0)
{
await APIUser.PostRequestAsync("api/shipment/deleteshipment", new ShipmentBindingModel
{
Id = shipment
});
}
return Redirect("Shipments");
}
// ЗАЯВКИ НА СБОРКИ ЗАЯВКИ НА СБОРКИ ЗАЯВКИ НА СБОРКИ ЗАЯВКИ НА СБОРКИ ЗАЯВКИ НА СБОРКИ
//public IActionResult Requests()
//{
// if (APIUser.User == null)
// {
// return Redirect("~/Home/Enter");
// }
// return View(APIUser.GetRequest<List<RequestViewModel>>($"api/request/getrequests?userId={APIUser.User.Id}"));
//}
//МБ ТАК Requests
public async Task<IActionResult> Requests()
{
if (APIUser.User == null)
{
return Redirect("~/Home/Enter");
}
var requests = await APIUser.GetRequestRequestAsync<List<RequestViewModel>>($"api/request/getrequests?userId={APIUser.User.Id}");
//var shipments = await APIUser.GetRequestShipmentAsync<List<ShipmentViewModel>>($"api/shipment/getshipments?userId={APIUser.User.Id}");
return View(requests);
}
[HttpGet]
public async Task<RequestViewModel> GetRequest(int requestId)
{
if (APIUser.User == null)
{
Response.Redirect("~/Home/Enter");
}
//GetRequestShipmentAsync
var result = await APIUser.GetRequestRequestAsync<RequestViewModel>($"api/request/getrequest?id={requestId}");
if (result == null)
{
return default;
}
return result;
}
[HttpGet]
public IActionResult CreateRequest()
{
if (APIUser.User == null)
{
return Redirect("~/Home/Enter");
}
ViewBag.Orders = APIUser.GetRequest<List<OrderViewModel>>($"api/order/getorders?userId={APIUser.User.Id}");
return View();
}
[HttpPost]
public void CreateRequest(string clientFIO, DateTime date, int[] orders)
{
if (APIUser.User == null)
{
Redirect("~/Home/Enter");
//throw new Exception("Вход только авторизованным");
}
// Создаем словарь из выбранных заказов
var selectedOrders = new Dictionary<int, IOrderModel>();
foreach (var orderId in orders)
{
selectedOrders.Add(orderId, new OrderSearchModel { Id = orderId } as IOrderModel);
}
if (!string.IsNullOrEmpty(clientFIO) && date != DateTime.MinValue)
{
APIUser.PostRequest("api/request/createrequest", new RequestBindingModel
{
UserId = APIUser.User.Id,
ClientFIO = clientFIO,
DateRequest = date,
RequestOrders = selectedOrders
});
}
Response.Redirect("Requests");
}
[HttpGet]
public async Task<IActionResult> UpdateRequest()
{
if (APIUser.User == null)
{
return Redirect("~/Home/Enter");
//throw new Exception("Вход только авторизованным");
}
ViewBag.Requests = await APIUser.GetRequestRequestAsync<List<RequestViewModel>>($"api/request/getrequests?userId={APIUser.User.Id}");
ViewBag.Orders = APIUser.GetRequest<List<OrderViewModel>>($"api/order/getorders?userId={APIUser.User.Id}");
return View();
}
[HttpPost]
public void UpdateRequest(int request, string clientFIO, DateTime date, int[] orders)
{
if (APIUser.User == null)
{
Response.Redirect("~/Home/Enter");
}
var selectedOrders = new Dictionary<int, IOrderModel>();
foreach (var orderId in orders)
{
selectedOrders.Add(orderId, new OrderSearchModel { Id = orderId } as IOrderModel);
}
if (request > 0 && !string.IsNullOrEmpty(clientFIO) && date != DateTime.MinValue)
{
APIUser.PostRequest("api/request/updaterequest", new RequestBindingModel
{
Id = request,
UserId = APIUser.User.Id,
ClientFIO = clientFIO,
DateRequest = date,
RequestOrders = selectedOrders
});
}
Response.Redirect("Requests");
}
[HttpGet]
public async Task<IActionResult> ConnectRequestAssembly()
{
if (APIUser.User == null)
{
return Redirect("~/Home/Enter");
}
ViewBag.Requests = await APIUser.GetRequestRequestAsync<List<RequestViewModel>>($"api/request/getrequests?userId={APIUser.User.Id}");
//ViewBag.Orders = APIUser.GetRequest<List<OrderViewModel>>($"api/order/getorders?userId={APIUser.User.Id}");
ViewBag.Assemblies = APIUser.GetRequest<List<AssemblyViewModel>>($"api/assembly/getassemblies");
return View();
}
[HttpPost]
public void ConnectRequestAssembly(int request, int assembly)
{
if (APIUser.User == null)
{
Redirect("~/Home/Enter");
}
if (request > 0 && assembly > 0)
{
APIUser.PostRequest("api/request/connectRequestAssembly", new RequestBindingModel
{
Id = request,
AssemblyId = assembly
});
}
Response.Redirect("Requests");
}
[HttpGet]
public async Task<IActionResult> DeleteRequest()
{
if (APIUser.User == null)
{
throw new Exception("Вход только авторизованным");
}
ViewBag.Requests = await APIUser.GetRequestRequestAsync<List<RequestViewModel>>($"api/request/getrequests?userId={APIUser.User.Id}");
return View();
}
[HttpPost]
public async Task<IActionResult> DeleteRequest(int request)
{
if (APIUser.User == null)
{
throw new Exception("Вход только авторизованным");
}
if (request > 0)
{
await APIUser.PostRequestAsync("api/request/deleterequest", new RequestBindingModel
{
Id = request
});
}
return RedirectToAction("Requests");
}
//ОТЧЁТЫ ОТЧЁТЫ ОТЧЁТЫ ОТЧЁТЫ ОТЧЁТЫ ОТЧЁТЫ ОТЧЁТЫ ОТЧЁТЫ ОТЧЁТЫ ОТЧЁТЫ ОТЧЁТЫ
[HttpGet]
public IActionResult ReportOrdersAssembliesToFile()
{
if (APIUser.User == null)
{
return Redirect("~/Home/Enter");
}
ViewBag.Orders = APIUser.GetRequest<List<OrderViewModel>>($"api/order/getorders?userId={APIUser.User.Id}");
//ViewBag.Statuses =
return View();
}
[HttpGet]
public IActionResult GetWordFile()
{
return PhysicalFile("C:\\!КУРСОВАЯ\\Сборки по выбранным заказам.docx", "application/vnd.openxmlformats-officedocument.wordprocessingml.document", "Сборки по выбранным заказам.docx");
}
public IActionResult GetExcelFile()
{
return PhysicalFile("C:\\!КУРСОВАЯ\\Сборки по выбранным заказам.xlsx", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "Сборки по выбранным заказам.xlsx");
}
[HttpPost]
public IActionResult ReportOrdersAssembliesToFile(int[] orders, string type)
{
if (APIUser.User == null)
{
Redirect("Index");
}
if (orders.Length > 0 && !string.IsNullOrEmpty(type))
{
//Преобразование массива в список
List<int> ids = new List<int>();
foreach (var item in orders)
{
ids.Add(item);
}
if (type == "docx")
{
APIUser.PostRequest("api/order/createreporttowordfile", new ReportBindingModel
{
Ids = ids,
FileName = "C:\\!КУРСОВАЯ\\Сборки по выбранным заказам.docx"
});
return GetWordFile();
//Response.Redirect("GetWordFile");
}
if (type == "xlsx")
{
APIUser.PostRequest("api/order/createreporttoexcelfile", new ReportBindingModel
{
Ids = ids,
FileName = "C:\\!КУРСОВАЯ\\Сборки по выбранным заказам.xlsx"
});
return GetExcelFile();
//Response.Redirect("GetExcelFile");
}
}
return Redirect("Index");
}
[HttpGet]
public IActionResult ReportOrdersByDates()
{
if (APIUser.User == null)
{
return Redirect("~/Home/Enter");
}
//ViewBag.Orders = APIUser.GetRequest<List<OrderViewModel>>($"api/order/getorders?userId={APIUser.User.Id}");
//ViewBag.Statuses =
return View();
}
[HttpGet]
public string GetOrdersReportByDates(DateTime dateFrom, DateTime dateTo)
{
if (APIUser.User == null)
{
throw new Exception("Вход только авторизованным");
}
if (dateFrom != DateTime.MinValue && dateTo != DateTime.MinValue)
{
List<ReportOrdersViewModel> result;
result = _logic.GetReportOrdersByDates(new ReportBindingModel
{
UserId = APIUser.User.Id,
DateFrom = dateFrom,
DateTo = dateTo
});
string table = "";
//МБ НЕ НДО ПРИСВАИВАТЬ КЛАСС u-table-entity
table += $"<table class=\"u-table-entity\">";
table += "<colgroup>";
//ID заказа
table += "<col width=\"5%\" />";
//Дата заказа
table += "<col width=\"10%\" />";
//Стоимость заказа
table += "<col width=\"10%\" />";
//Статус заказа
table += "<col width=\"10%\" />";
//ID заявки
table += "<col width=\"5%\" />";
//ФИО клиента
table += "<col width=\"15%\" />";
//Дата заявки
table += "<col width=\"10%\" />";
//Название сборки
table += "<col width=\"15%\" />";
//Категория сборки
table += "<col width=\"10%\" />";
//Цена сборки
table += "<col width=\"10%\" />";
table += "</colgroup>";
//МБ НЕ НДО ПРИСВАИВАТЬ КЛАСС
table += "<thead class=\"u-custom-color-1 u-table-header u-table-header-1\">";
//МБ ИЗМЕНИТЬ ВЫСОТУ
table += "<tr style=\"height: 31px\">";
//МБ ИЗМЕНИТЬ КЛАСС
table += $"<th class=\"u-border-1 u-border-grey-50 u-table-cell\" style=\"text-align:center; border: 1px solid black; border-collapse:collapse\">ID заказа</th>";
table += $"<th class=\"u-border-1 u-border-grey-50 u-table-cell\" style=\"text-align:center; border: 1px solid black; border-collapse:collapse\">Дата заказа</th>";
table += $"<th class=\"u-border-1 u-border-grey-50 u-table-cell\" style=\"text-align:center; border: 1px solid black; border-collapse:collapse\">Стоимость заказа</th>";
table += $"<th class=\"u-border-1 u-border-grey-50 u-table-cell\" style=\"text-align:center; border: 1px solid black; border-collapse:collapse\">Статус заказа</th>";
table += $"<th class=\"u-border-1 u-border-grey-50 u-table-cell\" style=\"text-align:center; border: 1px solid black; border-collapse:collapse\">ID заявки</th>";
table += $"<th class=\"u-border-1 u-border-grey-50 u-table-cell\" style=\"text-align:center; border: 1px solid black; border-collapse:collapse\">ФИО клиента</th>";
table += $"<th class=\"u-border-1 u-border-grey-50 u-table-cell\" style=\"text-align:center; border: 1px solid black; border-collapse:collapse\">Дата заявки</th>";
table += $"<th class=\"u-border-1 u-border-grey-50 u-table-cell\" style=\"text-align:center; border: 1px solid black; border-collapse:collapse\">Название сборки</th>";
table += $"<th class=\"u-border-1 u-border-grey-50 u-table-cell\" style=\"text-align:center; border: 1px solid black; border-collapse:collapse\">Категория сборки</th>";
table += $"<th class=\"u-border-1 u-border-grey-50 u-table-cell\" style=\"text-align:center; border: 1px solid black; border-collapse:collapse\">Цена сборки</th>";
table += "</tr>";
table += "</thead>";
//МБ НЕ ПРИСВАИВАТЬ КЛАСС ИЛИ СДЕЛАТЬ ПЕРЕД ВНУТРЕННИМ ЦИКЛОМ
table += "<tbody class=\"u-table-body\">";
foreach (var order in result)
{
if (order.RequestsAssemblies.Count < 1)
{
//МБ ПОМЕНЯТЬ ВЫСОТУ
table += "<tr style=\"height: 75px\">";
table += $"<td class=\"u-border-1 u-border-grey-40 u-table-cell\" style=\"text-align:center; border: 1px solid black; border-collapse:collapse\">{order.OrderId.ToString()}</td>";
table += $"<td class=\"u-border-1 u-border-grey-40 u-border-no-left u-border-no-right u-table-cell\" style=\"text-align:center; border: 1px solid black; border-collapse:collapse\">{order.DateCreateOrder.ToShortDateString()}</td>";
table += $"<td class=\"u-border-1 u-border-grey-40 u-border-no-left u-border-no-right u-table-cell\" style=\"text-align:center; border: 1px solid black; border-collapse:collapse\">{order.OrderSum.ToString()}</td>";
table += $"<td class=\"u-border-1 u-border-grey-40 u-border-no-left u-border-no-right u-table-cell\" style=\"text-align:center; border: 1px solid black; border-collapse:collapse\">{order.OrderStatus.ToString()}</td>";
table += $"<td class=\"u-border-1 u-border-grey-40 u-border-no-left u-border-no-right u-table-cell\" style=\"text-align:center; border: 1px solid black; border-collapse:collapse\">{"Заказ без заявок"}</td>";
table += $"<td class=\"u-border-1 u-border-grey-40 u-border-no-left u-border-no-right u-table-cell\" style=\"text-align:center; border: 1px solid black; border-collapse:collapse\">{"Неизвестно"}</td>";
table += $"<td class=\"u-border-1 u-border-grey-40 u-border-no-left u-border-no-right u-table-cell\" style=\"text-align:center; border: 1px solid black; border-collapse:collapse\">{"Неизвестно"}</td>";
table += $"<td class=\"u-border-1 u-border-grey-40 u-border-no-left u-border-no-right u-table-cell\" style=\"text-align:center; border: 1px solid black; border-collapse:collapse\">{"Неизвестно"}</td>";
table += $"<td class=\"u-border-1 u-border-grey-40 u-border-no-left u-border-no-right u-table-cell\" style=\"text-align:center; border: 1px solid black; border-collapse:collapse\">{"Неизвестно"}</td>";
table += $"<td class=\"u-border-1 u-border-grey-40 u-border-no-left u-border-no-right u-table-cell\" style=\"text-align:center; border: 1px solid black; border-collapse:collapse\">{"Неизвестно"}</td>";
table += "</tr>";
}
foreach (var request in order.RequestsAssemblies)
{
//МБ ПОМЕНЯТЬ ВЫСОТУ
table += "<tr style=\"height: 75px\">";
table += $"<td class=\"u-border-1 u-border-grey-40 u-border-no-left u-border-no-right u-table-cell\" style=\"text-align:center; border: 1px solid black; border-collapse:collapse\">{order.OrderId.ToString()}</td>";
table += $"<td class=\"u-border-1 u-border-grey-40 u-border-no-left u-border-no-right u-table-cell\" style=\"text-align:center; border: 1px solid black; border-collapse:collapse\">{order.DateCreateOrder.ToShortDateString()}</td>";
table += $"<td class=\"u-border-1 u-border-grey-40 u-border-no-left u-border-no-right u-table-cell\" style=\"text-align:center; border: 1px solid black; border-collapse:collapse\">{order.OrderSum.ToString()}</td>";
table += $"<td class=\"u-border-1 u-border-grey-40 u-border-no-left u-border-no-right u-table-cell\" style=\"text-align:center; border: 1px solid black; border-collapse:collapse\">{order.OrderStatus.ToString()}</td>";
table += $"<td class=\"u-border-1 u-border-grey-40 u-border-no-left u-border-no-right u-table-cell\" style=\"text-align:center; border: 1px solid black; border-collapse:collapse\">{request.RequestId.ToString()}</td>";
table += $"<td class=\"u-border-1 u-border-grey-40 u-border-no-left u-border-no-right u-table-cell\" style=\"text-align:center; border: 1px solid black; border-collapse:collapse\">{request.ClientFIO.ToString()}</td>";
table += $"<td class=\"u-border-1 u-border-grey-40 u-border-no-left u-border-no-right u-table-cell\" style=\"text-align:center; border: 1px solid black; border-collapse:collapse\">{request.DateRequest.ToShortDateString()}</td>";
table += $"<td class=\"u-border-1 u-border-grey-40 u-border-no-left u-border-no-right u-table-cell\" style=\"text-align:center; border: 1px solid black; border-collapse:collapse\">{(string.IsNullOrEmpty(request.AssemblyName) ? "Сборка не привязана" : request.AssemblyName)}</td>";
table += $"<td class=\"u-border-1 u-border-grey-40 u-border-no-left u-border-no-right u-table-cell\" style=\"text-align:center; border: 1px solid black; border-collapse:collapse\">{(string.IsNullOrEmpty(request.AssemblyCategory) ? "Неизвестная категория" : request.AssemblyCategory)}</td>";
//МБ тут не будет 0 у непривязанных сборок
table += $"<td class=\"u-border-1 u-border-grey-40 u-border-no-left u-border-no-right u-table-cell\" style=\"text-align:center; border: 1px solid black; border-collapse:collapse\">{request.AssemblyPrice.ToString()}</td>";
table += "</tr>";
}
}
table += "</table>";
return table;
}
return "";
}
[HttpPost]
public void ReportOrdersByDates(DateTime dateFrom, DateTime dateTo)
{
if (APIUser.User == null)
{
throw new Exception("Вход только авторизованным");
}
//if (string.IsNullOrEmpty(organiserEmail))
//{
// throw new Exception("Email пуст");
//}
if (dateFrom != DateTime.MinValue && dateTo != DateTime.MinValue)
{
APIUser.PostRequest("api/order/CreateReportToPDFFile", new ReportBindingModel
{
FileName = "C:\\!КУРСОВАЯ\\Отчёт за период.pdf",
DateFrom = dateFrom,
DateTo = dateTo,
UserId = APIUser.User.Id
});
APIUser.PostRequest("api/order/SendPDFToMail", new MailSendInfoBindingModel
{
//!!!МБ СЮДА ПЕРЕДАВАТЬ ПОЧТУ, КОТОРУЮ ВВОДЯТ НА СТРАНИЦЕ
MailAddress = APIUser.User.Email,
Subject = "Отчет за период",
Text = "Отчет по заказам с " + dateFrom.ToShortDateString() + " по " + dateTo.ToShortDateString()
});
}
Response.Redirect("Index");
}
// ОСТАЛЬНОЕ ОСТАЛЬНОЕ ОСТАЛЬНОЕ ОСТАЛЬНОЕ ОСТАЛЬНОЕ ОСТАЛЬНОЕ ОСТАЛЬНОЕ
[HttpGet]
public IActionResult Privacy()
{
if (APIUser.User == null)
{
return Redirect("~/Home/Enter");
}
return View(APIUser.User);
}
[HttpPost]
public void Privacy(string login, string password, string email)
{
try
{
if (APIUser.User == null)
{
throw new Exception("Вход только авторизованным");
}
if (string.IsNullOrEmpty(login) || string.IsNullOrEmpty(password) || string.IsNullOrEmpty(email))
{
throw new Exception("Введите логин, пароль и почту");
}
APIUser.PostRequest("api/user/updatedata", new UserBindingModel
{
Id = APIUser.User.Id,
Login = login,
Password = password,
Email = email
});
APIUser.User.Login = login;
APIUser.User.Password = password;
APIUser.User.Email = email;
Response.Redirect("Index");
}
catch (Exception)
{
Response.Redirect("Index");
}
}
[ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)]
public IActionResult Error()
{
return View(new ErrorViewModel { RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier });
}
[HttpGet]
public IActionResult Enter()
{
return View();
}
[HttpPost]
public void Enter(string login, string password)
{
//if (string.IsNullOrEmpty(login) || string.IsNullOrEmpty(password))
//{
// Response.Redirect("Enter");
//}
//APIUser.User = APIUser.GetRequest<UserViewModel>($"api/user/loginimplementer?login={login}&password={password}");
//if (APIUser.User == null)
//{
// Response.Redirect("Enter");
//}
//Response.Redirect("Index");
try
{
if (string.IsNullOrEmpty(login) || string.IsNullOrEmpty(password))
{
throw new Exception("Введите логин и пароль");
}
APIUser.User = APIUser.GetRequest<UserViewModel>($"api/user/loginimplementer?login={login}&password={password}");
if (APIUser.User == null)
{
throw new Exception("Неверный логин/пароль");
}
Response.Redirect("Index");
}
catch (Exception)
{
Response.Redirect("Enter");
}
}
[HttpGet]
public IActionResult Register()
{
return View();
}
[HttpPost]
public void Register(string login, string password, string email)
{
try
{
if (string.IsNullOrEmpty(login) || string.IsNullOrEmpty(password) || string.IsNullOrEmpty(email))
{
throw new Exception("Введите логин, пароль и почту");
}
APIUser.PostRequest("api/user/registerimplementer", new UserBindingModel
{
Login = login,
Password = password,
Email = email
});
Response.Redirect("Enter");
return;
}
catch (Exception)
{
Response.Redirect("Register");
}
}
}
}