Подправил слой базы данных
This commit is contained in:
parent
a141bd778e
commit
ea3aa4bf96
@ -9,7 +9,7 @@ namespace ComputerShopDatabaseImplement
|
|||||||
{
|
{
|
||||||
if (!OptionsBuilder.IsConfigured)
|
if (!OptionsBuilder.IsConfigured)
|
||||||
{
|
{
|
||||||
OptionsBuilder.UseNpgsql(@"Host=localhost;Database=ComputerShop;Username=postgres;Password=admin");
|
OptionsBuilder.UseNpgsql(@"Host=localhost;Port=5000;Database=ComputerShop;Username=postgres;Password=admin");
|
||||||
}
|
}
|
||||||
|
|
||||||
base.OnConfiguring(OptionsBuilder);
|
base.OnConfiguring(OptionsBuilder);
|
||||||
|
@ -14,7 +14,6 @@ using System.Threading.Tasks;
|
|||||||
namespace ComputerShopDatabaseImplement.Implements
|
namespace ComputerShopDatabaseImplement.Implements
|
||||||
{
|
{
|
||||||
//!!!ПОДОБИЕ component
|
//!!!ПОДОБИЕ component
|
||||||
//!!! ДОПИСАТЬ
|
|
||||||
public class OrderStorage : IOrderStorage
|
public class OrderStorage : IOrderStorage
|
||||||
{
|
{
|
||||||
//!!!ТУТ СВЯЗЬ С НЕСКОЛЬКИМИ СУЩНОСТЯМИ
|
//!!!ТУТ СВЯЗЬ С НЕСКОЛЬКИМИ СУЩНОСТЯМИ
|
||||||
@ -32,10 +31,13 @@ namespace ComputerShopDatabaseImplement.Implements
|
|||||||
.Select(x => x.GetViewModel)
|
.Select(x => x.GetViewModel)
|
||||||
.ToList();
|
.ToList();
|
||||||
}
|
}
|
||||||
|
|
||||||
//!!!ПРОВЕРИТЬ
|
//!!!ПРОВЕРИТЬ
|
||||||
|
//Учитывается id пользователя (везде получение списка только тех записей, что создал сам пользователь)
|
||||||
public List<OrderViewModel> GetFilteredList(OrderSearchModel model)
|
public List<OrderViewModel> GetFilteredList(OrderSearchModel model)
|
||||||
{
|
{
|
||||||
using var context = new ComputerShopDatabase();
|
using var context = new ComputerShopDatabase();
|
||||||
|
//сортировка по дате создания
|
||||||
if (model.DateFrom.HasValue && model.DateTo.HasValue)
|
if (model.DateFrom.HasValue && model.DateTo.HasValue)
|
||||||
{
|
{
|
||||||
return context.Orders
|
return context.Orders
|
||||||
@ -48,6 +50,7 @@ namespace ComputerShopDatabaseImplement.Implements
|
|||||||
.Select(x => x.GetViewModel)
|
.Select(x => x.GetViewModel)
|
||||||
.ToList();
|
.ToList();
|
||||||
}
|
}
|
||||||
|
//сортировка по статусу
|
||||||
else if (model.Status.HasValue)
|
else if (model.Status.HasValue)
|
||||||
{
|
{
|
||||||
return context.Orders
|
return context.Orders
|
||||||
@ -71,7 +74,9 @@ namespace ComputerShopDatabaseImplement.Implements
|
|||||||
.Select(x => x.GetViewModel)
|
.Select(x => x.GetViewModel)
|
||||||
.ToList();
|
.ToList();
|
||||||
}
|
}
|
||||||
|
|
||||||
//!!!ПРОВЕРИТЬ
|
//!!!ПРОВЕРИТЬ
|
||||||
|
//Поиск только по id, потому что другие поля не уникальные - нет смысла искать 1 элемент
|
||||||
public OrderViewModel? GetElement(OrderSearchModel model)
|
public OrderViewModel? GetElement(OrderSearchModel model)
|
||||||
{
|
{
|
||||||
if (!model.Id.HasValue)
|
if (!model.Id.HasValue)
|
||||||
@ -113,6 +118,7 @@ namespace ComputerShopDatabaseImplement.Implements
|
|||||||
return order.GetViewModel;
|
return order.GetViewModel;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//!!!МБ ТУТ ДЕЛАТЬ .Include(x => x.Shipments) и .Include(x => x.Requests)
|
||||||
public OrderViewModel? Delete(OrderBindingModel model)
|
public OrderViewModel? Delete(OrderBindingModel model)
|
||||||
{
|
{
|
||||||
using var context = new ComputerShopDatabase();
|
using var context = new ComputerShopDatabase();
|
||||||
|
@ -15,7 +15,7 @@ namespace ComputerShopDatabaseImplement.Implements
|
|||||||
//!!!ПОДОБИЕ textile
|
//!!!ПОДОБИЕ textile
|
||||||
public class RequestStorage : IRequestStorage
|
public class RequestStorage : IRequestStorage
|
||||||
{
|
{
|
||||||
//!!!КАК ПРИСОЕДИНИТЬ СБОРКУ И НАДО ЛИ?
|
//!!!Проверить, что правильно присоединяю сборку Assembly
|
||||||
public List<RequestViewModel> GetFullList()
|
public List<RequestViewModel> GetFullList()
|
||||||
{
|
{
|
||||||
using var context = new ComputerShopDatabase();
|
using var context = new ComputerShopDatabase();
|
||||||
@ -28,14 +28,16 @@ namespace ComputerShopDatabaseImplement.Implements
|
|||||||
.ToList();
|
.ToList();
|
||||||
}
|
}
|
||||||
|
|
||||||
//!!!тут добавил .Include(x => x.Assembly)
|
//!!!Проверить, что правильно присоединяю сборку Assembly
|
||||||
|
//Учитывается id пользователя (везде получение списка только тех записей, что создал сам пользователь)
|
||||||
public List<RequestViewModel> GetFilteredList(RequestSearchModel model) {
|
public List<RequestViewModel> GetFilteredList(RequestSearchModel model) {
|
||||||
using var context = new ComputerShopDatabase();
|
using var context = new ComputerShopDatabase();
|
||||||
|
|
||||||
|
//сортировка по дате создания заявки
|
||||||
if (model.DateFrom.HasValue && model.DateTo.HasValue)
|
if (model.DateFrom.HasValue && model.DateTo.HasValue)
|
||||||
{
|
{
|
||||||
return context.Requests
|
return context.Requests
|
||||||
.Where(x => x.UserId == model.UserId && x.DateRequest >= model.DateFrom && x.DateRequest <= model.DateTo)
|
.Where(x => (x.UserId == model.UserId) && (x.DateRequest >= model.DateFrom && x.DateRequest <= model.DateTo))
|
||||||
.Include(x => x.Orders)
|
.Include(x => x.Orders)
|
||||||
.ThenInclude(x => x.Order)
|
.ThenInclude(x => x.Order)
|
||||||
.Include(x => x.Assembly)
|
.Include(x => x.Assembly)
|
||||||
@ -43,7 +45,7 @@ namespace ComputerShopDatabaseImplement.Implements
|
|||||||
.ToList();
|
.ToList();
|
||||||
}
|
}
|
||||||
|
|
||||||
//Получение заявок по сборкам
|
//сортировка по сборке (сборка может участвовать в нескольких заявках)
|
||||||
else if (model.AssemblyId.HasValue)
|
else if (model.AssemblyId.HasValue)
|
||||||
{
|
{
|
||||||
return context.Requests
|
return context.Requests
|
||||||
@ -55,6 +57,7 @@ namespace ComputerShopDatabaseImplement.Implements
|
|||||||
.ToList();
|
.ToList();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//сортировка по фио клиента, для которого создана заявка
|
||||||
else if (!string.IsNullOrEmpty(model.ClientFIO))
|
else if (!string.IsNullOrEmpty(model.ClientFIO))
|
||||||
{
|
{
|
||||||
return context.Requests
|
return context.Requests
|
||||||
@ -76,19 +79,21 @@ namespace ComputerShopDatabaseImplement.Implements
|
|||||||
.ToList();
|
.ToList();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//!!!Проверить, что правильно присоединяю сборку Assembly
|
||||||
//!!!мб тут надо будет в FirstOrDefault добавить другие параметры
|
//!!!мб тут надо будет в FirstOrDefault добавить другие параметры
|
||||||
|
//Поиск только по id, потому что другие поля не уникальные - нет смысла искать 1 элемент
|
||||||
public RequestViewModel? GetElement(RequestSearchModel model)
|
public RequestViewModel? GetElement(RequestSearchModel model)
|
||||||
{
|
{
|
||||||
if (!model.Id.HasValue && !model.DateFrom.HasValue && !model.DateTo.HasValue && !model.AssemblyId.HasValue && string.IsNullOrEmpty(model.ClientFIO))
|
if (!model.Id.HasValue)
|
||||||
{
|
{
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
using var context = new ComputerShopDatabase();
|
using var context = new ComputerShopDatabase();
|
||||||
return context.Requests
|
return context.Requests
|
||||||
.Where(x => x.UserId == model.UserId)
|
|
||||||
.Include(x => x.Orders)
|
.Include(x => x.Orders)
|
||||||
.ThenInclude(x => x.Order)
|
.ThenInclude(x => x.Order)
|
||||||
.FirstOrDefault(x => (model.Id.HasValue && x.Id == model.Id))
|
.Include(x => x.Assembly)
|
||||||
|
.FirstOrDefault(x => x.Id == model.Id)
|
||||||
?.GetViewModel;
|
?.GetViewModel;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -102,10 +107,6 @@ namespace ComputerShopDatabaseImplement.Implements
|
|||||||
}
|
}
|
||||||
context.Requests.Add(newRequest);
|
context.Requests.Add(newRequest);
|
||||||
context.SaveChanges();
|
context.SaveChanges();
|
||||||
|
|
||||||
//!!!мб тут вернуть другое значение
|
|
||||||
//!!!МБ ТУТ НЕЛЬЗЯ WHERE первым
|
|
||||||
//!!!мб тут и не надо where по пользователю (попробовать потом без него)
|
|
||||||
return newRequest.GetViewModel;
|
return newRequest.GetViewModel;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -133,7 +134,6 @@ namespace ComputerShopDatabaseImplement.Implements
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//!!!мб возвращать не просто request.getviewmodel
|
|
||||||
public RequestViewModel? Delete(RequestBindingModel model)
|
public RequestViewModel? Delete(RequestBindingModel model)
|
||||||
{
|
{
|
||||||
using var context = new ComputerShopDatabase();
|
using var context = new ComputerShopDatabase();
|
||||||
|
@ -29,42 +29,21 @@ namespace ComputerShopDatabaseImplement.Implements
|
|||||||
.ToList();
|
.ToList();
|
||||||
}
|
}
|
||||||
|
|
||||||
//!!!МБ ТУТ ВСЁ ВРЕМЯ НАДО БУДЕТ УЧИТЫВАТЬ UserID
|
//Учитывается id пользователя, создавшего заказ
|
||||||
public List<ShipmentViewModel> GetFilteredList(ShipmentSearchModel model)
|
public List<ShipmentViewModel> GetFilteredList(ShipmentSearchModel model)
|
||||||
{
|
{
|
||||||
using var context = new ComputerShopDatabase();
|
using var context = new ComputerShopDatabase();
|
||||||
if (model.Id.HasValue && !model.DateFrom.HasValue && !model.DateTo.HasValue && string.IsNullOrEmpty(model.ProviderName))
|
//сортировка по дате поставки
|
||||||
|
if (model.DateFrom.HasValue && model.DateTo.HasValue)
|
||||||
{
|
{
|
||||||
return context.Shipments
|
return context.Shipments
|
||||||
.Where(x => x.UserId == model.Id)
|
.Where(x => (x.UserId == model.UserId) && (x.DateShipment >= model.DateFrom && x.DateShipment <= model.DateTo))
|
||||||
.Include(x => x.Orders)
|
.Include(x => x.Orders)
|
||||||
.ThenInclude(x => x.Order)
|
.ThenInclude(x => x.Order)
|
||||||
.Select(x => x.GetViewModel)
|
.Select(x => x.GetViewModel)
|
||||||
.ToList();
|
.ToList();
|
||||||
}
|
}
|
||||||
//!!!мб добавить if (model.Id.HasValue)
|
//сортировка по поставщику
|
||||||
//!!!МБ WHERE НЕЛЬЗЯ СТАВИТЬ ПЕРВЫМ
|
|
||||||
else if (model.DateFrom.HasValue && model.DateTo.HasValue)
|
|
||||||
{
|
|
||||||
return context.Shipments
|
|
||||||
.Where(x => x.UserId == model.UserId)
|
|
||||||
.Include(x => x.Orders)
|
|
||||||
.ThenInclude(x => x.Order)
|
|
||||||
.Where(x => x.DateShipment >= model.DateFrom && x.DateShipment <= model.DateTo)
|
|
||||||
.Select(x => x.GetViewModel)
|
|
||||||
.ToList();
|
|
||||||
}
|
|
||||||
//!!!ВРЯД ЛИ ПРАВИЛЬНО (мб не надо include user)
|
|
||||||
//else if (model.UserId.HasValue)
|
|
||||||
//{
|
|
||||||
// return context.Shipments
|
|
||||||
// .Include(x => x.User)
|
|
||||||
// .Where(x => x.UserId == model.UserId)
|
|
||||||
// .Include(x => x.Orders)
|
|
||||||
// .ThenInclude(x => x.Order)
|
|
||||||
// .Select (x => x.GetViewModel)
|
|
||||||
// .ToList();
|
|
||||||
//}
|
|
||||||
else if (!string.IsNullOrEmpty(model.ProviderName))
|
else if (!string.IsNullOrEmpty(model.ProviderName))
|
||||||
{
|
{
|
||||||
return context.Shipments
|
return context.Shipments
|
||||||
@ -74,22 +53,27 @@ namespace ComputerShopDatabaseImplement.Implements
|
|||||||
.Select(x => x.GetViewModel)
|
.Select(x => x.GetViewModel)
|
||||||
.ToList();
|
.ToList();
|
||||||
}
|
}
|
||||||
return new();
|
//возвращение просто всех партий пользователя (замена GetFullList)
|
||||||
|
return context.Shipments
|
||||||
|
.Where(x => x.UserId == model.UserId)
|
||||||
|
.Include(x => x.Orders)
|
||||||
|
.ThenInclude(x => x.Order)
|
||||||
|
.Select(x => x.GetViewModel)
|
||||||
|
.ToList();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//Поиск только по id, потому что другие поля не уникальные - нет смысла искать 1 элемент
|
||||||
public ShipmentViewModel? GetElement(ShipmentSearchModel model)
|
public ShipmentViewModel? GetElement(ShipmentSearchModel model)
|
||||||
{
|
{
|
||||||
if (!model.Id.HasValue && !model.DateFrom.HasValue && !model.DateTo.HasValue && string.IsNullOrEmpty(model.ProviderName))
|
if (!model.Id.HasValue)
|
||||||
{
|
{
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
using var context = new ComputerShopDatabase();
|
using var context = new ComputerShopDatabase();
|
||||||
return context.Shipments
|
return context.Shipments
|
||||||
.Where(x => x.UserId == model.UserId)
|
|
||||||
.Include(x => x.Orders)
|
.Include(x => x.Orders)
|
||||||
.ThenInclude(x => x.Order)
|
.ThenInclude(x => x.Order)
|
||||||
.FirstOrDefault(x => (model.Id.HasValue && x.Id == model.Id)
|
.FirstOrDefault(x => x.Id == model.Id)
|
||||||
|| (!string.IsNullOrEmpty(model.ProviderName) && x.ProviderName == model.ProviderName))
|
|
||||||
?.GetViewModel;
|
?.GetViewModel;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -105,13 +89,7 @@ namespace ComputerShopDatabaseImplement.Implements
|
|||||||
context.Shipments.Add(newShipment);
|
context.Shipments.Add(newShipment);
|
||||||
context.SaveChanges();
|
context.SaveChanges();
|
||||||
|
|
||||||
//!!!мб тут вернуть другое значение
|
return newShipment.GetViewModel;
|
||||||
//!!!МБ ТУТ НЕЛЬЗЯ WHERE первым
|
|
||||||
return context.Shipments
|
|
||||||
.Where(x => x.UserId == model.UserId)
|
|
||||||
.Include(x => x.Orders)
|
|
||||||
.ThenInclude(x => x.Order)
|
|
||||||
.FirstOrDefault(x => x.Id == newShipment.Id)?.GetViewModel;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//!!!МБ возвращать что-то другое
|
//!!!МБ возвращать что-то другое
|
||||||
|
@ -12,6 +12,7 @@ using System.Threading.Tasks;
|
|||||||
|
|
||||||
namespace ComputerShopDatabaseImplement.Implements
|
namespace ComputerShopDatabaseImplement.Implements
|
||||||
{
|
{
|
||||||
|
//!!!МБ У USER ХРАНИТЬ СПИСКИ ВСЕХ СОЗДАННЫХ СУШНОСТЕЙ И ТОГДА ПРИ СОЗДАНИИ, УДАЛЕНИИ СУЩНОСТЕЙ ЕЩЁ СОЗДАВАТЬ И УДАЛЯТЬ ИЗ СПИСКА У ПОЛЬЗОВАТЕЛЯ
|
||||||
public class UserStorage : IUserStorage
|
public class UserStorage : IUserStorage
|
||||||
{
|
{
|
||||||
public List<UserViewModel> GetFullList()
|
public List<UserViewModel> GetFullList()
|
||||||
@ -32,6 +33,7 @@ namespace ComputerShopDatabaseImplement.Implements
|
|||||||
}
|
}
|
||||||
|
|
||||||
//!!!ПРОВЕРИТЬ
|
//!!!ПРОВЕРИТЬ
|
||||||
|
//id, почта и логин уникальны, можно получать по ним
|
||||||
public UserViewModel? GetElement(UserSearchModel model)
|
public UserViewModel? GetElement(UserSearchModel model)
|
||||||
{
|
{
|
||||||
if (string.IsNullOrEmpty(model.Login) && string.IsNullOrEmpty(model.Email) && !model.Id.HasValue)
|
if (string.IsNullOrEmpty(model.Login) && string.IsNullOrEmpty(model.Email) && !model.Id.HasValue)
|
||||||
@ -79,15 +81,16 @@ namespace ComputerShopDatabaseImplement.Implements
|
|||||||
return user.GetViewModel;
|
return user.GetViewModel;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//!!!МБ И НЕ НУЖЕН
|
||||||
public UserViewModel? Delete(UserBindingModel model)
|
public UserViewModel? Delete(UserBindingModel model)
|
||||||
{
|
{
|
||||||
using var context = new ComputerShopDatabase();
|
using var context = new ComputerShopDatabase();
|
||||||
var implementer = context.Users.FirstOrDefault(rec => rec.Id == model.Id);
|
var user = context.Users.FirstOrDefault(rec => rec.Id == model.Id);
|
||||||
if (implementer != null)
|
if (user != null)
|
||||||
{
|
{
|
||||||
context.Users.Remove(implementer);
|
context.Users.Remove(user);
|
||||||
context.SaveChanges();
|
context.SaveChanges();
|
||||||
return implementer.GetViewModel;
|
return user.GetViewModel;
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user