Merge branch 'master' into Dozorova
This commit is contained in:
commit
ba9e854c9e
@ -49,15 +49,16 @@ namespace FurnitureAssemblyBusinessLogic.BusinessLogics
|
|||||||
_logger.LogInformation("ReadElement find. Id:{Id}", element.Id);
|
_logger.LogInformation("ReadElement find. Id:{Id}", element.Id);
|
||||||
return element;
|
return element;
|
||||||
}
|
}
|
||||||
public bool Create(OrderInfoBindingModel model)
|
public OrderInfoViewModel? Create(OrderInfoBindingModel model)
|
||||||
{
|
{
|
||||||
CheckModel(model);
|
CheckModel(model);
|
||||||
if (_orderInfoStorage.Insert(model) == null)
|
var order = _orderInfoStorage.Insert(model);
|
||||||
|
if (order == null)
|
||||||
{
|
{
|
||||||
_logger.LogWarning("Insert operation failed");
|
_logger.LogWarning("Insert operation failed");
|
||||||
return false;
|
return null;
|
||||||
}
|
}
|
||||||
return true;
|
return order;
|
||||||
}
|
}
|
||||||
public bool Update(OrderInfoBindingModel model)
|
public bool Update(OrderInfoBindingModel model)
|
||||||
{
|
{
|
||||||
|
@ -16,10 +16,14 @@ namespace FurnitureAssemblyBusinessLogic.BusinessLogics
|
|||||||
{
|
{
|
||||||
private readonly ILogger _logger;
|
private readonly ILogger _logger;
|
||||||
private readonly IOrderStorage _orderStorage;
|
private readonly IOrderStorage _orderStorage;
|
||||||
public OrderLogic(ILogger<OrderLogic> logger, IOrderStorage orderStorage)
|
private readonly IOrderInfoStorage _orderInfoStorage;
|
||||||
|
private readonly ISetStorage _setStorage;
|
||||||
|
public OrderLogic(ILogger<OrderLogic> logger, IOrderStorage orderStorage, IOrderInfoStorage orderInfoStorage, ISetStorage setStorage)
|
||||||
{
|
{
|
||||||
_logger = logger;
|
_logger = logger;
|
||||||
_orderStorage = orderStorage;
|
_orderStorage = orderStorage;
|
||||||
|
_orderInfoStorage = orderInfoStorage;
|
||||||
|
_setStorage = setStorage;
|
||||||
}
|
}
|
||||||
public List<OrderViewModel>? ReadList(OrderSearchModel? model)
|
public List<OrderViewModel>? ReadList(OrderSearchModel? model)
|
||||||
{
|
{
|
||||||
@ -52,7 +56,41 @@ namespace FurnitureAssemblyBusinessLogic.BusinessLogics
|
|||||||
public bool Create(OrderBindingModel model)
|
public bool Create(OrderBindingModel model)
|
||||||
{
|
{
|
||||||
CheckModel(model);
|
CheckModel(model);
|
||||||
if (_orderStorage.Insert(model) == null)
|
var orderInfo = _orderInfoStorage.GetElement(new OrderInfoSearchModel { Id = model.OrderInfoId });
|
||||||
|
var set = _setStorage.GetElement(new SetSearchModel { Id = model.SetId });
|
||||||
|
if (orderInfo == null || set == null)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
_orderInfoStorage.Update(new OrderInfoBindingModel
|
||||||
|
{
|
||||||
|
Id = orderInfo.Id,
|
||||||
|
CustomerName = orderInfo.CustomerName,
|
||||||
|
Sum = orderInfo.Sum + (set.Cost * model.Count),
|
||||||
|
DateCreate = orderInfo.DateCreate,
|
||||||
|
PaymentType = orderInfo.PaymentType,
|
||||||
|
UserId = orderInfo.UserId
|
||||||
|
});
|
||||||
|
var order = _orderStorage.GetElement(new OrderSearchModel
|
||||||
|
{
|
||||||
|
OrderInfoId = new List<int> { model.OrderInfoId },
|
||||||
|
SetId = model.SetId
|
||||||
|
});
|
||||||
|
if (order != null)
|
||||||
|
{
|
||||||
|
if (_orderStorage.Update(new OrderBindingModel
|
||||||
|
{
|
||||||
|
Id = order.Id,
|
||||||
|
OrderInfoId = order.OrderInfoId,
|
||||||
|
SetId = order.SetId,
|
||||||
|
Count = order.Count + model.Count
|
||||||
|
}) == null)
|
||||||
|
{
|
||||||
|
_logger.LogWarning("Insert operation failed");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (_orderStorage.Insert(model) == null)
|
||||||
{
|
{
|
||||||
_logger.LogWarning("Insert operation failed");
|
_logger.LogWarning("Insert operation failed");
|
||||||
return false;
|
return false;
|
||||||
@ -72,7 +110,23 @@ namespace FurnitureAssemblyBusinessLogic.BusinessLogics
|
|||||||
public bool Delete(OrderBindingModel model)
|
public bool Delete(OrderBindingModel model)
|
||||||
{
|
{
|
||||||
CheckModel(model, false);
|
CheckModel(model, false);
|
||||||
_logger.LogInformation("Delete. Id:{Id}", model.Id);
|
var order = _orderStorage.GetElement(new OrderSearchModel { Id = model.Id });
|
||||||
|
var orderInfo = _orderInfoStorage.GetElement(new OrderInfoSearchModel { Id = order.OrderInfoId });
|
||||||
|
var set = _setStorage.GetElement(new SetSearchModel { Id = order.SetId });
|
||||||
|
if (orderInfo == null || set == null)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
_orderInfoStorage.Update(new OrderInfoBindingModel
|
||||||
|
{
|
||||||
|
Id = orderInfo.Id,
|
||||||
|
CustomerName = orderInfo.CustomerName,
|
||||||
|
Sum = orderInfo.Sum - (set.Cost * order.Count),
|
||||||
|
DateCreate = orderInfo.DateCreate,
|
||||||
|
PaymentType = orderInfo.PaymentType,
|
||||||
|
UserId = orderInfo.UserId
|
||||||
|
});
|
||||||
|
_logger.LogInformation("Delete. Id:{Id}", model.Id);
|
||||||
if (_orderStorage.Delete(model) == null)
|
if (_orderStorage.Delete(model) == null)
|
||||||
{
|
{
|
||||||
_logger.LogWarning("Delete operation failed");
|
_logger.LogWarning("Delete operation failed");
|
||||||
|
@ -19,11 +19,11 @@ namespace FurnitureAssemblyBusinessLogic.BusinessLogics
|
|||||||
private readonly ISetStorage _setStorage;
|
private readonly ISetStorage _setStorage;
|
||||||
private readonly IOrderInfoStorage _orderInfoStorage;
|
private readonly IOrderInfoStorage _orderInfoStorage;
|
||||||
private readonly IOrderStorage _orderStorage;
|
private readonly IOrderStorage _orderStorage;
|
||||||
private readonly AbstractSaveToExcel _saveToExcel;
|
private readonly AbstractWorkerSaveToExcel _saveToExcel;
|
||||||
private readonly AbstractSaveToWord _saveToWord;
|
private readonly AbstractWorkerSaveToWord _saveToWord;
|
||||||
private readonly AbstractSaveToPdf _saveToPdf;
|
private readonly AbstractWorkerSaveToPdf _saveToPdf;
|
||||||
public ReportWorkerLogic(ISetStorage setStorage, IFurnitureModuleStorage furnitureModuleStorage, IOrderInfoStorage orderInfoStorage,
|
public ReportWorkerLogic(ISetStorage setStorage, IFurnitureModuleStorage furnitureModuleStorage, IOrderInfoStorage orderInfoStorage,
|
||||||
IOrderStorage orderStorage, AbstractSaveToExcel saveToExcel, AbstractSaveToWord saveToWord, AbstractSaveToPdf saveToPdf)
|
IOrderStorage orderStorage, AbstractWorkerSaveToExcel saveToExcel, AbstractWorkerSaveToWord saveToWord, AbstractWorkerSaveToPdf saveToPdf)
|
||||||
{
|
{
|
||||||
_setStorage = setStorage;
|
_setStorage = setStorage;
|
||||||
_furnitureModuleStorage = furnitureModuleStorage;
|
_furnitureModuleStorage = furnitureModuleStorage;
|
||||||
|
@ -8,7 +8,7 @@ using System.Threading.Tasks;
|
|||||||
|
|
||||||
namespace FurnitureAssemblyBusinessLogic.OfficePackage
|
namespace FurnitureAssemblyBusinessLogic.OfficePackage
|
||||||
{
|
{
|
||||||
public abstract class AbstractSaveToExcel
|
public abstract class AbstractWorkerSaveToExcel
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Создание отчета
|
/// Создание отчета
|
@ -10,7 +10,7 @@ using System.Threading.Tasks;
|
|||||||
|
|
||||||
namespace FurnitureAssemblyBusinessLogic.OfficePackage
|
namespace FurnitureAssemblyBusinessLogic.OfficePackage
|
||||||
{
|
{
|
||||||
public abstract class AbstractSaveToPdf
|
public abstract class AbstractWorkerSaveToPdf
|
||||||
{
|
{
|
||||||
public void CreateDoc(PdfInfo info)
|
public void CreateDoc(PdfInfo info)
|
||||||
{
|
{
|
@ -8,7 +8,7 @@ using System.Threading.Tasks;
|
|||||||
|
|
||||||
namespace FurnitureAssemblyBusinessLogic.OfficePackage
|
namespace FurnitureAssemblyBusinessLogic.OfficePackage
|
||||||
{
|
{
|
||||||
public abstract class AbstractSaveToWord
|
public abstract class AbstractWorkerSaveToWord
|
||||||
{
|
{
|
||||||
public void CreateDoc(WordInfo info)
|
public void CreateDoc(WordInfo info)
|
||||||
{
|
{
|
@ -13,7 +13,7 @@ using System.Threading.Tasks;
|
|||||||
|
|
||||||
namespace FurnitureAssemblyBusinessLogic.OfficePackage.Implements
|
namespace FurnitureAssemblyBusinessLogic.OfficePackage.Implements
|
||||||
{
|
{
|
||||||
public class SaveToExcel : AbstractSaveToExcel
|
public class SaveToExcel : AbstractWorkerSaveToExcel
|
||||||
{
|
{
|
||||||
private SpreadsheetDocument? _spreadsheetDocument;
|
private SpreadsheetDocument? _spreadsheetDocument;
|
||||||
private SharedStringTablePart? _shareStringPart;
|
private SharedStringTablePart? _shareStringPart;
|
||||||
|
@ -11,7 +11,7 @@ using System.Threading.Tasks;
|
|||||||
|
|
||||||
namespace FurnitureAssemblyBusinessLogic.OfficePackage.Implements
|
namespace FurnitureAssemblyBusinessLogic.OfficePackage.Implements
|
||||||
{
|
{
|
||||||
public class SaveToPdf : AbstractSaveToPdf
|
public class SaveToPdf : AbstractWorkerSaveToPdf
|
||||||
{
|
{
|
||||||
private Document? _document;
|
private Document? _document;
|
||||||
private Section? _section;
|
private Section? _section;
|
||||||
|
@ -11,7 +11,7 @@ using System.Threading.Tasks;
|
|||||||
|
|
||||||
namespace FurnitureAssemblyBusinessLogic.OfficePackage.Implements
|
namespace FurnitureAssemblyBusinessLogic.OfficePackage.Implements
|
||||||
{
|
{
|
||||||
public class SaveToWord : AbstractSaveToWord
|
public class SaveToWord : AbstractWorkerSaveToWord
|
||||||
{
|
{
|
||||||
private WordprocessingDocument? _wordDocument;
|
private WordprocessingDocument? _wordDocument;
|
||||||
private Body? _docBody;
|
private Body? _docBody;
|
||||||
|
@ -13,7 +13,7 @@ namespace FurnitureAssemblyContracts.BusinessLogicContracts
|
|||||||
{
|
{
|
||||||
List<OrderInfoViewModel>? ReadList(OrderInfoSearchModel? model);
|
List<OrderInfoViewModel>? ReadList(OrderInfoSearchModel? model);
|
||||||
OrderInfoViewModel? ReadElement(OrderInfoSearchModel model);
|
OrderInfoViewModel? ReadElement(OrderInfoSearchModel model);
|
||||||
bool Create(OrderInfoBindingModel model);
|
OrderInfoViewModel? Create(OrderInfoBindingModel model);
|
||||||
bool Update(OrderInfoBindingModel model);
|
bool Update(OrderInfoBindingModel model);
|
||||||
bool Delete(OrderInfoBindingModel model);
|
bool Delete(OrderInfoBindingModel model);
|
||||||
}
|
}
|
||||||
|
@ -33,16 +33,27 @@ namespace FurnitureAssemblyDatabaseImplement.Implements
|
|||||||
}
|
}
|
||||||
public OrderViewModel? GetElement(OrderSearchModel model)
|
public OrderViewModel? GetElement(OrderSearchModel model)
|
||||||
{
|
{
|
||||||
if (!model.Id.HasValue)
|
using var context = new FurnitureAssemblyDatabase();
|
||||||
|
if (model.Id.HasValue)
|
||||||
{
|
{
|
||||||
return null;
|
return context.Orders
|
||||||
}
|
.Include(x => x.Set)
|
||||||
using var context = new FurnitureAssemblyDatabase();
|
|
||||||
return context.Orders
|
|
||||||
.Include(x => x.Set)
|
|
||||||
.Include(x => x.OrderInfo)
|
.Include(x => x.OrderInfo)
|
||||||
.FirstOrDefault(x => model.Id.HasValue && x.Id == model.Id)
|
.FirstOrDefault(x => model.Id.HasValue && x.Id == model.Id)
|
||||||
?.GetViewModel;
|
?.GetViewModel;
|
||||||
|
}
|
||||||
|
else if (model.OrderInfoId != null && model.OrderInfoId.Count == 1 && model.SetId.HasValue)
|
||||||
|
{
|
||||||
|
return context.Orders
|
||||||
|
.Include(x => x.Set)
|
||||||
|
.Include(x => x.OrderInfo)
|
||||||
|
.FirstOrDefault(x => model.OrderInfoId.Contains(x.OrderInfoId) && x.SetId == model.SetId)
|
||||||
|
?.GetViewModel;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
public List<OrderViewModel> GetFilteredList(OrderSearchModel model)
|
public List<OrderViewModel> GetFilteredList(OrderSearchModel model)
|
||||||
{
|
{
|
||||||
|
@ -58,8 +58,7 @@ namespace FurnitureAssemblyDatabaseImplement.Models
|
|||||||
PaymentType = OrderInfo.PaymentType,
|
PaymentType = OrderInfo.PaymentType,
|
||||||
DateCreate = OrderInfo.DateCreate,
|
DateCreate = OrderInfo.DateCreate,
|
||||||
Sum = OrderInfo.Sum,
|
Sum = OrderInfo.Sum,
|
||||||
UserId = OrderInfo.UserId,
|
UserId = OrderInfo.UserId
|
||||||
UserName = OrderInfo.User.Name
|
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -36,7 +36,7 @@ namespace FurnitureAssemblyDatabaseImplement.Models
|
|||||||
Id = model.Id,
|
Id = model.Id,
|
||||||
CustomerName = model.CustomerName,
|
CustomerName = model.CustomerName,
|
||||||
PaymentType = model.PaymentType,
|
PaymentType = model.PaymentType,
|
||||||
Sum = model.Sum,
|
Sum = 0,
|
||||||
DateCreate = DateTime.Now.ToUniversalTime(),
|
DateCreate = DateTime.Now.ToUniversalTime(),
|
||||||
UserId = model.UserId
|
UserId = model.UserId
|
||||||
};
|
};
|
||||||
@ -50,6 +50,7 @@ namespace FurnitureAssemblyDatabaseImplement.Models
|
|||||||
CustomerName = model.CustomerName;
|
CustomerName = model.CustomerName;
|
||||||
PaymentType = model.PaymentType;
|
PaymentType = model.PaymentType;
|
||||||
UserId = model.UserId;
|
UserId = model.UserId;
|
||||||
|
Sum = model.Sum;
|
||||||
}
|
}
|
||||||
public OrderInfoViewModel GetViewModel => new()
|
public OrderInfoViewModel GetViewModel => new()
|
||||||
{
|
{
|
||||||
|
@ -47,6 +47,19 @@ namespace FurnitureAssemblyRestApi.Controllers
|
|||||||
throw;
|
throw;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
[HttpGet]
|
||||||
|
public List<FurnitureModuleViewModel>? GetFurnitureModuleListByUser(int userId)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
return _furnitureModule.ReadList(new FurnitureModuleSearchModel { UserId = userId });
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
_logger.LogError(ex, "Ошибка получения списка гарнитуров у пользователя по id={userId}", userId);
|
||||||
|
throw;
|
||||||
|
}
|
||||||
|
}
|
||||||
[HttpPost]
|
[HttpPost]
|
||||||
public void AddFurnitureModule(FurnitureModuleBindingModel model)
|
public void AddFurnitureModule(FurnitureModuleBindingModel model)
|
||||||
{
|
{
|
||||||
|
@ -17,11 +17,16 @@ namespace FurnitureAssemblyRestApi.Controllers
|
|||||||
private readonly ILogger _logger;
|
private readonly ILogger _logger;
|
||||||
private readonly IOrderLogic _order;
|
private readonly IOrderLogic _order;
|
||||||
private readonly IOrderInfoLogic _orderInfo;
|
private readonly IOrderInfoLogic _orderInfo;
|
||||||
public OrderController(ILogger<OrderController> logger, IOrderLogic order, IOrderInfoLogic orderInfo)
|
private readonly ISetLogic _set;
|
||||||
|
public OrderController(ILogger<OrderController> logger,
|
||||||
|
IOrderLogic order,
|
||||||
|
IOrderInfoLogic orderInfo,
|
||||||
|
ISetLogic set)
|
||||||
{
|
{
|
||||||
_logger = logger;
|
_logger = logger;
|
||||||
_order = order;
|
_order = order;
|
||||||
_orderInfo = orderInfo;
|
_orderInfo = orderInfo;
|
||||||
|
_set = set;
|
||||||
}
|
}
|
||||||
|
|
||||||
[HttpGet]
|
[HttpGet]
|
||||||
@ -73,7 +78,45 @@ namespace FurnitureAssemblyRestApi.Controllers
|
|||||||
throw;
|
throw;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
[HttpPost]
|
[HttpGet]
|
||||||
|
public Tuple<OrderInfoViewModel, List<SetViewModel>, List<int>>? GetOrderWithSets(int orderId)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var orderInfo = _orderInfo.ReadElement(new() { Id = orderId });
|
||||||
|
if (orderInfo == null)
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
var orders = _order.ReadList(new OrderSearchModel { OrderInfoId = new List<int>() { orderInfo.Id } });
|
||||||
|
var sets = new List<SetViewModel>();
|
||||||
|
var counts = new List<int>();
|
||||||
|
if (orders == null)
|
||||||
|
{
|
||||||
|
sets = null;
|
||||||
|
counts = null;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
foreach (var order in orders)
|
||||||
|
{
|
||||||
|
var el = _set.ReadElement(new SetSearchModel { Id = order.SetId });
|
||||||
|
sets.Add(el);
|
||||||
|
counts.Add(order.Count);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
var tuple = System.Tuple.Create(orderInfo,
|
||||||
|
sets,
|
||||||
|
counts);
|
||||||
|
return tuple;
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
_logger.LogError(ex, "Ошибка гарнитура с мебельными модулями");
|
||||||
|
throw;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
[HttpPost]
|
||||||
public void AddOrder(OrderBindingModel model)
|
public void AddOrder(OrderBindingModel model)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
@ -112,5 +155,25 @@ namespace FurnitureAssemblyRestApi.Controllers
|
|||||||
throw;
|
throw;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
[HttpPost]
|
||||||
|
public void AddSetInOrder(Tuple<OrderInfoSearchModel, SetSearchModel, int> orderSetWithCount)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var orderInfo = _orderInfo.ReadElement(orderSetWithCount.Item1);
|
||||||
|
var set = _set.ReadElement(orderSetWithCount.Item2);
|
||||||
|
_order.Create(new OrderBindingModel
|
||||||
|
{
|
||||||
|
OrderInfoId = orderInfo.Id,
|
||||||
|
SetId = set.Id,
|
||||||
|
Count = orderSetWithCount.Item3
|
||||||
|
});
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
_logger.LogError(ex, "Ошибка добавления поездки в магазин");
|
||||||
|
throw;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -47,12 +47,25 @@ namespace FurnitureAssemblyRestApi.Controllers
|
|||||||
throw;
|
throw;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
[HttpPost]
|
[HttpGet]
|
||||||
public void AddOrderInfo(OrderInfoBindingModel model)
|
public List<OrderInfoViewModel>? GetOrderInfoListByUser(int userId)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
_orderInfo.Create(model);
|
return _orderInfo.ReadList(new OrderInfoSearchModel { UserId = userId });
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
_logger.LogError(ex, "Ошибка получения списка гарнитуров у пользователя по id={userId}", userId);
|
||||||
|
throw;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
[HttpPost]
|
||||||
|
public OrderInfoViewModel? AddOrderInfo(OrderInfoBindingModel model)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
return _orderInfo.Create(model);
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
|
@ -33,9 +33,9 @@ builder.Services.AddTransient<ISetLogic, SetLogic>();
|
|||||||
builder.Services.AddTransient<IUserLogic, UserLogic>();
|
builder.Services.AddTransient<IUserLogic, UserLogic>();
|
||||||
builder.Services.AddTransient<IReportWorkerLogic, ReportWorkerLogic>();
|
builder.Services.AddTransient<IReportWorkerLogic, ReportWorkerLogic>();
|
||||||
|
|
||||||
builder.Services.AddTransient<AbstractSaveToExcel, SaveToExcel>();
|
builder.Services.AddTransient<AbstractWorkerSaveToExcel, SaveToExcel>();
|
||||||
builder.Services.AddTransient<AbstractSaveToWord, SaveToWord>();
|
builder.Services.AddTransient<AbstractWorkerSaveToWord, SaveToWord>();
|
||||||
builder.Services.AddTransient<AbstractSaveToPdf, SaveToPdf>();
|
builder.Services.AddTransient<AbstractWorkerSaveToPdf, SaveToPdf>();
|
||||||
|
|
||||||
builder.Services.AddControllers();
|
builder.Services.AddControllers();
|
||||||
// Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle
|
// Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle
|
||||||
|
@ -29,11 +29,7 @@ namespace FurnitureAssemblyWorkerClientApp
|
|||||||
throw new Exception(result);
|
throw new Exception(result);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
public static void GetBaseRequest(string requestUrl)
|
public static T? PostRequest<T>(string requestUrl, T model)
|
||||||
{
|
|
||||||
var response = _client.GetAsync(requestUrl);
|
|
||||||
}
|
|
||||||
public static void PostRequest<T>(string requestUrl, T model)
|
|
||||||
{
|
{
|
||||||
var json = JsonConvert.SerializeObject(model);
|
var json = JsonConvert.SerializeObject(model);
|
||||||
var data = new StringContent(json, Encoding.UTF8, "application/json");
|
var data = new StringContent(json, Encoding.UTF8, "application/json");
|
||||||
@ -41,7 +37,10 @@ namespace FurnitureAssemblyWorkerClientApp
|
|||||||
var response = _client.PostAsync(requestUrl, data);
|
var response = _client.PostAsync(requestUrl, data);
|
||||||
|
|
||||||
var result = response.Result.Content.ReadAsStringAsync().Result;
|
var result = response.Result.Content.ReadAsStringAsync().Result;
|
||||||
if (!response.Result.IsSuccessStatusCode)
|
if (response.Result.IsSuccessStatusCode)
|
||||||
|
{
|
||||||
|
return JsonConvert.DeserializeObject<T>(result);
|
||||||
|
} else
|
||||||
{
|
{
|
||||||
throw new Exception(result);
|
throw new Exception(result);
|
||||||
}
|
}
|
||||||
|
@ -6,6 +6,7 @@ using System.Diagnostics;
|
|||||||
using FurnitureAssemblyDataModels.Models;
|
using FurnitureAssemblyDataModels.Models;
|
||||||
using System;
|
using System;
|
||||||
using FurnitureAssemblyContracts.SearchModels;
|
using FurnitureAssemblyContracts.SearchModels;
|
||||||
|
using FurnitureAssemblyDataModels.Enums;
|
||||||
|
|
||||||
namespace FurnitureAssemblyWorkerClientApp.Controllers
|
namespace FurnitureAssemblyWorkerClientApp.Controllers
|
||||||
{
|
{
|
||||||
@ -160,7 +161,7 @@ namespace FurnitureAssemblyWorkerClientApp.Controllers
|
|||||||
furnitureModuleTable += "<tr>";
|
furnitureModuleTable += "<tr>";
|
||||||
furnitureModuleTable += $"<td>{furnitureModule.Name}</td>";
|
furnitureModuleTable += $"<td>{furnitureModule.Name}</td>";
|
||||||
furnitureModuleTable += $"<td>{furnitureModule.Cost}</td>";
|
furnitureModuleTable += $"<td>{furnitureModule.Cost}</td>";
|
||||||
furnitureModuleTable += $"<td>{furnitureModule.DateCreate}</td>";
|
furnitureModuleTable += $"<td>{furnitureModule.DateCreate.Date}</td>";
|
||||||
furnitureModuleTable += $"<td>{count}</td>";
|
furnitureModuleTable += $"<td>{count}</td>";
|
||||||
furnitureModuleTable += "</tr>";
|
furnitureModuleTable += "</tr>";
|
||||||
}
|
}
|
||||||
@ -173,7 +174,7 @@ namespace FurnitureAssemblyWorkerClientApp.Controllers
|
|||||||
{
|
{
|
||||||
return Redirect("~/Home/Enter");
|
return Redirect("~/Home/Enter");
|
||||||
}
|
}
|
||||||
return View(APIClient.GetRequest<List<SetViewModel>>($"api/set/getsetlist"));
|
return View(APIClient.GetRequest<List<SetViewModel>>($"api/set/getsetlistbyuser?userId={APIClient.User.Id}"));
|
||||||
}
|
}
|
||||||
[HttpPost]
|
[HttpPost]
|
||||||
public void UpdateSet(int set, string name, double cost, DateTime dateCreate)
|
public void UpdateSet(int set, string name, double cost, DateTime dateCreate)
|
||||||
@ -208,7 +209,7 @@ namespace FurnitureAssemblyWorkerClientApp.Controllers
|
|||||||
{
|
{
|
||||||
return Redirect("~/Home/Enter");
|
return Redirect("~/Home/Enter");
|
||||||
}
|
}
|
||||||
return View(APIClient.GetRequest<List<SetViewModel>>($"api/set/getsetlist"));
|
return View(APIClient.GetRequest<List<SetViewModel>>($"api/set/getsetlistbyuser?userId={APIClient.User.Id}"));
|
||||||
}
|
}
|
||||||
[HttpPost]
|
[HttpPost]
|
||||||
public void DeleteSet(int set)
|
public void DeleteSet(int set)
|
||||||
@ -230,7 +231,7 @@ namespace FurnitureAssemblyWorkerClientApp.Controllers
|
|||||||
{
|
{
|
||||||
return Redirect("~/Home/Enter");
|
return Redirect("~/Home/Enter");
|
||||||
}
|
}
|
||||||
return View(Tuple.Create(APIClient.GetRequest<List<SetViewModel>>("api/set/getsetlist"), APIClient.GetRequest<List<FurnitureModuleViewModel>>("api/furnituremodule/getfurnituremodulelist")));
|
return View(Tuple.Create(APIClient.GetRequest<List<SetViewModel>>($"api/set/getsetlistbyuser?userId={APIClient.User.Id}"), APIClient.GetRequest<List<FurnitureModuleViewModel>>($"api/furnituremodule/getfurnituremodulelistbyuser?userId={APIClient.User.Id}")));
|
||||||
}
|
}
|
||||||
[HttpPost]
|
[HttpPost]
|
||||||
public void AddFurnitureModuleInSet(int set, int furnitureModule, int count)
|
public void AddFurnitureModuleInSet(int set, int furnitureModule, int count)
|
||||||
@ -257,7 +258,7 @@ namespace FurnitureAssemblyWorkerClientApp.Controllers
|
|||||||
{
|
{
|
||||||
return Redirect("~/Home/Enter");
|
return Redirect("~/Home/Enter");
|
||||||
}
|
}
|
||||||
return View(APIClient.GetRequest<List<SetViewModel>>($"api/set/getsetlist"));
|
return View(APIClient.GetRequest<List<SetViewModel>>($"api/set/getsetlistbyuser?userId={APIClient.User.Id}"));
|
||||||
}
|
}
|
||||||
[HttpPost]
|
[HttpPost]
|
||||||
public void ListSetsFurnitureModulesToFile(int[] setIds, string type)
|
public void ListSetsFurnitureModulesToFile(int[] setIds, string type)
|
||||||
@ -306,5 +307,301 @@ namespace FurnitureAssemblyWorkerClientApp.Controllers
|
|||||||
{
|
{
|
||||||
return new PhysicalFileResult("C:\\temp\\excel_worker.xlsx", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
|
return new PhysicalFileResult("C:\\temp\\excel_worker.xlsx", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
|
||||||
}
|
}
|
||||||
}
|
[HttpGet]
|
||||||
|
public IActionResult FurnitureModules()
|
||||||
|
{
|
||||||
|
if (APIClient.User == null)
|
||||||
|
{
|
||||||
|
return Redirect("~/Home/Enter");
|
||||||
|
}
|
||||||
|
return View(APIClient.GetRequest<List<FurnitureModuleViewModel>>($"api/furnituremodule/getfurnituremodulelistbyuser?userId={APIClient.User.Id}"));
|
||||||
|
}
|
||||||
|
[HttpGet]
|
||||||
|
public IActionResult CreateFurnitureModule()
|
||||||
|
{
|
||||||
|
return View();
|
||||||
|
}
|
||||||
|
[HttpPost]
|
||||||
|
public void CreateFurnitureModule(string name, double cost)
|
||||||
|
{
|
||||||
|
if (APIClient.User == null)
|
||||||
|
{
|
||||||
|
throw new Exception("Вы как суда попали? Суда вход только авторизованным");
|
||||||
|
}
|
||||||
|
if (string.IsNullOrEmpty(name))
|
||||||
|
{
|
||||||
|
throw new Exception("Название мебельного модуля не указано");
|
||||||
|
}
|
||||||
|
if (cost <= 0)
|
||||||
|
{
|
||||||
|
throw new Exception("Стоимость мебельного модуля не корректна");
|
||||||
|
}
|
||||||
|
APIClient.PostRequest("api/furnituremodule/addfurnituremodule", new FurnitureModuleBindingModel
|
||||||
|
{
|
||||||
|
Name = name,
|
||||||
|
Cost = cost,
|
||||||
|
UserId = APIClient.User.Id
|
||||||
|
});
|
||||||
|
Response.Redirect("FurnitureModules");
|
||||||
|
}
|
||||||
|
[HttpGet]
|
||||||
|
public IActionResult UpdateFurnitureModule()
|
||||||
|
{
|
||||||
|
if (APIClient.User == null)
|
||||||
|
{
|
||||||
|
return Redirect("~/Home/Enter");
|
||||||
|
}
|
||||||
|
return View(APIClient.GetRequest<List<FurnitureModuleViewModel>>($"api/furnituremodule/getfurnituremodulelistbyuser?userId={APIClient.User.Id}"));
|
||||||
|
}
|
||||||
|
[HttpPost]
|
||||||
|
public void UpdateFurnitureModule(int furnitureModule, string name, double cost, DateTime dateCreate)
|
||||||
|
{
|
||||||
|
if (APIClient.User == null)
|
||||||
|
{
|
||||||
|
throw new Exception("Вы как суда попали? Суда вход только авторизованным");
|
||||||
|
}
|
||||||
|
if (string.IsNullOrEmpty(name))
|
||||||
|
{
|
||||||
|
throw new Exception("Название мебельного модуля не указано");
|
||||||
|
}
|
||||||
|
if (cost <= 0)
|
||||||
|
{
|
||||||
|
throw new Exception("Стоимость мебельного модуля не корректна");
|
||||||
|
}
|
||||||
|
APIClient.PostRequest("api/furnituremodule/updatefurnituremodule", new FurnitureModuleBindingModel
|
||||||
|
{
|
||||||
|
Id = furnitureModule,
|
||||||
|
Name = name,
|
||||||
|
Cost = cost,
|
||||||
|
DateCreate = dateCreate.Date
|
||||||
|
});
|
||||||
|
Response.Redirect("FurnitureModules");
|
||||||
|
}
|
||||||
|
[HttpGet]
|
||||||
|
public IActionResult DeleteFurnitureModule()
|
||||||
|
{
|
||||||
|
if (APIClient.User == null)
|
||||||
|
{
|
||||||
|
return Redirect("~/Home/Enter");
|
||||||
|
}
|
||||||
|
return View(APIClient.GetRequest<List<FurnitureModuleViewModel>>($"api/furnituremodule/getfurnituremodulelistbyuser?userId={APIClient.User.Id}"));
|
||||||
|
}
|
||||||
|
[HttpPost]
|
||||||
|
public void DeleteFurnitureModule(int furnitureModule)
|
||||||
|
{
|
||||||
|
if (APIClient.User == null)
|
||||||
|
{
|
||||||
|
throw new Exception("Вы как суда попали? Суда вход только авторизованным");
|
||||||
|
}
|
||||||
|
APIClient.PostRequest("api/furnituremodule/deletefurnituremodule", new FurnitureModuleBindingModel
|
||||||
|
{
|
||||||
|
Id = furnitureModule,
|
||||||
|
});
|
||||||
|
Response.Redirect("FurnitureModules");
|
||||||
|
}
|
||||||
|
[HttpGet]
|
||||||
|
public FurnitureModuleViewModel? GetFurnitureModule(int furnitureModuleId)
|
||||||
|
{
|
||||||
|
var result = APIClient.GetRequest<FurnitureModuleViewModel>
|
||||||
|
($"api/furnitureModule/getfurnituremodule?Id={furnitureModuleId}");
|
||||||
|
if (result == null)
|
||||||
|
{
|
||||||
|
return default;
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
[HttpGet]
|
||||||
|
public IActionResult AddFurnitureModulesInSet()
|
||||||
|
{
|
||||||
|
if (APIClient.User == null)
|
||||||
|
{
|
||||||
|
return Redirect("~/Home/Enter");
|
||||||
|
}
|
||||||
|
return View(Tuple.Create(APIClient.GetRequest<List<SetViewModel>>($"api/set/getsetlistbyuser?userId={APIClient.User.Id}"), APIClient.GetRequest<List<FurnitureModuleViewModel>>($"api/furnituremodule/getfurnituremodulelistbyuser?userId={APIClient.User.Id}")));
|
||||||
|
}
|
||||||
|
[HttpPost]
|
||||||
|
public void AddFurnitureModulesInSet(int set, int[] furnitureModuleIds, int[] counts)
|
||||||
|
{
|
||||||
|
if (APIClient.User == null)
|
||||||
|
{
|
||||||
|
throw new Exception("Вы как суда попали? Суда вход только авторизованным");
|
||||||
|
}
|
||||||
|
if (furnitureModuleIds.Length != counts.Length)
|
||||||
|
{
|
||||||
|
throw new Exception("Массивы не совпадают");
|
||||||
|
}
|
||||||
|
for (int i = 0; i < furnitureModuleIds.Length; i++)
|
||||||
|
{
|
||||||
|
APIClient.PostRequest("api/set/addfurnituremoduleinset", Tuple.Create(
|
||||||
|
new SetSearchModel() { Id = set },
|
||||||
|
new FurnitureModuleViewModel() { Id = furnitureModuleIds[i] },
|
||||||
|
counts[i]
|
||||||
|
));
|
||||||
|
}
|
||||||
|
Response.Redirect("Index");
|
||||||
|
}
|
||||||
|
[HttpGet]
|
||||||
|
public IActionResult Orders()
|
||||||
|
{
|
||||||
|
if (APIClient.User == null)
|
||||||
|
{
|
||||||
|
return Redirect("~/Home/Enter");
|
||||||
|
}
|
||||||
|
return View(APIClient.GetRequest<List<OrderInfoViewModel>>($"api/orderinfo/getorderinfolistbyuser?userId={APIClient.User.Id}"));
|
||||||
|
}
|
||||||
|
[HttpGet]
|
||||||
|
public IActionResult CreateOrder()
|
||||||
|
{
|
||||||
|
if (APIClient.User == null)
|
||||||
|
{
|
||||||
|
return Redirect("~/Home/Enter");
|
||||||
|
}
|
||||||
|
return View(APIClient.GetRequest<List<SetViewModel>>($"api/set/getsetlistbyuser?userId={APIClient.User.Id}"));
|
||||||
|
}
|
||||||
|
[HttpPost]
|
||||||
|
public void CreateOrder(string name, PaymentType paymentType, int[] setIds, int[] counts)
|
||||||
|
{
|
||||||
|
if (APIClient.User == null)
|
||||||
|
{
|
||||||
|
throw new Exception("Вы как суда попали? Суда вход только авторизованным");
|
||||||
|
}
|
||||||
|
if (string.IsNullOrEmpty(name))
|
||||||
|
{
|
||||||
|
throw new Exception("Имя не должно быть пустым");
|
||||||
|
}
|
||||||
|
var orderInfo = APIClient.PostRequest("api/orderinfo/addorderinfo", new OrderInfoBindingModel
|
||||||
|
{
|
||||||
|
CustomerName = name,
|
||||||
|
PaymentType = paymentType,
|
||||||
|
UserId = APIClient.User.Id
|
||||||
|
});
|
||||||
|
if (orderInfo == null)
|
||||||
|
{
|
||||||
|
throw new Exception("Ошибка создания заказа");
|
||||||
|
}
|
||||||
|
if (setIds != null && setIds.Length > 0 && counts != null && setIds.Length == counts.Length)
|
||||||
|
{
|
||||||
|
for (int i = 0; i < counts.Length; i++)
|
||||||
|
{
|
||||||
|
APIClient.PostRequest("api/order/addorder", new OrderBindingModel
|
||||||
|
{
|
||||||
|
OrderInfoId = orderInfo.Id,
|
||||||
|
SetId = setIds[i],
|
||||||
|
Count = counts[i]
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Response.Redirect("Orders");
|
||||||
|
}
|
||||||
|
[HttpGet]
|
||||||
|
public Tuple<OrderInfoViewModel, string>? GetOrderWithSets(int orderId)
|
||||||
|
{
|
||||||
|
var result = APIClient.GetRequest<Tuple<OrderInfoViewModel, List<SetViewModel>, List<int>>>
|
||||||
|
($"api/order/getorderwithsets?orderId={orderId}");
|
||||||
|
if (result == null)
|
||||||
|
{
|
||||||
|
return default;
|
||||||
|
}
|
||||||
|
string setTable = "";
|
||||||
|
for (int i = 0; i < result.Item2.Count; i++)
|
||||||
|
{
|
||||||
|
var set = result.Item2[i];
|
||||||
|
var count = result.Item3[i];
|
||||||
|
setTable += "<tr>";
|
||||||
|
setTable += $"<td>{set.Name}</td>";
|
||||||
|
setTable += $"<td>{set.Cost}</td>";
|
||||||
|
setTable += $"<td>{set.DateCreate.Date}</td>";
|
||||||
|
setTable += $"<td>{count}</td>";
|
||||||
|
setTable += "</tr>";
|
||||||
|
}
|
||||||
|
return Tuple.Create(result.Item1, setTable);
|
||||||
|
}
|
||||||
|
[HttpGet]
|
||||||
|
public IActionResult UpdateOrder()
|
||||||
|
{
|
||||||
|
if (APIClient.User == null)
|
||||||
|
{
|
||||||
|
return Redirect("~/Home/Enter");
|
||||||
|
}
|
||||||
|
return View(APIClient.GetRequest<List<OrderInfoViewModel>>($"api/orderinfo/getorderinfolistbyuser?userId={APIClient.User.Id}"));
|
||||||
|
}
|
||||||
|
[HttpPost]
|
||||||
|
public void UpdateOrder(int order, string name, DateTime dateCreate, PaymentType paymentType, double sum)
|
||||||
|
{
|
||||||
|
if (APIClient.User == null)
|
||||||
|
{
|
||||||
|
throw new Exception("Вы как суда попали? Суда вход только авторизованным");
|
||||||
|
}
|
||||||
|
if (string.IsNullOrEmpty(name))
|
||||||
|
{
|
||||||
|
throw new Exception("Название гарнитура не указано");
|
||||||
|
}
|
||||||
|
APIClient.PostRequest("api/orderinfo/updateorderinfo", new OrderInfoBindingModel
|
||||||
|
{
|
||||||
|
Id = order,
|
||||||
|
CustomerName = name,
|
||||||
|
DateCreate = dateCreate.Date,
|
||||||
|
PaymentType = paymentType,
|
||||||
|
UserId = APIClient.User.Id,
|
||||||
|
Sum = sum
|
||||||
|
});
|
||||||
|
Response.Redirect("Orders");
|
||||||
|
}
|
||||||
|
[HttpGet]
|
||||||
|
public IActionResult DeleteOrder()
|
||||||
|
{
|
||||||
|
if (APIClient.User == null)
|
||||||
|
{
|
||||||
|
return Redirect("~/Home/Enter");
|
||||||
|
}
|
||||||
|
return View(APIClient.GetRequest<List<OrderInfoViewModel>>($"api/orderinfo/getorderinfolistbyuser?userId={APIClient.User.Id}"));
|
||||||
|
}
|
||||||
|
[HttpPost]
|
||||||
|
public void DeleteOrder(int order)
|
||||||
|
{
|
||||||
|
if (APIClient.User == null)
|
||||||
|
{
|
||||||
|
throw new Exception("Вы как суда попали? Суда вход только авторизованным");
|
||||||
|
}
|
||||||
|
APIClient.PostRequest("api/orderinfo/deleteorderinfo", new OrderInfoBindingModel
|
||||||
|
{
|
||||||
|
Id = order,
|
||||||
|
});
|
||||||
|
Response.Redirect("Orders");
|
||||||
|
}
|
||||||
|
[HttpGet]
|
||||||
|
public IActionResult AddSetInOrder()
|
||||||
|
{
|
||||||
|
if (APIClient.User == null)
|
||||||
|
{
|
||||||
|
return Redirect("~/Home/Enter");
|
||||||
|
}
|
||||||
|
return View(Tuple.Create(APIClient.GetRequest<List<OrderInfoViewModel>>($"api/orderinfo/getorderinfolistbyuser?userId={APIClient.User.Id}"), APIClient.GetRequest<List<SetViewModel>>($"api/set/getsetlistbyuser?userId={APIClient.User.Id}")));
|
||||||
|
}
|
||||||
|
[HttpPost]
|
||||||
|
public void AddSetInOrder(int order, int[] setIds, int[] counts)
|
||||||
|
{
|
||||||
|
if (APIClient.User == null)
|
||||||
|
{
|
||||||
|
throw new Exception("Вы как суда попали? Суда вход только авторизованным");
|
||||||
|
}
|
||||||
|
if (setIds != null && counts != null && counts.Length > 0 && counts.Length == setIds.Length)
|
||||||
|
{
|
||||||
|
for (int i = 0; i < counts.Length; i++)
|
||||||
|
{
|
||||||
|
if (counts[i] <= 0)
|
||||||
|
{
|
||||||
|
throw new Exception("Количество должно быть больше 0");
|
||||||
|
}
|
||||||
|
APIClient.PostRequest("api/order/addsetinorder", Tuple.Create(
|
||||||
|
new OrderInfoSearchModel() { Id = order },
|
||||||
|
new SetSearchModel() { Id = setIds[i] },
|
||||||
|
counts[i]
|
||||||
|
));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Response.Redirect("Orders");
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
@ -0,0 +1,79 @@
|
|||||||
|
@using FurnitureAssemblyContracts.ViewModels;
|
||||||
|
@using FurnitureAssemblyDataModels.Models;
|
||||||
|
|
||||||
|
@model Tuple<List<SetViewModel>, List<FurnitureModuleViewModel>>
|
||||||
|
|
||||||
|
@{
|
||||||
|
ViewData["Title"] = "Добавление мебельных модулей в гарнитур";
|
||||||
|
}
|
||||||
|
<div class="text-center">
|
||||||
|
<h2 class="display-4">Добавление мебельных модулей в гарнитур</h2>
|
||||||
|
</div>
|
||||||
|
<form method="post">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-4">Гарнитур:</div>
|
||||||
|
<div class="col-8">
|
||||||
|
<select id="set" name="set" class="form-control">
|
||||||
|
@foreach (var set in Model.Item1)
|
||||||
|
{
|
||||||
|
<option value="@set.Id">
|
||||||
|
@Html.DisplayFor(modelItem => set.Name)
|
||||||
|
</option>
|
||||||
|
}
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-4">Мебельные модули:</div>
|
||||||
|
<div class="col-8">
|
||||||
|
<table class="table">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>
|
||||||
|
|
||||||
|
</th>
|
||||||
|
<th>
|
||||||
|
Название
|
||||||
|
</th>
|
||||||
|
<th>
|
||||||
|
Стоимость
|
||||||
|
</th>
|
||||||
|
<th>
|
||||||
|
Дата создания
|
||||||
|
</th>
|
||||||
|
<th>
|
||||||
|
Количество
|
||||||
|
</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
@foreach (var furnitureModule in Model.Item2)
|
||||||
|
{
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<input type="checkbox" class="form-check-input" name="furnitureModuleIds[]" value="@furnitureModule.Id" id="@furnitureModule.Id">
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
@Html.DisplayFor(modelItem => furnitureModule.Name)
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
@Html.DisplayFor(modelItem => furnitureModule.Cost)
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
@Html.DisplayFor(modelItem => furnitureModule.DateCreate)
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<input type="text" id="@furnitureModule.Id:count" name="counts[]" />
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
}
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</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>
|
@ -0,0 +1,79 @@
|
|||||||
|
@using FurnitureAssemblyContracts.ViewModels;
|
||||||
|
@using FurnitureAssemblyDataModels.Models;
|
||||||
|
|
||||||
|
@model Tuple<List<OrderInfoViewModel>, List<SetViewModel>>
|
||||||
|
|
||||||
|
@{
|
||||||
|
ViewData["Title"] = "Добавление гарнитур в заказ";
|
||||||
|
}
|
||||||
|
<div class="text-center">
|
||||||
|
<h2 class="display-4">Добавление гарнитур в заказ</h2>
|
||||||
|
</div>
|
||||||
|
<form method="post">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-4">Заказ:</div>
|
||||||
|
<div class="col-8">
|
||||||
|
<select id="order" name="order" class="form-control">
|
||||||
|
@foreach (var order in Model.Item1)
|
||||||
|
{
|
||||||
|
<option value="@order.Id">
|
||||||
|
@Html.DisplayFor(modelItem => order.Id)
|
||||||
|
</option>
|
||||||
|
}
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-4">Гарнитуры:</div>
|
||||||
|
<div class="col-8">
|
||||||
|
<table class="table">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>
|
||||||
|
|
||||||
|
</th>
|
||||||
|
<th>
|
||||||
|
Название
|
||||||
|
</th>
|
||||||
|
<th>
|
||||||
|
Стоимость
|
||||||
|
</th>
|
||||||
|
<th>
|
||||||
|
Дата создания
|
||||||
|
</th>
|
||||||
|
<th>
|
||||||
|
Количество
|
||||||
|
</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
@foreach (var set in Model.Item2)
|
||||||
|
{
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<input type="checkbox" class="form-check-input" name="setIds[]" value="@set.Id" id="@set.Id">
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
@Html.DisplayFor(modelItem => set.Name)
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
@Html.DisplayFor(modelItem => set.Cost)
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
@Html.DisplayFor(modelItem => set.DateCreate)
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<input type="text" id="@set.Id:count" name="counts[]" />
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
}
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</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>
|
@ -0,0 +1,20 @@
|
|||||||
|
@{
|
||||||
|
ViewData["Title"] = "Создание мебельного модуля";
|
||||||
|
}
|
||||||
|
<div class="text-center">
|
||||||
|
<h2 class="display-4">Создание мебельного модуля</h2>
|
||||||
|
</div>
|
||||||
|
<form method="post">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-4">Название:</div>
|
||||||
|
<div class="col-8"><input type="text" name="name" id="name" /></div>
|
||||||
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-4">Стоимость:</div>
|
||||||
|
<div class="col-8"><input type="text" name="cost" id="cost" /></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>
|
@ -0,0 +1,74 @@
|
|||||||
|
@using FurnitureAssemblyContracts.ViewModels;
|
||||||
|
@using FurnitureAssemblyDataModels.Enums;
|
||||||
|
|
||||||
|
@model List<SetViewModel>
|
||||||
|
|
||||||
|
@{
|
||||||
|
ViewData["Title"] = "Создание заказа";
|
||||||
|
}
|
||||||
|
<div class="text-center">
|
||||||
|
<h2 class="display-4">Создание заказа</h2>
|
||||||
|
</div>
|
||||||
|
<form method="post">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-4">Имя заказчика:</div>
|
||||||
|
<div class="col-8"><input type="text" name="name" id="name" /></div>
|
||||||
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-4">Тип оплаты:</div>
|
||||||
|
<div class="col-8">
|
||||||
|
<select name="paymentType">
|
||||||
|
<option id="@PaymentType.Картой" selected value="@PaymentType.Картой">Картой</option>
|
||||||
|
<option id="@PaymentType.Наличными" value="@PaymentType.Наличными">Наличными</option>
|
||||||
|
<option id="@PaymentType.Смешанный" value="@PaymentType.Смешанный">Смешанный</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<table class="table">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>
|
||||||
|
|
||||||
|
</th>
|
||||||
|
<th>
|
||||||
|
Название
|
||||||
|
</th>
|
||||||
|
<th>
|
||||||
|
Стоимость
|
||||||
|
</th>
|
||||||
|
<th>
|
||||||
|
Дата создания
|
||||||
|
</th>
|
||||||
|
<th>
|
||||||
|
Количество
|
||||||
|
</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
@foreach (var item in Model)
|
||||||
|
{
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<input type="checkbox" class="form-check-input" name="setIds[]" value="@item.Id" id="@item.Id">
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
@Html.DisplayFor(modelItem => item.Name)
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
@Html.DisplayFor(modelItem => item.Cost)
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
@Html.DisplayFor(modelItem => item.DateCreate)
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<input type="text" id="@item.Id:count" name="counts[]" />
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
}
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-8"></div>
|
||||||
|
<div class="col-4"><input type="submit" value="Создать" class="btn btn-primary" /></div>
|
||||||
|
</div>
|
||||||
|
</form>
|
@ -0,0 +1,27 @@
|
|||||||
|
@using FurnitureAssemblyContracts.ViewModels;
|
||||||
|
@{
|
||||||
|
ViewData["Title"] = "Удаление мебельного модуля";
|
||||||
|
}
|
||||||
|
@model List<FurnitureModuleViewModel>
|
||||||
|
<div class="text-center">
|
||||||
|
<h2 class="display-4">Удаление мебельного модуля</h2>
|
||||||
|
</div>
|
||||||
|
<form method="post">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-4">Выбранный мебельного модуля:</div>
|
||||||
|
<div class="col-8">
|
||||||
|
<select id="furnitureModule" name="furnitureModule" class="form-control">
|
||||||
|
@foreach (var item in Model)
|
||||||
|
{
|
||||||
|
<option value="@item.Id">
|
||||||
|
@Html.DisplayFor(modelItem => item.Name)
|
||||||
|
</option>
|
||||||
|
}
|
||||||
|
</select>
|
||||||
|
</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>
|
@ -0,0 +1,27 @@
|
|||||||
|
@using FurnitureAssemblyContracts.ViewModels;
|
||||||
|
@{
|
||||||
|
ViewData["Title"] = "Удаление заказа";
|
||||||
|
}
|
||||||
|
@model List<OrderInfoViewModel>
|
||||||
|
<div class="text-center">
|
||||||
|
<h2 class="display-4">Удаление заказа</h2>
|
||||||
|
</div>
|
||||||
|
<form method="post">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-4">Выбранный заказ:</div>
|
||||||
|
<div class="col-8">
|
||||||
|
<select id="order" name="order" class="form-control">
|
||||||
|
@foreach (var item in Model)
|
||||||
|
{
|
||||||
|
<option value="@item.Id">
|
||||||
|
@Html.DisplayFor(modelItem => item.Id)
|
||||||
|
</option>
|
||||||
|
}
|
||||||
|
</select>
|
||||||
|
</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>
|
@ -0,0 +1,64 @@
|
|||||||
|
@using FurnitureAssemblyContracts.ViewModels
|
||||||
|
|
||||||
|
@model List<FurnitureModuleViewModel>
|
||||||
|
|
||||||
|
@{
|
||||||
|
ViewData["Title"] = "Формирование мебельнго модуля";
|
||||||
|
}
|
||||||
|
|
||||||
|
<div class="text-center">
|
||||||
|
<h1 class="display-4">Мебельные модули</h1>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="text-center">
|
||||||
|
@{
|
||||||
|
if (Model == null)
|
||||||
|
{
|
||||||
|
<h3 class="display-4">Авторизируйтесь</h3>
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<a asp-action="CreateFurnitureModule">Создать мебельный модуль</a>
|
||||||
|
<a asp-action="UpdateFurnitureModule">Обновить мебельный модуль</a>
|
||||||
|
<a asp-action="DeleteFurnitureModule">Удалить мебельный модуль</a>
|
||||||
|
</div>
|
||||||
|
<table class="table">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>
|
||||||
|
Номер
|
||||||
|
</th>
|
||||||
|
<th>
|
||||||
|
Название
|
||||||
|
</th>
|
||||||
|
<th>
|
||||||
|
Стоимость
|
||||||
|
</th>
|
||||||
|
<th>
|
||||||
|
Дата создания
|
||||||
|
</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
@foreach (var item in Model)
|
||||||
|
{
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
@Html.DisplayFor(modelItem => item.Id)
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
@Html.DisplayFor(modelItem => item.Name)
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
@Html.DisplayFor(modelItem => item.Cost)
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
@Html.DisplayFor(modelItem => item.DateCreate)
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
}
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
}
|
||||||
|
</div>
|
@ -0,0 +1,71 @@
|
|||||||
|
@using FurnitureAssemblyContracts.ViewModels
|
||||||
|
|
||||||
|
@model List<OrderInfoViewModel>
|
||||||
|
|
||||||
|
@{
|
||||||
|
ViewData["Title"] = "Формирование заказов";
|
||||||
|
}
|
||||||
|
|
||||||
|
<div class="text-center">
|
||||||
|
<h1 class="display-4">Заказы</h1>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="text-center">
|
||||||
|
@{
|
||||||
|
if (Model == null)
|
||||||
|
{
|
||||||
|
<h3 class="display-4">Авторизируйтесь</h3>
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<a asp-action="CreateOrder">Создать заказ</a>
|
||||||
|
<a asp-action="UpdateOrder">Обновить заказ</a>
|
||||||
|
<a asp-action="DeleteOrder">Удалить заказ</a>
|
||||||
|
<a asp-action="AddSetInOrder">Добавить гарнитур в заказ</a>
|
||||||
|
</div>
|
||||||
|
<table class="table">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>
|
||||||
|
Номер
|
||||||
|
</th>
|
||||||
|
<th>
|
||||||
|
Имя заказчика
|
||||||
|
</th>
|
||||||
|
<th>
|
||||||
|
Дата создания
|
||||||
|
</th>
|
||||||
|
<th>
|
||||||
|
Тип оплаты
|
||||||
|
</th>
|
||||||
|
<th>
|
||||||
|
Сумма
|
||||||
|
</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
@foreach (var item in Model)
|
||||||
|
{
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
@Html.DisplayFor(modelItem => item.Id)
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
@Html.DisplayFor(modelItem => item.CustomerName)
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
@Html.DisplayFor(modelItem => item.DateCreate)
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
@Html.DisplayFor(modelItem => item.PaymentType)
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
@Html.DisplayFor(modelItem => item.Sum)
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
}
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
}
|
||||||
|
</div>
|
@ -0,0 +1,65 @@
|
|||||||
|
@using FurnitureAssemblyContracts.ViewModels
|
||||||
|
|
||||||
|
@model List<FurnitureModuleViewModel>
|
||||||
|
|
||||||
|
@{
|
||||||
|
ViewData["Title"] = "Изменение мебельного модуля";
|
||||||
|
}
|
||||||
|
<div class="text-center">
|
||||||
|
<h2 class="display-4">Изменение мебельного модуля</h2>
|
||||||
|
</div>
|
||||||
|
<form method="post">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-4">Мебельный модуль:</div>
|
||||||
|
<div class="col-8">
|
||||||
|
<select id="furnitureModule" name="furnitureModule" class="form-control">
|
||||||
|
@foreach (var item in Model)
|
||||||
|
{
|
||||||
|
<option value="@item.Id">
|
||||||
|
@Html.DisplayFor(modelItem => item.Name)
|
||||||
|
</option>
|
||||||
|
}
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-4">Название:</div>
|
||||||
|
<div class="col-8"><input type="text" name="name" id="name" /></div>
|
||||||
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-4">Стоимость:</div>
|
||||||
|
<div class="col-8"><input type="text" name="cost" id="cost" /></div>
|
||||||
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-4">Дата создания:</div>
|
||||||
|
<div class="col-8"><input type="datetime-local" id="dateCreate" name="dateCreate" /></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>
|
||||||
|
|
||||||
|
@section Scripts {
|
||||||
|
<script>
|
||||||
|
function check() {
|
||||||
|
var furnitureModule = $('#furnitureModule').val();
|
||||||
|
if (furnitureModule) {
|
||||||
|
$.ajax({
|
||||||
|
method: "GET",
|
||||||
|
url: "/Home/GetFurnitureModule",
|
||||||
|
data: { furnitureModuleId: furnitureModule },
|
||||||
|
success: function (result) {
|
||||||
|
if (result != null) {
|
||||||
|
$('#name').val(result.name);
|
||||||
|
$('#cost').val(result.cost);
|
||||||
|
$('#dateCreate').val(new Date(result.dateCreate).toISOString().split(".")[0].substr(0, 16));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
};
|
||||||
|
}
|
||||||
|
check();
|
||||||
|
$('#furnitureModule').on('change', (e) => check());
|
||||||
|
</script>
|
||||||
|
}
|
@ -0,0 +1,93 @@
|
|||||||
|
@using FurnitureAssemblyContracts.ViewModels
|
||||||
|
@using FurnitureAssemblyDataModels.Enums;
|
||||||
|
|
||||||
|
@model List<OrderInfoViewModel>
|
||||||
|
|
||||||
|
@{
|
||||||
|
ViewData["Title"] = "Изменение заказа";
|
||||||
|
}
|
||||||
|
<div class="text-center">
|
||||||
|
<h2 class="display-4">Изменение заказа</h2>
|
||||||
|
</div>
|
||||||
|
<form method="post">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-4">Заказ:</div>
|
||||||
|
<div class="col-8">
|
||||||
|
<select id="order" name="order" class="form-control">
|
||||||
|
@foreach (var item in Model)
|
||||||
|
{
|
||||||
|
<option value="@item.Id">
|
||||||
|
@Html.DisplayFor(modelItem => item.Id)
|
||||||
|
</option>
|
||||||
|
}
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-4">Имя клиента:</div>
|
||||||
|
<div class="col-8"><input type="text" name="name" id="name" /></div>
|
||||||
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-4">Тип оплаты:</div>
|
||||||
|
<div class="col-8">
|
||||||
|
<select name="paymentType" id="paymentType">
|
||||||
|
<option id="1" value="1">Картой</option>
|
||||||
|
<option id="0" value="0">Наличными</option>
|
||||||
|
<option id="2" value="2">Смешанный</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-4">Дата создания:</div>
|
||||||
|
<div class="col-8"><input type="datetime-local" id="dateCreate" name="dateCreate" /></div>
|
||||||
|
</div>
|
||||||
|
<input type="text" id="sum" name="sum" style="visibility: hidden;" />
|
||||||
|
<table class="table">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>
|
||||||
|
Название гарнитура
|
||||||
|
</th>
|
||||||
|
<th>
|
||||||
|
Стоимость
|
||||||
|
</th>
|
||||||
|
<th>
|
||||||
|
Количество
|
||||||
|
</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody id="sets-table">
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-8"></div>
|
||||||
|
<div class="col-4"><input type="submit" value="Изменить" class="btn btn-primary" /></div>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
|
||||||
|
@section Scripts {
|
||||||
|
<script>
|
||||||
|
function check() {
|
||||||
|
var order = $('#order').val();
|
||||||
|
if (order) {
|
||||||
|
$.ajax({
|
||||||
|
method: "GET",
|
||||||
|
url: "/Home/GetOrderWithSets",
|
||||||
|
data: { orderId: order },
|
||||||
|
success: function (result) {
|
||||||
|
if (result != null) {
|
||||||
|
console.log(result);
|
||||||
|
$('#name').val(result.item1.customerName);
|
||||||
|
$('#paymentType').val(result.item1.paymentType).change();
|
||||||
|
$('#sum').val(result.item1.sum);
|
||||||
|
$('#dateCreate').val(new Date(result.item1.dateCreate).toISOString().split(".")[0].substr(0, 16));
|
||||||
|
$('#sets-table').html(result.item2);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
};
|
||||||
|
}
|
||||||
|
check();
|
||||||
|
$('#order').on('change', (e) => check());
|
||||||
|
</script>
|
||||||
|
}
|
@ -64,13 +64,13 @@
|
|||||||
if (set) {
|
if (set) {
|
||||||
$.ajax({
|
$.ajax({
|
||||||
method: "GET",
|
method: "GET",
|
||||||
url: "/Home/GetShopWithManufactures",
|
url: "/Home/GetSetWithFurnitureModules",
|
||||||
data: { setId: set },
|
data: { setId: set },
|
||||||
success: function (result) {
|
success: function (result) {
|
||||||
if (result != null) {
|
if (result != null) {
|
||||||
$('#name').val(result.item1.name);
|
$('#name').val(result.item1.name);
|
||||||
$('#cost').val(result.item1.cost);
|
$('#cost').val(result.item1.cost);
|
||||||
$('#dateCreate').val(result.item1.dateCreate);
|
$('#dateCreate').val(new Date(result.item1.dateCreate).toISOString().split(".")[0].substr(0, 16));
|
||||||
$('#furnitureModules-table').html(result.item2);
|
$('#furnitureModules-table').html(result.item2);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -6,10 +6,9 @@
|
|||||||
<title>@ViewData["Title"] - FurnitureAssemblyWorkerClientApp</title>
|
<title>@ViewData["Title"] - FurnitureAssemblyWorkerClientApp</title>
|
||||||
<link rel="stylesheet" href="~/lib/bootstrap/dist/css/bootstrap.min.css" />
|
<link rel="stylesheet" href="~/lib/bootstrap/dist/css/bootstrap.min.css" />
|
||||||
<link rel="stylesheet" href="~/css/site.css" asp-append-version="true" />
|
<link rel="stylesheet" href="~/css/site.css" asp-append-version="true" />
|
||||||
<link rel="stylesheet" href="~/BlacksmithWorkshopClientApp.styles.css" asp-append-version="true" />
|
<link rel="stylesheet" href="~/FurnitureAssemblyClientApp.styles.css" asp-append-version="true" />
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
@await RenderSectionAsync("Scripts", required: false)
|
|
||||||
<header>
|
<header>
|
||||||
<nav class="navbar navbar-expand-sm navbar-toggleable-sm navbar-light bg-white border-bottom box-shadow mb-3">
|
<nav class="navbar navbar-expand-sm navbar-toggleable-sm navbar-light bg-white border-bottom box-shadow mb-3">
|
||||||
<div class="container-fluid">
|
<div class="container-fluid">
|
||||||
@ -35,9 +34,18 @@
|
|||||||
<li class="nav-item">
|
<li class="nav-item">
|
||||||
<a class="nav-link text-dark" asp-area="" asp-controller="Home" asp-action="Sets">Гарнитуры</a>
|
<a class="nav-link text-dark" asp-area="" asp-controller="Home" asp-action="Sets">Гарнитуры</a>
|
||||||
</li>
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link text-dark" asp-area="" asp-controller="Home" asp-action="FurnitureModules">Мебельные модули</a>
|
||||||
|
</li>
|
||||||
<li class="nav-item">
|
<li class="nav-item">
|
||||||
<a class="nav-link text-dark" asp-area="" asp-controller="Home" asp-action="ListSetsFurnitureModulesToFile">Получение списка</a>
|
<a class="nav-link text-dark" asp-area="" asp-controller="Home" asp-action="ListSetsFurnitureModulesToFile">Получение списка</a>
|
||||||
</li>
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link text-dark" asp-area="" asp-controller="Home" asp-action="AddFurnitureModulesInSet">Добавление мебельных модулей в гарнитуру</a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link text-dark" asp-area="" asp-controller="Home" asp-action="Orders">Заказы</a>
|
||||||
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -57,5 +65,6 @@
|
|||||||
<script src="~/lib/jquery/dist/jquery.min.js"></script>
|
<script src="~/lib/jquery/dist/jquery.min.js"></script>
|
||||||
<script src="~/lib/bootstrap/dist/js/bootstrap.bundle.min.js"></script>
|
<script src="~/lib/bootstrap/dist/js/bootstrap.bundle.min.js"></script>
|
||||||
<script src="~/js/site.js" asp-append-version="true"></script>
|
<script src="~/js/site.js" asp-append-version="true"></script>
|
||||||
|
@await RenderSectionAsync("Scripts", required: false)
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
Loading…
Reference in New Issue
Block a user