2024-04-30 00:02:09 +04:00
using ComputerShopImplementerApp.Models ;
using ComputerShopContracts.BindingModels ;
using ComputerShopContracts.ViewModels ;
using Microsoft.AspNetCore.Mvc ;
using System.Diagnostics ;
2024-05-26 19:33:48 +04:00
using ComputerShopDataModels.Enums ;
using ComputerShopDataModels.Models ;
using ComputerShopContracts.SearchModels ;
2024-05-28 15:31:13 +04:00
using ComputerShopContracts.BusinessLogicContracts ;
2024-05-28 19:40:32 +04:00
using DocumentFormat.OpenXml.Bibliography ;
2024-05-28 22:49:02 +04:00
using Microsoft.AspNetCore.DataProtection.Repositories ;
2024-04-30 00:02:09 +04:00
namespace ComputerShopImplementerApp.Controllers
{
public class HomeController : Controller
{
private readonly ILogger < HomeController > _logger ;
2024-05-28 15:31:13 +04:00
private readonly IReportImplementerLogic _logic ;
2024-04-30 00:02:09 +04:00
2024-05-28 15:31:13 +04:00
public HomeController ( ILogger < HomeController > logger , IReportImplementerLogic logic )
2024-04-30 00:02:09 +04:00
{
_logger = logger ;
2024-05-28 15:31:13 +04:00
_logic = logic ;
2024-04-30 00:02:09 +04:00
}
public IActionResult Index ( )
{
if ( APIUser . User = = null )
{
return Redirect ( "~/Home/Enter" ) ;
}
2024-05-29 19:01:27 +04:00
return View ( ) ;
2024-04-30 00:02:09 +04:00
}
2024-05-26 19:33:48 +04:00
// ЗАКАЗЫ ЗАКАЗЫ ЗАКАЗЫ ЗАКАЗЫ ЗАКАЗЫ
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 )
{
2024-05-28 22:49:02 +04:00
if ( APIUser . User = = null )
{
Response . Redirect ( "Enter" ) ;
}
var result = APIUser . GetRequest < OrderViewModel > ( $"api/order/getorder?id={orderId}" ) ;
if ( result = = null )
{
return default ;
}
return result ;
2024-05-26 19:33:48 +04:00
}
[HttpGet]
public IActionResult CreateOrder ( )
{
return View ( ) ;
}
[HttpPost]
public void CreateOrder ( OrderStatus status , DateTime date )
{
if ( APIUser . User = = null )
{
throw new Exception ( "Вход только авторизованным" ) ;
}
2024-05-28 22:49:02 +04:00
if ( date ! = DateTime . MinValue )
2024-05-26 19:33:48 +04:00
{
2024-05-28 22:49:02 +04:00
APIUser . PostRequest ( "api/order/createorder" , new OrderBindingModel
{
UserId = APIUser . User . Id ,
Status = status ,
DateCreate = date ,
Sum = 0
} ) ;
}
2024-05-26 19:33:48 +04:00
Response . Redirect ( "Orders" ) ;
}
[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 ( ) ;
}
[HttpPost]
public void UpdateOrder ( int order , OrderStatus status , DateTime date , double sum )
{
if ( APIUser . User = = null )
{
2024-05-28 22:49:02 +04:00
Response . Redirect ( "~/Home/Entry" ) ;
2024-05-26 19:33:48 +04:00
}
2024-05-28 22:49:02 +04:00
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
} ) ;
}
2024-05-26 19:33:48 +04:00
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}" ) ;
return View ( ) ;
}
[HttpPost]
public void DeleteOrder ( int order )
{
if ( APIUser . User = = null )
{
2024-05-28 22:49:02 +04:00
Redirect ( "~/Home/Enter" ) ;
2024-05-26 19:33:48 +04:00
}
2024-05-28 22:49:02 +04:00
if ( order > 0 )
2024-05-26 19:33:48 +04:00
{
2024-05-28 22:49:02 +04:00
APIUser . PostRequest ( "api/order/deleteorder" , new OrderBindingModel
{
Id = order
} ) ;
}
2024-05-26 19:33:48 +04:00
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 )
{
2024-05-28 22:49:02 +04:00
Redirect ( "~/Home/Enter" ) ;
2024-05-26 19:33:48 +04:00
}
var result = await APIUser . GetRequestShipmentAsync < ShipmentViewModel > ( $"api/shipment/getshipment?id={shipmentId}" ) ;
if ( result = = null )
{
return default ;
}
return result ;
}
[HttpGet]
public IActionResult CreateShipment ( )
{
if ( APIUser . User = = null )
{
2024-05-28 22:49:02 +04:00
Redirect ( "~/Home/Enter" ) ;
2024-05-26 19:33:48 +04:00
}
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 )
{
2024-05-28 22:49:02 +04:00
Redirect ( "~/Home/Enter" ) ;
2024-05-26 19:33:48 +04:00
}
// Создаем словарь из выбранных заказов
var selectedOrders = new Dictionary < int , IOrderModel > ( ) ;
foreach ( var orderId in orders )
{
selectedOrders . Add ( orderId , new OrderSearchModel { Id = orderId } as IOrderModel ) ;
}
2024-05-28 22:49:02 +04:00
if ( ! string . IsNullOrEmpty ( providerName ) & & date ! = DateTime . MinValue & & APIUser . User ! = null )
2024-05-26 19:33:48 +04:00
{
2024-05-28 22:49:02 +04:00
APIUser . PostRequest ( "api/shipment/createshipment" , new ShipmentBindingModel
{
UserId = APIUser . User . Id ,
ProviderName = providerName ,
DateShipment = date ,
ShipmentOrders = selectedOrders
} ) ;
}
2024-05-26 19:33:48 +04:00
Response . Redirect ( "Shipments" ) ;
}
[HttpGet]
public async Task < IActionResult > UpdateShipment ( )
{
if ( APIUser . User = = null )
{
2024-05-28 22:49:02 +04:00
return Redirect ( "~/Home/Enter" ) ;
2024-05-26 19:33:48 +04:00
}
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 )
{
2024-05-28 22:49:02 +04:00
Redirect ( "~/Home/Enter" ) ;
2024-05-26 19:33:48 +04:00
}
var selectedOrders = new Dictionary < int , IOrderModel > ( ) ;
foreach ( var orderId in orders )
{
selectedOrders . Add ( orderId , new OrderSearchModel { Id = orderId } as IOrderModel ) ;
}
2024-05-28 22:49:02 +04:00
if ( shipment > 0 & & ! string . IsNullOrEmpty ( providerName ) & & date ! = DateTime . MinValue & & APIUser . User ! = null )
2024-05-26 19:33:48 +04:00
{
2024-05-28 22:49:02 +04:00
APIUser . PostRequest ( "api/shipment/updateshipment" , new ShipmentBindingModel
{
Id = shipment ,
UserId = APIUser . User . Id ,
ProviderName = providerName ,
DateShipment = date ,
ShipmentOrders = selectedOrders
} ) ;
}
2024-05-26 19:33:48 +04:00
Response . Redirect ( "Shipments" ) ;
}
[HttpGet]
public async Task < IActionResult > DeleteShipment ( )
{
if ( APIUser . User = = null )
{
2024-05-28 22:49:02 +04:00
return Redirect ( "~/Home/Enter" ) ;
2024-05-26 19:33:48 +04:00
}
ViewBag . Shipments = await APIUser . GetRequestShipmentAsync < List < ShipmentViewModel > > ( $"api/shipment/getshipments?userId={APIUser.User.Id}" ) ;
return View ( ) ;
}
[HttpPost]
public async Task < IActionResult > DeleteShipment ( int shipment )
{
if ( APIUser . User = = null )
{
2024-05-28 22:49:02 +04:00
return Redirect ( "~/Home/Enter" ) ;
2024-05-26 19:33:48 +04:00
}
2024-05-28 22:49:02 +04:00
if ( shipment > 0 )
2024-05-26 19:33:48 +04:00
{
2024-05-28 22:49:02 +04:00
await APIUser . PostRequestAsync ( "api/shipment/deleteshipment" , new ShipmentBindingModel
{
Id = shipment
} ) ;
}
return Redirect ( "Shipments" ) ;
2024-05-26 19:33:48 +04:00
}
2024-05-28 22:49:02 +04:00
2024-05-26 19:33:48 +04:00
// ЗАЯВКИ Н А СБОРКИ ЗАЯВКИ Н А СБОРКИ ЗАЯВКИ Н А СБОРКИ ЗАЯВКИ Н А СБОРКИ ЗАЯВКИ Н А СБОРКИ
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}" ) ;
return View ( requests ) ;
}
[HttpGet]
public async Task < RequestViewModel > GetRequest ( int requestId )
{
if ( APIUser . User = = null )
{
2024-05-28 22:49:02 +04:00
Response . Redirect ( "~/Home/Enter" ) ;
2024-05-26 19:33:48 +04:00
}
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 )
{
2024-05-28 22:49:02 +04:00
return Redirect ( "~/Home/Enter" ) ;
2024-05-26 19:33:48 +04:00
}
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 )
{
2024-05-28 22:49:02 +04:00
Redirect ( "~/Home/Enter" ) ;
2024-05-26 19:33:48 +04:00
}
// Создаем словарь из выбранных заказов
var selectedOrders = new Dictionary < int , IOrderModel > ( ) ;
foreach ( var orderId in orders )
{
selectedOrders . Add ( orderId , new OrderSearchModel { Id = orderId } as IOrderModel ) ;
}
2024-05-28 22:49:02 +04:00
if ( ! string . IsNullOrEmpty ( clientFIO ) & & date ! = DateTime . MinValue )
2024-05-26 19:33:48 +04:00
{
2024-05-28 22:49:02 +04:00
APIUser . PostRequest ( "api/request/createrequest" , new RequestBindingModel
{
UserId = APIUser . User . Id ,
ClientFIO = clientFIO ,
DateRequest = date ,
RequestOrders = selectedOrders
} ) ;
}
2024-05-26 19:33:48 +04:00
Response . Redirect ( "Requests" ) ;
}
[HttpGet]
public async Task < IActionResult > UpdateRequest ( )
{
if ( APIUser . User = = null )
{
2024-05-28 22:49:02 +04:00
return Redirect ( "~/Home/Enter" ) ;
2024-05-26 19:33:48 +04:00
}
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 )
{
2024-05-28 22:49:02 +04:00
Response . Redirect ( "~/Home/Enter" ) ;
2024-05-26 19:33:48 +04:00
}
2024-05-28 22:49:02 +04:00
2024-05-26 19:33:48 +04:00
var selectedOrders = new Dictionary < int , IOrderModel > ( ) ;
foreach ( var orderId in orders )
{
selectedOrders . Add ( orderId , new OrderSearchModel { Id = orderId } as IOrderModel ) ;
}
2024-05-28 22:49:02 +04:00
if ( request > 0 & & ! string . IsNullOrEmpty ( clientFIO ) & & date ! = DateTime . MinValue )
2024-05-26 19:33:48 +04:00
{
2024-05-28 22:49:02 +04:00
APIUser . PostRequest ( "api/request/updaterequest" , new RequestBindingModel
{
Id = request ,
UserId = APIUser . User . Id ,
ClientFIO = clientFIO ,
DateRequest = date ,
RequestOrders = selectedOrders
} ) ;
}
2024-05-26 19:33:48 +04:00
Response . Redirect ( "Requests" ) ;
}
[HttpGet]
public async Task < IActionResult > ConnectRequestAssembly ( )
{
if ( APIUser . User = = null )
{
2024-05-28 22:49:02 +04:00
return Redirect ( "~/Home/Enter" ) ;
2024-05-26 19:33:48 +04:00
}
ViewBag . Requests = await APIUser . GetRequestRequestAsync < List < RequestViewModel > > ( $"api/request/getrequests?userId={APIUser.User.Id}" ) ;
2024-05-28 14:34:16 +04:00
ViewBag . Assemblies = APIUser . GetRequest < List < AssemblyViewModel > > ( $"api/assembly/getassemblies" ) ;
2024-05-26 19:33:48 +04:00
return View ( ) ;
}
2024-05-28 14:34:16 +04:00
[HttpPost]
public void ConnectRequestAssembly ( int request , int assembly )
{
if ( APIUser . User = = null )
{
2024-05-28 22:49:02 +04:00
Redirect ( "~/Home/Enter" ) ;
2024-05-28 14:34:16 +04:00
}
2024-05-28 22:49:02 +04:00
if ( request > 0 & & assembly > 0 )
2024-05-28 14:34:16 +04:00
{
2024-05-28 22:49:02 +04:00
APIUser . PostRequest ( "api/request/connectRequestAssembly" , new RequestBindingModel
{
Id = request ,
AssemblyId = assembly
} ) ;
}
2024-05-28 14:34:16 +04:00
Response . Redirect ( "Requests" ) ;
}
2024-05-26 19:33:48 +04:00
[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 ( "Вход только авторизованным" ) ;
}
2024-05-28 22:49:02 +04:00
if ( request > 0 )
2024-05-26 19:33:48 +04:00
{
2024-05-28 22:49:02 +04:00
await APIUser . PostRequestAsync ( "api/request/deleterequest" , new RequestBindingModel
{
Id = request
} ) ;
}
2024-05-26 19:33:48 +04:00
return RedirectToAction ( "Requests" ) ;
}
2024-05-28 14:34:16 +04:00
//ОТЧЁТЫ ОТЧЁТЫ ОТЧЁТЫ ОТЧЁТЫ ОТЧЁТЫ ОТЧЁТЫ ОТЧЁТЫ ОТЧЁТЫ ОТЧЁТЫ ОТЧЁТЫ ОТЧЁТЫ
2024-05-26 19:33:48 +04:00
2024-05-28 14:34:16 +04:00
[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}" ) ;
return View ( ) ;
}
2024-05-29 12:43:21 +04:00
[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" ) ;
}
2024-05-28 14:34:16 +04:00
[HttpPost]
2024-05-29 12:43:21 +04:00
public IActionResult ReportOrdersAssembliesToFile ( int [ ] orders , string type )
2024-05-28 14:34:16 +04:00
{
if ( APIUser . User = = null )
{
Redirect ( "Index" ) ;
}
2024-05-28 22:49:02 +04:00
if ( orders . Length > 0 & & ! string . IsNullOrEmpty ( type ) )
2024-05-28 14:34:16 +04:00
{
2024-05-28 22:49:02 +04:00
//Преобразование массива в список
List < int > ids = new List < int > ( ) ;
foreach ( var item in orders )
{
ids . Add ( item ) ;
}
2024-05-28 14:34:16 +04:00
2024-05-28 22:49:02 +04:00
if ( type = = "docx" )
{
APIUser . PostRequest ( "api/order/createreporttowordfile" , new ReportBindingModel
{
Ids = ids ,
FileName = "C:\\!КУРСОВАЯ\\Сборки по выбранным заказам.docx"
} ) ;
2024-05-29 12:43:21 +04:00
return GetWordFile ( ) ;
2024-05-28 22:49:02 +04:00
}
2024-05-28 14:34:16 +04:00
2024-05-28 22:49:02 +04:00
if ( type = = "xlsx" )
{
APIUser . PostRequest ( "api/order/createreporttoexcelfile" , new ReportBindingModel
{
Ids = ids ,
FileName = "C:\\!КУРСОВАЯ\\Сборки по выбранным заказам.xlsx"
} ) ;
2024-05-29 12:43:21 +04:00
return GetExcelFile ( ) ;
2024-05-28 22:49:02 +04:00
}
}
2024-05-29 12:43:21 +04:00
return Redirect ( "Index" ) ;
2024-05-28 22:49:02 +04:00
}
2024-05-28 14:34:16 +04:00
[HttpGet]
2024-05-28 15:31:13 +04:00
public IActionResult ReportOrdersByDates ( )
{
if ( APIUser . User = = null )
{
return Redirect ( "~/Home/Enter" ) ;
}
return View ( ) ;
}
[HttpGet]
public string GetOrdersReportByDates ( DateTime dateFrom , DateTime dateTo )
{
if ( APIUser . User = = null )
{
throw new Exception ( "Вход только авторизованным" ) ;
}
2024-05-28 22:49:02 +04:00
if ( dateFrom ! = DateTime . MinValue & & dateTo ! = DateTime . MinValue )
2024-05-28 15:31:13 +04:00
{
2024-05-28 22:49:02 +04:00
List < ReportOrdersViewModel > result ;
2024-05-28 15:31:13 +04:00
result = _logic . GetReportOrdersByDates ( new ReportBindingModel
{
UserId = APIUser . User . Id ,
DateFrom = dateFrom ,
DateTo = dateTo
} ) ;
2024-05-28 22:49:02 +04:00
string table = "" ;
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 )
2024-05-28 19:40:32 +04:00
{
2024-05-28 22:49:02 +04:00
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>" ;
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>" ;
}
2024-05-28 19:40:32 +04:00
}
2024-05-28 22:49:02 +04:00
table + = "</table>" ;
return table ;
2024-05-28 19:40:32 +04:00
}
2024-05-28 22:49:02 +04:00
return "" ;
2024-05-28 15:31:13 +04:00
}
2024-05-28 19:40:32 +04:00
[HttpPost]
public void ReportOrdersByDates ( DateTime dateFrom , DateTime dateTo )
{
if ( APIUser . User = = null )
{
throw new Exception ( "Вход только авторизованным" ) ;
}
2024-05-28 22:49:02 +04:00
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 ( )
} ) ;
}
2024-05-28 19:40:32 +04:00
Response . Redirect ( "Index" ) ;
}
2024-05-28 15:31:13 +04:00
// ОСТАЛЬНОЕ ОСТАЛЬНОЕ ОСТАЛЬНОЕ ОСТАЛЬНОЕ ОСТАЛЬНОЕ ОСТАЛЬНОЕ ОСТАЛЬНОЕ
[HttpGet]
2024-04-30 00:02:09 +04:00
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 )
{
2024-05-28 22:49:02 +04:00
try
2024-04-30 00:02:09 +04:00
{
2024-05-28 22:49:02 +04:00
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" ) ;
2024-04-30 00:02:09 +04:00
}
2024-05-28 22:49:02 +04:00
catch ( Exception )
2024-04-30 00:02:09 +04:00
{
2024-05-28 22:49:02 +04:00
Response . Redirect ( "Index" ) ;
2024-04-30 00:02:09 +04:00
}
}
[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 )
{
2024-05-28 19:40:32 +04:00
try
2024-04-30 00:02:09 +04:00
{
2024-05-28 19:40:32 +04:00
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" ) ;
2024-04-30 00:02:09 +04:00
}
2024-05-28 19:40:32 +04:00
catch ( Exception )
2024-04-30 00:02:09 +04:00
{
2024-05-28 19:40:32 +04:00
Response . Redirect ( "Enter" ) ;
2024-04-30 00:02:09 +04:00
}
}
[HttpGet]
public IActionResult Register ( )
{
return View ( ) ;
}
[HttpPost]
public void Register ( string login , string password , string email )
{
2024-05-28 22:49:02 +04:00
try
2024-04-30 00:02:09 +04:00
{
2024-05-28 22:49:02 +04:00
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 ;
2024-04-30 00:02:09 +04:00
}
2024-05-28 22:49:02 +04:00
catch ( Exception )
2024-04-30 00:02:09 +04:00
{
2024-05-28 22:49:02 +04:00
Response . Redirect ( "Register" ) ;
}
2024-04-30 00:02:09 +04:00
}
}
}