Compare commits
No commits in common. "f24279d9db07044e7a7d50d7b135cc692c7b6e6e" and "ed4f11ab9117229928cfd0ee28fac24d000b4b17" have entirely different histories.
f24279d9db
...
ed4f11ab91
@ -37,7 +37,7 @@ namespace ComputerShopBusinessLogic.BusinessLogics
|
||||
/// Отчёт для doc/xls
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public List<ReportOrderAssemblyViewModel> GetReportOrdersAssemblies(List<int> selectedOrders)
|
||||
public List<ReportOrderAssemblyViewModel> GetReportOrdersAssemblies(/*List<OrderSearchModel>*/List<int> selectedOrders)
|
||||
{
|
||||
return _orderStorage.GetOrdersAssemblies(selectedOrders);
|
||||
}
|
||||
@ -58,6 +58,7 @@ namespace ComputerShopBusinessLogic.BusinessLogics
|
||||
Title = "Список сборок по выбранным заказам",
|
||||
OrderAssemblies = GetReportOrdersAssemblies(model.Ids)
|
||||
});;
|
||||
//throw new NotImplementedException();
|
||||
}
|
||||
public void SaveReportOrderAssembliesToExcelFile(ReportBindingModel model)
|
||||
{
|
||||
@ -66,6 +67,7 @@ namespace ComputerShopBusinessLogic.BusinessLogics
|
||||
FileName = model.FileName,
|
||||
OrderAssemblies = GetReportOrdersAssemblies(model.Ids)
|
||||
});
|
||||
//throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//!!!ИСПРАВИТЬ
|
||||
|
@ -17,11 +17,13 @@ namespace ComputerShopBusinessLogic.MailWorker
|
||||
protected int _smtpClientPort;
|
||||
protected string _popHost = string.Empty;
|
||||
protected int _popPort;
|
||||
//private readonly IOrganiserLogic _organiserLogic;
|
||||
private readonly ILogger _logger;
|
||||
|
||||
public AbstractMailWorker(ILogger<AbstractMailWorker> logger)
|
||||
public AbstractMailWorker(ILogger<AbstractMailWorker> logger/*, IOrganiserLogic organiserLogic*/)
|
||||
{
|
||||
_logger = logger;
|
||||
//_organiserLogic = organiserLogic;
|
||||
}
|
||||
|
||||
public void MailConfig(MailConfigBindingModel config)
|
||||
|
@ -15,7 +15,7 @@ namespace ComputerShopBusinessLogic.MailWorker
|
||||
{
|
||||
public class MailKitWorker : AbstractMailWorker
|
||||
{
|
||||
public MailKitWorker(ILogger<MailKitWorker> logger) : base(logger) { }
|
||||
public MailKitWorker(ILogger<MailKitWorker> logger/*, IOrganiserLogic organiserLogic*/) : base(logger/*, organiserLogic*/) { }
|
||||
|
||||
protected override async Task SendMailAsync(MailSendInfoBindingModel info)
|
||||
{
|
||||
|
@ -14,6 +14,7 @@ namespace ComputerShopBusinessLogic.OfficePackage
|
||||
{
|
||||
CreateExcel(info);
|
||||
|
||||
//!!!2 абзаца ниже - настройка заголовков, исправить скорее всего
|
||||
InsertCellInWorksheet(new ExcelCellParameters
|
||||
{
|
||||
ColumnName = "A",
|
||||
@ -22,6 +23,12 @@ namespace ComputerShopBusinessLogic.OfficePackage
|
||||
StyleInfo = ExcelStyleInfoType.Title
|
||||
});
|
||||
|
||||
//MergeCells(new ExcelMergeParameters
|
||||
//{
|
||||
// CellFromName = "A1",
|
||||
// CellToName = "C1"
|
||||
//});
|
||||
|
||||
InsertCellInWorksheet(new ExcelCellParameters
|
||||
{
|
||||
ColumnName = "B",
|
||||
@ -135,8 +142,48 @@ namespace ComputerShopBusinessLogic.OfficePackage
|
||||
rowIndex++;
|
||||
}
|
||||
}
|
||||
|
||||
//rowIndex++;
|
||||
|
||||
// foreach (var (Component, Count) in tc.Components)
|
||||
// {
|
||||
// InsertCellInWorksheet(new ExcelCellParameters
|
||||
// {
|
||||
// ColumnName = "B",
|
||||
// RowIndex = rowIndex,
|
||||
// Text = Component,
|
||||
// StyleInfo = ExcelStyleInfoType.TextWithBorder
|
||||
// });
|
||||
|
||||
// InsertCellInWorksheet(new ExcelCellParameters
|
||||
// {
|
||||
// ColumnName = "C",
|
||||
// RowIndex = rowIndex,
|
||||
// Text = Count.ToString(),
|
||||
// StyleInfo = ExcelStyleInfoType.TextWithBorder
|
||||
// });
|
||||
|
||||
// rowIndex++;
|
||||
// }
|
||||
|
||||
// InsertCellInWorksheet(new ExcelCellParameters
|
||||
// {
|
||||
// ColumnName = "A",
|
||||
// RowIndex = rowIndex,
|
||||
// Text = "Итого",
|
||||
// StyleInfo = ExcelStyleInfoType.Text
|
||||
// });
|
||||
// InsertCellInWorksheet(new ExcelCellParameters
|
||||
// {
|
||||
// ColumnName = "C",
|
||||
// RowIndex = rowIndex,
|
||||
// Text = tc.TotalCount.ToString(),
|
||||
// StyleInfo = ExcelStyleInfoType.Text
|
||||
// });
|
||||
// rowIndex++;
|
||||
|
||||
}
|
||||
|
||||
SaveExcel(info);
|
||||
}
|
||||
protected abstract void CreateExcel(ExcelInfoImplementer info);
|
||||
|
@ -15,6 +15,7 @@ namespace ComputerShopBusinessLogic.OfficePackage
|
||||
CreatePdf(info);
|
||||
CreateParagraph(new PdfParagraph { Text = info.Title, Style = "NormalTitle", ParagraphAlignment = PdfParagraphAlignmentType.Center });
|
||||
CreateParagraph(new PdfParagraph { Text = $"с {info.DateFrom.ToShortDateString()} по {info.DateTo.ToShortDateString()}", Style = "Normal", ParagraphAlignment = PdfParagraphAlignmentType.Center });
|
||||
//!!!МБ ТУТ НЕЛЬЗЯ ДРОБНЫЕ ЧИСЛА ИЛИ МОЖНО С ТОЧКОЙ
|
||||
CreateTable(new List<string> { "2cm", "2.5cm", "2cm", "2cm", "2cm", "4cm", "2.5cm", "3.5cm", "3.5cm", "2.5cm" });
|
||||
|
||||
CreateRow(new PdfRowParameters
|
||||
@ -26,6 +27,7 @@ namespace ComputerShopBusinessLogic.OfficePackage
|
||||
|
||||
foreach (var order in info.Orders)
|
||||
{
|
||||
//!!!СЮДА
|
||||
if (order.RequestsAssemblies.Count < 1)
|
||||
{
|
||||
CreateRow(new PdfRowParameters
|
||||
@ -54,6 +56,8 @@ namespace ComputerShopBusinessLogic.OfficePackage
|
||||
}
|
||||
|
||||
}
|
||||
//CreateParagraph(new PdfParagraph { Text = $"Итого: {info.Orders.Sum(x => x.Sum)}\t", Style = "Normal", ParagraphAlignment = PdfParagraphAlignmentType.Rigth });
|
||||
|
||||
SavePdf(info);
|
||||
}
|
||||
protected abstract void CreatePdf(PdfInfoImplementer info);
|
||||
|
@ -45,6 +45,10 @@ namespace ComputerShopBusinessLogic.OfficePackage
|
||||
CreateParagraph(new WordParagraph
|
||||
{
|
||||
Texts = new List<(string, WordTextProperties)> {
|
||||
//(orderAs.OrderId.ToString() + "\n", new WordTextProperties {Size = "24", Bold=true}),
|
||||
//(orderAs.DateCreateOrder.ToShortDateString() + " - ", new WordTextProperties { Size = "24" }),
|
||||
//(orderAs.OrderSum.ToString() + " - ", new WordTextProperties { Size = "24" }),
|
||||
//(orderAs.OrderStatus.ToString() + " - ", new WordTextProperties { Size = "24" }),
|
||||
(assembly.AssemblyName + " - ", new WordTextProperties { Size = "24" }),
|
||||
(assembly.AssemblyCategory + " - ", new WordTextProperties { Size = "24" }),
|
||||
(assembly.AssemblyPrice.ToString(), new WordTextProperties { Size = "24" })
|
||||
|
@ -10,6 +10,8 @@ namespace ComputerShopBusinessLogic.OfficePackage.HelperModels
|
||||
public class ExcelInfoImplementer
|
||||
{
|
||||
public string FileName { get; set; } = string.Empty;
|
||||
//public string Title { get; set; } = string.Empty;
|
||||
//!!!Мб поставить string.Empty, названия задать в ReportImplementerLogic
|
||||
public string Title1 { get; set; } = "ID заказа";
|
||||
public string Title2 { get; set; } = "Дата заказа";
|
||||
public string Title3 { get; set; } = "Стоимость заказа";
|
||||
|
@ -183,6 +183,9 @@ namespace ComputerShopBusinessLogic.OfficePackage.Implements
|
||||
var worksheetPart = workbookpart.AddNewPart<WorksheetPart>();
|
||||
worksheetPart.Worksheet = new Worksheet(new SheetData());
|
||||
|
||||
// Добавление столбцов с заданной шириной
|
||||
// Save the stylesheet formats
|
||||
//stylesPart.Stylesheet.Save();
|
||||
|
||||
// Create custom widths for columns
|
||||
Columns lstColumns = worksheetPart.Worksheet.GetFirstChild<Columns>();
|
||||
@ -190,6 +193,10 @@ namespace ComputerShopBusinessLogic.OfficePackage.Implements
|
||||
{
|
||||
lstColumns = new Columns();
|
||||
}
|
||||
// Min = 1, Max = 1 ==> Apply this to column 1 (A)
|
||||
// Min = 2, Max = 2 ==> Apply this to column 2 (B)
|
||||
// Width = 25 ==> Set the width to 25
|
||||
// CustomWidth = true ==> Tell Excel to use the custom width
|
||||
lstColumns.Append(new Column() { Min = 1, Max = 1, Width = 10, CustomWidth = true });
|
||||
lstColumns.Append(new Column() { Min = 2, Max = 2, Width = 10, CustomWidth = true });
|
||||
lstColumns.Append(new Column() { Min = 3, Max = 3, Width = 20, CustomWidth = true });
|
||||
|
@ -101,6 +101,7 @@ namespace ComputerShopBusinessLogic.OfficePackage.Implements
|
||||
}
|
||||
}
|
||||
|
||||
//!!!ТУТ ИСКЛЮЧЕНИЕ
|
||||
protected override void SavePdf(PdfInfoImplementer info)
|
||||
{
|
||||
var renderer = new PdfDocumentRenderer(true)
|
||||
|
@ -15,7 +15,7 @@ namespace ComputerShopContracts.BusinessLogicContracts
|
||||
/// Получение отчёта для word/excel
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
List<ReportOrderAssemblyViewModel> GetReportOrdersAssemblies(List<int> selectedOrders);
|
||||
List<ReportOrderAssemblyViewModel> GetReportOrdersAssemblies(List</*OrderSearchModel*/int> selectedOrders);
|
||||
|
||||
/// <summary>
|
||||
/// Получение отчёта для почты
|
||||
|
@ -11,6 +11,7 @@ namespace ComputerShopContracts.SearchModels
|
||||
public int? Id { get; set; }
|
||||
public int? UserId { get; set; }
|
||||
|
||||
//поиск по сборкам
|
||||
public int? AssemblyId { get; set; }
|
||||
|
||||
public DateTime? DateFrom { get; set; }
|
||||
|
@ -18,7 +18,7 @@ namespace ComputerShopContracts.StorageContracts
|
||||
OrderViewModel? Update(OrderBindingModel model);
|
||||
OrderViewModel? Delete(OrderBindingModel model);
|
||||
//получение данных о заказах для отчётов
|
||||
List<ReportOrderAssemblyViewModel> GetOrdersAssemblies(List<int> model);
|
||||
List<ReportOrderAssemblyViewModel> GetOrdersAssemblies(List<int/*OrderSearchModel*/> model);
|
||||
List<ReportOrdersViewModel> GetOrdersInfoByDates(ReportBindingModel report);
|
||||
}
|
||||
}
|
||||
|
@ -20,5 +20,6 @@ namespace ComputerShopContracts.ViewModels
|
||||
//данные о сборках
|
||||
public List<(string AssemblyName, string AssemblyCategory, double AssemblyPrice)> Assemblies { get; set; }
|
||||
|
||||
//public Dictionary<int, IAssemblyModel> Assemblies { get; set; }
|
||||
}
|
||||
}
|
||||
|
@ -39,5 +39,9 @@ namespace ComputerShopContracts.ViewModels
|
||||
this.RequestOrders = requestOrders.ToDictionary(x => x.Key, x => x.Value as IOrderModel);
|
||||
this.Assembly = assembly as IAssemblyModel;
|
||||
}
|
||||
//public RequestViewModel(Dictionary<int, OrderViewModel> requestOrders)
|
||||
//{
|
||||
// this.RequestOrders = requestOrders.ToDictionary(x => x.Key, x => x.Value as IOrderModel);
|
||||
//}
|
||||
}
|
||||
}
|
||||
|
@ -58,8 +58,11 @@ namespace ComputerShopDatabaseImplement.Implements
|
||||
public List<ReportOrderAssemblyViewModel> GetOrdersAssemblies(List<int>/*<OrderSearchModel>*/ selectedModels)
|
||||
{
|
||||
using var context = new ComputerShopDatabase();
|
||||
//id заказов, которые выбрал пользователь
|
||||
//List<int?> id_of_selected_models = selectedModels.Select(x => x.Id).ToList();
|
||||
|
||||
//те заказы из бд, которые выбрал пользователь и имеют сборку
|
||||
//МБ ИЗМЕНИТЬ, И СДЕЛАТЬ ВЫВОД ВСЕХ ЗАЯВОК (В ТОМ ЧИСЛЕ БЕЗ СБОРОК)
|
||||
return context.Orders.Include(x => x.Requests)
|
||||
.ThenInclude(x => x.Request)
|
||||
.ThenInclude(x => x.Assembly)
|
||||
|
@ -15,6 +15,7 @@ namespace ComputerShopDatabaseImplement.Implements
|
||||
public class RequestStorage : IRequestStorage
|
||||
{
|
||||
//id пользователя учитывается в GetFilteredList
|
||||
//!!!ТУТ ДОБАВИЛ .OrderBy(x => x.DateRequest)
|
||||
public List<RequestViewModel> GetFullList()
|
||||
{
|
||||
using var context = new ComputerShopDatabase();
|
||||
@ -155,9 +156,11 @@ namespace ComputerShopDatabaseImplement.Implements
|
||||
{
|
||||
assemblyPrice = request.Assembly.Price;
|
||||
}
|
||||
//var ordersOfRequest = context.RequestOrders.Where(x => x.RequestId == model.Id).ToList();
|
||||
foreach (Order order_request in request.RequestOrders.Values)
|
||||
{
|
||||
//Если была связанная сборка, то вычитание стоимости сборки, иначе -0
|
||||
//order_request.ChangeSum(-(request.Assembly?.Price ?? 0));
|
||||
order_request.ChangeSum(-assemblyPrice);
|
||||
}
|
||||
context.Requests.Remove(request);
|
||||
|
@ -18,6 +18,7 @@ namespace ComputerShopDatabaseImplement.Implements
|
||||
public List<ShipmentViewModel> GetFullList()
|
||||
{
|
||||
using var context = new ComputerShopDatabase();
|
||||
//!!!ТУТ ДОБАВИЛ .OrderBy(x => x.DateShipment)
|
||||
return context.Shipments
|
||||
.Include(x => x.Orders)
|
||||
.ThenInclude(x => x.Order)
|
||||
|
@ -76,6 +76,7 @@ namespace ComputerShopDatabaseImplement.Models
|
||||
ClientFIO = model.ClientFIO;
|
||||
}
|
||||
DateRequest = model.DateRequest;
|
||||
//DateMake не обновляю, потому что странно менять дату оформления заявки после её создания
|
||||
//Обновление ссылки на сборку (assemblyId) отдельным методом
|
||||
}
|
||||
|
||||
|
@ -90,6 +90,7 @@ namespace ComputerShopDatabaseImplement.Models
|
||||
//ИСПРАВЛЕНО: удаление всех заказов
|
||||
if (shipmentOrders != null && shipmentOrders.Count > 0)
|
||||
{
|
||||
//context.ShipmentOrders.RemoveRange(shipmentOrders.Where(x => !model.ShipmentOrders.ContainsKey(x.OrderId)));
|
||||
context.ShipmentOrders.RemoveRange(shipmentOrders);
|
||||
context.SaveChanges();
|
||||
}
|
||||
|
@ -18,6 +18,11 @@ namespace ComputerShopDatabaseImplement.Models
|
||||
public int ShipmentId { get; set; }
|
||||
[Required]
|
||||
public int OrderId { get; set; }
|
||||
|
||||
//МБ НАДО ТАК:
|
||||
//[ForeignKey("OrderId")]
|
||||
//public virtual Order Order { get; set; }
|
||||
|
||||
public virtual Shipment Shipment { get; set; } = new();
|
||||
public virtual Order Order { get; set; } = new();
|
||||
}
|
||||
|
@ -27,6 +27,12 @@ namespace ComputerShopImplementerApp
|
||||
var result = response.Result.Content.ReadAsStringAsync().Result;
|
||||
if (response.Result.IsSuccessStatusCode)
|
||||
{
|
||||
// var settings = new JsonSerializerSettings
|
||||
// {
|
||||
// TypeNameHandling = TypeNameHandling.All
|
||||
//};
|
||||
|
||||
//return JsonConvert.DeserializeObject<T>(result, settings);
|
||||
return JsonConvert.DeserializeObject<T>(result);
|
||||
}
|
||||
else
|
||||
|
@ -29,11 +29,12 @@ namespace ComputerShopImplementerApp.Controllers
|
||||
{
|
||||
return Redirect("~/Home/Enter");
|
||||
}
|
||||
return View();
|
||||
return View(/*APIUser.GetRequest<List<OrderViewModel>>($"api/main/getorders?userId={APIUser.User.Id}")*/);
|
||||
}
|
||||
|
||||
// ЗАКАЗЫ ЗАКАЗЫ ЗАКАЗЫ ЗАКАЗЫ ЗАКАЗЫ
|
||||
|
||||
//!!!МБ ДОБАВИТЬ [HttpGet]
|
||||
public IActionResult Orders()
|
||||
{
|
||||
if (APIUser.User == null)
|
||||
@ -67,6 +68,8 @@ namespace ComputerShopImplementerApp.Controllers
|
||||
[HttpGet]
|
||||
public IActionResult CreateOrder()
|
||||
{
|
||||
//!!!ПОТОМ УДАЛИТЬ
|
||||
//ViewBag.OrderStatuses = APIUser.GetRequest<List<String>>("api/order/getorderstatuses");
|
||||
return View();
|
||||
}
|
||||
|
||||
@ -78,6 +81,11 @@ namespace ComputerShopImplementerApp.Controllers
|
||||
{
|
||||
throw new Exception("Вход только авторизованным");
|
||||
}
|
||||
//if (count <= 0)
|
||||
//{
|
||||
// throw new Exception("Количество и сумма должны быть больше 0");
|
||||
//}
|
||||
//if ()
|
||||
if (date != DateTime.MinValue)
|
||||
{
|
||||
APIUser.PostRequest("api/order/createorder", new OrderBindingModel
|
||||
@ -89,6 +97,15 @@ namespace ComputerShopImplementerApp.Controllers
|
||||
});
|
||||
}
|
||||
Response.Redirect("Orders");
|
||||
//try
|
||||
//{
|
||||
|
||||
//}
|
||||
//catch (Exception)
|
||||
//{
|
||||
// Response.Redirect("CreateOrder");
|
||||
//}
|
||||
|
||||
}
|
||||
|
||||
|
||||
@ -105,6 +122,7 @@ namespace ComputerShopImplementerApp.Controllers
|
||||
return View();
|
||||
}
|
||||
|
||||
//МБ ПОСТАВИТЬ int? и передавать order.Value
|
||||
[HttpPost]
|
||||
public void UpdateOrder(int order, OrderStatus status, DateTime date, double sum)
|
||||
{
|
||||
@ -112,6 +130,14 @@ namespace ComputerShopImplementerApp.Controllers
|
||||
{
|
||||
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
|
||||
@ -135,6 +161,7 @@ namespace ComputerShopImplementerApp.Controllers
|
||||
return Redirect("~/Home/Enter");
|
||||
}
|
||||
ViewBag.Orders = APIUser.GetRequest<List<OrderViewModel>>($"api/order/getorders?userId={APIUser.User.Id}");
|
||||
//ViewBag.Statuses =
|
||||
return View();
|
||||
}
|
||||
|
||||
@ -144,6 +171,7 @@ namespace ComputerShopImplementerApp.Controllers
|
||||
if (APIUser.User == null)
|
||||
{
|
||||
Redirect("~/Home/Enter");
|
||||
//throw new Exception("Вход только авторизованным");
|
||||
}
|
||||
|
||||
if (order > 0)
|
||||
@ -179,13 +207,24 @@ namespace ComputerShopImplementerApp.Controllers
|
||||
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;
|
||||
//}
|
||||
}
|
||||
|
||||
|
||||
@ -213,6 +252,8 @@ namespace ComputerShopImplementerApp.Controllers
|
||||
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)
|
||||
{
|
||||
@ -228,6 +269,7 @@ namespace ComputerShopImplementerApp.Controllers
|
||||
}
|
||||
|
||||
|
||||
//!!!МБ СДЕЛАТЬ ПО АНАЛОГИИ С public async Task<IActionResult> Shipments()
|
||||
[HttpGet]
|
||||
public async Task<IActionResult> UpdateShipment()
|
||||
{
|
||||
@ -272,12 +314,28 @@ namespace ComputerShopImplementerApp.Controllers
|
||||
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)
|
||||
{
|
||||
@ -301,6 +359,18 @@ namespace ComputerShopImplementerApp.Controllers
|
||||
|
||||
// ЗАЯВКИ НА СБОРКИ ЗАЯВКИ НА СБОРКИ ЗАЯВКИ НА СБОРКИ ЗАЯВКИ НА СБОРКИ ЗАЯВКИ НА СБОРКИ
|
||||
|
||||
|
||||
//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)
|
||||
@ -308,6 +378,8 @@ namespace ComputerShopImplementerApp.Controllers
|
||||
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);
|
||||
}
|
||||
|
||||
@ -319,6 +391,7 @@ namespace ComputerShopImplementerApp.Controllers
|
||||
{
|
||||
Response.Redirect("~/Home/Enter");
|
||||
}
|
||||
//GetRequestShipmentAsync
|
||||
var result = await APIUser.GetRequestRequestAsync<RequestViewModel>($"api/request/getrequest?id={requestId}");
|
||||
if (result == null)
|
||||
{
|
||||
@ -347,6 +420,7 @@ namespace ComputerShopImplementerApp.Controllers
|
||||
if (APIUser.User == null)
|
||||
{
|
||||
Redirect("~/Home/Enter");
|
||||
//throw new Exception("Вход только авторизованным");
|
||||
}
|
||||
// Создаем словарь из выбранных заказов
|
||||
var selectedOrders = new Dictionary<int, IOrderModel>();
|
||||
@ -374,6 +448,7 @@ namespace ComputerShopImplementerApp.Controllers
|
||||
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}");
|
||||
@ -416,6 +491,7 @@ namespace ComputerShopImplementerApp.Controllers
|
||||
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();
|
||||
}
|
||||
@ -480,6 +556,7 @@ namespace ComputerShopImplementerApp.Controllers
|
||||
return Redirect("~/Home/Enter");
|
||||
}
|
||||
ViewBag.Orders = APIUser.GetRequest<List<OrderViewModel>>($"api/order/getorders?userId={APIUser.User.Id}");
|
||||
//ViewBag.Statuses =
|
||||
return View();
|
||||
}
|
||||
|
||||
@ -518,6 +595,7 @@ namespace ComputerShopImplementerApp.Controllers
|
||||
FileName = "C:\\!КУРСОВАЯ\\Сборки по выбранным заказам.docx"
|
||||
});
|
||||
return GetWordFile();
|
||||
//Response.Redirect("GetWordFile");
|
||||
}
|
||||
|
||||
if (type == "xlsx")
|
||||
@ -528,6 +606,7 @@ namespace ComputerShopImplementerApp.Controllers
|
||||
FileName = "C:\\!КУРСОВАЯ\\Сборки по выбранным заказам.xlsx"
|
||||
});
|
||||
return GetExcelFile();
|
||||
//Response.Redirect("GetExcelFile");
|
||||
}
|
||||
}
|
||||
return Redirect("Index");
|
||||
@ -541,6 +620,8 @@ namespace ComputerShopImplementerApp.Controllers
|
||||
{
|
||||
return Redirect("~/Home/Enter");
|
||||
}
|
||||
//ViewBag.Orders = APIUser.GetRequest<List<OrderViewModel>>($"api/order/getorders?userId={APIUser.User.Id}");
|
||||
//ViewBag.Statuses =
|
||||
return View();
|
||||
}
|
||||
|
||||
@ -561,6 +642,7 @@ namespace ComputerShopImplementerApp.Controllers
|
||||
DateTo = dateTo
|
||||
});
|
||||
string table = "";
|
||||
//МБ НЕ НДО ПРИСВАИВАТЬ КЛАСС u-table-entity
|
||||
table += $"<table class=\"u-table-entity\">";
|
||||
table += "<colgroup>";
|
||||
//ID заказа
|
||||
@ -584,8 +666,11 @@ namespace ComputerShopImplementerApp.Controllers
|
||||
//Цена сборки
|
||||
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>";
|
||||
@ -598,11 +683,13 @@ namespace ComputerShopImplementerApp.Controllers
|
||||
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>";
|
||||
@ -618,6 +705,7 @@ namespace ComputerShopImplementerApp.Controllers
|
||||
}
|
||||
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>";
|
||||
@ -628,6 +716,7 @@ namespace ComputerShopImplementerApp.Controllers
|
||||
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>";
|
||||
}
|
||||
@ -645,6 +734,10 @@ namespace ComputerShopImplementerApp.Controllers
|
||||
{
|
||||
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
|
||||
@ -656,6 +749,7 @@ namespace ComputerShopImplementerApp.Controllers
|
||||
});
|
||||
APIUser.PostRequest("api/order/SendPDFToMail", new MailSendInfoBindingModel
|
||||
{
|
||||
//!!!МБ СЮДА ПЕРЕДАВАТЬ ПОЧТУ, КОТОРУЮ ВВОДЯТ НА СТРАНИЦЕ
|
||||
MailAddress = APIUser.User.Email,
|
||||
Subject = "Отчет за период",
|
||||
Text = "Отчет по заказам с " + dateFrom.ToShortDateString() + " по " + dateTo.ToShortDateString()
|
||||
@ -724,6 +818,16 @@ namespace ComputerShopImplementerApp.Controllers
|
||||
[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))
|
||||
|
@ -10,6 +10,12 @@ using ComputerShopBusinessLogic.OfficePackage.Implements;
|
||||
|
||||
var builder = WebApplication.CreateBuilder(args);
|
||||
|
||||
//builder.Services.AddTransient<IUserModel, User>();
|
||||
//builder.Services.AddTransient<IOrder, Order>();
|
||||
//builder.Services.AddTransient<IShipmentModel, Shipment>();
|
||||
//builder.Services.AddTransient<IRequestModel, Request>();
|
||||
|
||||
|
||||
builder.Services.AddTransient<IUserStorage, UserStorage>();
|
||||
builder.Services.AddTransient<IShipmentStorage, ShipmentStorage>();
|
||||
builder.Services.AddTransient<IRequestStorage, RequestStorage>();
|
||||
|
@ -17,15 +17,45 @@
|
||||
}
|
||||
}
|
||||
</select>
|
||||
@* !!!ПОТОМ УДАЛИТЬ *@
|
||||
@* <select id="status" name="status" class="form-control" asp-items="@(new SelectList(@ViewBag.OrderStatuses,"Id", "TextileName"))"></select> *@
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="mb-3">Дата создания:</div>
|
||||
<div class="mb-3"><input type="datetime-local" id="date" name="date" step="1"></div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="mb-3">Сумма:</div>
|
||||
<div class="mb-3"><input type="text" id="sum" name="sum" readonly /></div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-8"></div>
|
||||
<div class="col-4"><input type="submit" value="Создать" class="btn btn-primary" /></div>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
@* !!!МБ НАДО БУДЕТ *@
|
||||
@* <script>
|
||||
$('#status').on('change', function () {
|
||||
check();
|
||||
});
|
||||
$('#date').on('change', function () {
|
||||
check();
|
||||
});
|
||||
|
||||
function check() {
|
||||
var status = $('#status').val();
|
||||
var date = $('#date').val();
|
||||
if (status && date) {
|
||||
$.ajax({
|
||||
method: "POST",
|
||||
url: "/Home/Calc",
|
||||
data: { count: count, textile: textile },
|
||||
success: function (result) {
|
||||
$("#sum").val(result);
|
||||
}
|
||||
});
|
||||
};
|
||||
}
|
||||
</script> *@
|
||||
|
@ -58,6 +58,7 @@
|
||||
console.log(result);
|
||||
var localDate = result.dateCreate.toLocaleString();
|
||||
$("#date").val(localDate);
|
||||
//!!!ТУТ КАК-ТО ВЫВЕСТИ СТАТУС
|
||||
var orderStatusName = orderStatusNames[result.status + 1];
|
||||
$("#currentStatus").text(orderStatusName);
|
||||
$("#sum").val(result.sum);
|
||||
|
@ -46,7 +46,7 @@
|
||||
});
|
||||
function formatDate(date) {
|
||||
var options = { year: 'numeric', month: 'numeric', day: 'numeric', hour: 'numeric', minute: 'numeric', second: 'numeric' };
|
||||
return new Date(date).toLocaleString('ru-RU', options).replace(',', '');
|
||||
return new Date(date).toLocaleString('ru-RU', options).replace(',', '')/*.replace(/\./g, '').replace(/\s/g, '.')*/;
|
||||
}
|
||||
function check() {
|
||||
var request = $('#request').val();
|
||||
|
@ -46,7 +46,7 @@
|
||||
});
|
||||
function formatDate(date) {
|
||||
var options = { year: 'numeric', month: 'numeric', day: 'numeric', hour: 'numeric', minute: 'numeric', second: 'numeric' };
|
||||
return new Date(date).toLocaleString('ru-RU', options).replace(',', '');
|
||||
return new Date(date).toLocaleString('ru-RU', options).replace(',', '')/*.replace(/\./g, '').replace(/\s/g, '.')*/;
|
||||
}
|
||||
function check() {
|
||||
var shipment = $('#shipment').val();
|
||||
|
@ -1,6 +1,7 @@
|
||||
@using ComputerShopContracts.ViewModels
|
||||
|
||||
@model List<OrderViewModel>
|
||||
@* !!!ТУТ СКОРЕЕ ВСЕГО НАДО ПОМЕНЯТЬ *@
|
||||
@{
|
||||
ViewData["Title"] = "Orders";
|
||||
}
|
||||
|
@ -10,6 +10,7 @@
|
||||
<div class="form-group">
|
||||
<label class="mb-3">Выберите заказы для отчёта:</label>
|
||||
<select multiple id="orders" name="orders" class="form-control mb-3">
|
||||
@* !!!ЕСЛИ НЕ БУДЕТ РАБОТАТЬ, УБРАТЬ ОТСЮДА @order.Sum *@
|
||||
@foreach (var order in ViewBag.Orders)
|
||||
{
|
||||
<option value="@order.Id">@order.Id) @order.DateCreate; @order.Sum</option>
|
||||
|
@ -45,4 +45,35 @@
|
||||
}
|
||||
check();
|
||||
$('#show').on('click', (e) => check());
|
||||
|
||||
|
||||
// $('#order').on('change', function () {
|
||||
// check();
|
||||
// });
|
||||
// var orderStatusNames = [
|
||||
// "Неизвестен",
|
||||
// "Принят",
|
||||
// "Выполняется",
|
||||
// "Готов",
|
||||
// "Выдан"
|
||||
// ];
|
||||
// function check() {
|
||||
// var order = $('#order').val();
|
||||
// if (order) {
|
||||
// $.ajax({
|
||||
// method: "GET",
|
||||
// url: "/Home/GetOrder",
|
||||
// data: { orderId: order },
|
||||
// success: function (result) {
|
||||
// console.log(result);
|
||||
// var localDate = result.dateCreate.toLocaleString();
|
||||
// $("#date").val(localDate);
|
||||
// //!!!ТУТ КАК-ТО ВЫВЕСТИ СТАТУС
|
||||
// var orderStatusName = orderStatusNames[result.status + 1];
|
||||
// $("#currentStatus").text(orderStatusName);
|
||||
// $("#sum").val(result.sum);
|
||||
// }
|
||||
// });
|
||||
// };
|
||||
// }
|
||||
</script>
|
||||
|
@ -1,6 +1,7 @@
|
||||
@using ComputerShopContracts.ViewModels
|
||||
|
||||
@model List<RequestViewModel>
|
||||
@* !!!ТУТ СКОРЕЕ ВСЕГО НАДО ПОМЕНЯТЬ *@
|
||||
@{
|
||||
ViewData["Title"] = "Requests";
|
||||
}
|
||||
@ -18,6 +19,7 @@
|
||||
return;
|
||||
}
|
||||
|
||||
// !!!ДОБАВИТЬ ЭТИ МЕТОДЫ В HOME КОНТРОЛЛЕР И ТАКИЕ ЖЕ СТРАНИЦЫ
|
||||
<p>
|
||||
<a asp-action="CreateRequest">Создать заявку</a>
|
||||
<span style="margin-left: 20px;"></span>
|
||||
|
@ -1,6 +1,7 @@
|
||||
@using ComputerShopContracts.ViewModels
|
||||
|
||||
@model List<ShipmentViewModel>
|
||||
@* !!!ТУТ СКОРЕЕ ВСЕГО НАДО ПОМЕНЯТЬ *@
|
||||
@{
|
||||
ViewData["Title"] = "Shipments";
|
||||
}
|
||||
@ -18,6 +19,7 @@
|
||||
return;
|
||||
}
|
||||
|
||||
// !!!ДОБАВИТЬ ЭТИ МЕТОДЫ В HOME КОНТРОЛЛЕР И ТАКИЕ ЖЕ СТРАНИЦЫ
|
||||
<p>
|
||||
<a asp-action="CreateShipment">Создать партию товаров</a>
|
||||
<span style="margin-left: 20px;"></span>
|
||||
|
@ -16,6 +16,7 @@
|
||||
<option value="@order.Id">@order.Id) @order.DateCreate</option>
|
||||
}
|
||||
</select>
|
||||
@*<select id="order" name="order" class="form-control" asp-items="@(new SelectList(ViewBag.Orders, "Id", "DateCreate"))"> <option selected disabled>Выберите заказ</option> </select>*@
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="mb-3">Новый статус заказа:</label>
|
||||
@ -33,6 +34,7 @@
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="mb-3">Текущий статус заказа:</label>
|
||||
@* <input class="mb-3" type="text" id="currentStatus" name="currentStatus" readonly /> *@
|
||||
<span id="currentStatus" name="currentStatus" style="font-weight: bold;" class="mb-3"></span>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
@ -73,6 +75,7 @@
|
||||
console.log(result);
|
||||
var localDate = result.dateCreate.toLocaleString();
|
||||
$("#date").val(localDate);
|
||||
//!!!ТУТ КАК-ТО ВЫВЕСТИ СТАТУС
|
||||
var orderStatusName = orderStatusNames[result.status + 1];
|
||||
$("#currentStatus").text(orderStatusName);
|
||||
$("#sum").val(result.sum);
|
||||
|
@ -41,6 +41,7 @@
|
||||
<div class="col-md-6">
|
||||
<div class="form-group">
|
||||
<label class="mb-3">Текущие заказы заявки:</label>
|
||||
@* !!!МБ УБРАТЬ disabled *@
|
||||
<select multiple disabled size="6" id="currentOrders" name="currentOrders" class="form-control">
|
||||
</select>
|
||||
</div>
|
||||
@ -61,7 +62,7 @@
|
||||
});
|
||||
function formatDate(date) {
|
||||
var options = { year: 'numeric', month: 'numeric', day: 'numeric', hour: 'numeric', minute: 'numeric', second: 'numeric' };
|
||||
return new Date(date).toLocaleString('ru-RU', options).replace(',', '');
|
||||
return new Date(date).toLocaleString('ru-RU', options).replace(',', '')/*.replace(/\./g, '').replace(/\s/g, '.')*/;
|
||||
}
|
||||
function check() {
|
||||
var request = $('#request').val();
|
||||
|
@ -63,6 +63,14 @@
|
||||
var options = { year: 'numeric', month: 'numeric', day: 'numeric', hour: 'numeric', minute: 'numeric', second: 'numeric' };
|
||||
return new Date(date).toLocaleString('ru-RU', options).replace(',', '')/*.replace(/\./g, '').replace(/\s/g, '.')*/;
|
||||
}
|
||||
// function formatDate(date) {
|
||||
// // var datePart = new Date(date).toLocaleDateString('ru-RU', { year: 'numeric', month: '2-digit', day: '2-digit' }).replace(/\./g, '').replace(/\g, '.');
|
||||
// // var timePart = new Date(date).toLocaleTimeString('ru-RU', { hour: '2-digit', minute: '2-digit', second: '2-digit' }).replace(/:/g, '');
|
||||
// // return datePart + ' ' + timePart;
|
||||
// var datePart = new Date(date).toLocaleDateString('ru-RU', { year: '2-digit', month: '2-digit', day: '2-digit' }).replace(/\./g, '').replace(/\//g, '.');
|
||||
// var timePart = new Date(date).toLocaleTimeString('ru-RU', { hour: '2-digit', minute: '2-digit', second: '2-digit' }).replace(/:/g, '');
|
||||
// return datePart.replace(/$/, '. ') + timePart;
|
||||
// }
|
||||
function check() {
|
||||
var shipment = $('#shipment').val();
|
||||
if (shipment) {
|
||||
|
@ -17,6 +17,7 @@
|
||||
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target=".navbar-collapse" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
|
||||
<span class="navbar-toggler-icon"></span>
|
||||
</button>
|
||||
@* !!!Тут изменять asp-action и мб удалить "Личные данные" *@
|
||||
<div class="navbar-collapse collapse d-sm-inline-flex flex-sm-row-reverse">
|
||||
<ul class="navbar-nav flex-grow-1">
|
||||
<li class="nav-item">
|
||||
@ -33,6 +34,7 @@
|
||||
</li>
|
||||
|
||||
|
||||
@* !!!СЮДА ВСТАВИТЬ 2 ССЫЛКИ НА СТРАНИЦЫ С ПОЛУЧЕНИЕМ ОТЧЁТОВ *@
|
||||
<li class="nav-item">
|
||||
<a class="nav-link text-dark" asp-area="" asp-controller="Home" asp-action="ReportOrdersAssembliesToFile">Отчёт по заказам в файле</a>
|
||||
</li>
|
||||
@ -63,7 +65,7 @@
|
||||
</div>
|
||||
<footer class="border-top footer text-muted">
|
||||
<div class="container">
|
||||
© 2024 - Сайт магазина компьютерной техники "Ты ж программист" для исполнителя
|
||||
© 2024 - Сайт магазина компьютерной техники "Ты ж программист" для исполнителя - <a asp-area="" asp-controller="Home" asp-action="Privacy">Личные данные</a>
|
||||
</div>
|
||||
</footer>
|
||||
<script src="~/js/site.js" asp-append-version="true"></script>
|
||||
|
@ -123,6 +123,17 @@ namespace ComputerShopRestApi.Controllers
|
||||
}
|
||||
|
||||
|
||||
|
||||
//МБ ИЗМЕНИТЬ IEnumerable на List
|
||||
//!!!ПОТОМ УДАЛИТЬ
|
||||
//[HttpGet]
|
||||
//public IEnumerable<string> GetOrderStatuses()
|
||||
//{
|
||||
// // Получаем все значения из перечисления и возвращаем как список строк
|
||||
// var allStatuses = Enum.GetValues(typeof(OrderStatus)).Cast<OrderStatus>().Select(status => status.ToString());
|
||||
// return allStatuses;
|
||||
//}
|
||||
|
||||
[HttpPost]
|
||||
public void CreateOrder(OrderBindingModel model)
|
||||
{
|
||||
@ -150,6 +161,7 @@ namespace ComputerShopRestApi.Controllers
|
||||
}
|
||||
}
|
||||
|
||||
//[HttpDelete]
|
||||
[HttpPost]
|
||||
public void DeleteOrder(OrderBindingModel model)
|
||||
{
|
||||
|
@ -72,6 +72,7 @@ namespace ComputerShopRestApi.Controllers
|
||||
}
|
||||
}
|
||||
|
||||
//параметры для удобного использования в swagger, потом скорее всего будет передаваться RequestBindingModel model
|
||||
[HttpPost]
|
||||
public void ConnectRequestAssembly(RequestBindingModel model)
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user