Compare commits
No commits in common. "0372fbc98987862939aba5e6732be4dde70a849a" and "75fc086f19b88cd0fb8a878e4377107bb3e55677" have entirely different histories.
0372fbc989
...
75fc086f19
@ -12,7 +12,7 @@
|
|||||||
<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">
|
||||||
<a class="navbar-brand" asp-area="" asp-controller="Home" asp-action="Index">Пиццерия</a>
|
<a class="navbar-brand" asp-area="" asp-controller="Home" asp-action="Index">Завод ЖБУ</a>
|
||||||
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target=".navbar-collapse" aria-controls="navbarSupportedContent"
|
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target=".navbar-collapse" aria-controls="navbarSupportedContent"
|
||||||
aria-expanded="false" aria-label="Toggle navigation">
|
aria-expanded="false" aria-label="Toggle navigation">
|
||||||
<span class="navbar-toggler-icon"></span>
|
<span class="navbar-toggler-icon"></span>
|
||||||
|
@ -9,17 +9,11 @@ namespace PizzeriaListImplement
|
|||||||
public List<Component> Components { get; set; }
|
public List<Component> Components { get; set; }
|
||||||
public List<Order> Orders { get; set; }
|
public List<Order> Orders { get; set; }
|
||||||
public List<Pizza> Pizzas { get; set; }
|
public List<Pizza> Pizzas { get; set; }
|
||||||
public List<MessageInfo> Messages { get; set; }
|
|
||||||
public List<Implementer> Implementers { get; set; }
|
|
||||||
public List<Client> Clients { get; set; }
|
|
||||||
private DataListSingleton()
|
private DataListSingleton()
|
||||||
{
|
{
|
||||||
Components = new List<Component>();
|
Components = new List<Component>();
|
||||||
Orders = new List<Order>();
|
Orders = new List<Order>();
|
||||||
Pizzas = new List<Pizza>();
|
Pizzas = new List<Pizza>();
|
||||||
Messages = new List<MessageInfo>();
|
|
||||||
Implementers = new List<Implementer>();
|
|
||||||
Clients = new List<Client>();
|
|
||||||
}
|
}
|
||||||
public static DataListSingleton GetInstance()
|
public static DataListSingleton GetInstance()
|
||||||
{
|
{
|
||||||
|
@ -1,99 +0,0 @@
|
|||||||
using PizzeriaContracts.BindingModels;
|
|
||||||
using PizzeriaContracts.SearchModels;
|
|
||||||
using PizzeriaContracts.StoragesContracts;
|
|
||||||
using PizzeriaContracts.ViewModels;
|
|
||||||
using PizzeriaListImplement.Models;
|
|
||||||
|
|
||||||
namespace PizzeriaListImplement.Implements
|
|
||||||
{
|
|
||||||
public class ClientStorage : IClientStorage
|
|
||||||
{
|
|
||||||
private readonly DataListSingleton _source;
|
|
||||||
public ClientStorage()
|
|
||||||
{
|
|
||||||
_source = DataListSingleton.GetInstance();
|
|
||||||
}
|
|
||||||
public List<ClientViewModel> GetFullList()
|
|
||||||
{
|
|
||||||
var result = new List<ClientViewModel>();
|
|
||||||
foreach (var client in _source.Clients)
|
|
||||||
{
|
|
||||||
result.Add(client.GetViewModel);
|
|
||||||
}
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
public List<ClientViewModel> GetFilteredList(ClientSearchModel model)
|
|
||||||
{
|
|
||||||
var result = new List<ClientViewModel>();
|
|
||||||
if (string.IsNullOrEmpty(model.ClientFIO))
|
|
||||||
{
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
foreach (var client in _source.Clients)
|
|
||||||
{
|
|
||||||
if (client.ClientFIO.Contains(model.ClientFIO))
|
|
||||||
{
|
|
||||||
result.Add(client.GetViewModel);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
public ClientViewModel? GetElement(ClientSearchModel model)
|
|
||||||
{
|
|
||||||
foreach (var client in _source.Clients)
|
|
||||||
{
|
|
||||||
if (model.Id.HasValue && model.Id == client.Id)
|
|
||||||
return client.GetViewModel;
|
|
||||||
if (!string.IsNullOrEmpty(model.Email) && !string.IsNullOrEmpty(model.Password) &&
|
|
||||||
client.Email.Equals(model.Email) && client.Password.Equals(model.Password))
|
|
||||||
return client.GetViewModel;
|
|
||||||
if (!string.IsNullOrEmpty(model.Email) && client.Email.Equals(model.Email))
|
|
||||||
return client.GetViewModel;
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
public ClientViewModel? Insert(ClientBindingModel model)
|
|
||||||
{
|
|
||||||
model.Id = 1;
|
|
||||||
foreach (var client in _source.Clients)
|
|
||||||
{
|
|
||||||
if (model.Id <= client.Id)
|
|
||||||
{
|
|
||||||
model.Id = client.Id + 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
var newClient = Client.Create(model);
|
|
||||||
if (newClient == null)
|
|
||||||
{
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
_source.Clients.Add(newClient);
|
|
||||||
return newClient.GetViewModel;
|
|
||||||
}
|
|
||||||
public ClientViewModel? Update(ClientBindingModel model)
|
|
||||||
{
|
|
||||||
foreach (var client in _source.Clients)
|
|
||||||
{
|
|
||||||
if (client.Id == model.Id)
|
|
||||||
{
|
|
||||||
client.Update(model);
|
|
||||||
return client.GetViewModel;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
public ClientViewModel? Delete(ClientBindingModel model)
|
|
||||||
{
|
|
||||||
for (int i = 0; i < _source.Clients.Count; ++i)
|
|
||||||
{
|
|
||||||
if (_source.Clients[i].Id == model.Id)
|
|
||||||
{
|
|
||||||
var element = _source.Clients[i];
|
|
||||||
_source.Clients.RemoveAt(i);
|
|
||||||
return element.GetViewModel;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,125 +0,0 @@
|
|||||||
using PizzeriaContracts.BindingModels;
|
|
||||||
using PizzeriaContracts.SearchModels;
|
|
||||||
using PizzeriaContracts.StoragesContracts;
|
|
||||||
using PizzeriaContracts.ViewModels;
|
|
||||||
|
|
||||||
namespace PizzeriaListImplement.Implements
|
|
||||||
{
|
|
||||||
public class ImplementerStorage : IImplementerStorage
|
|
||||||
{
|
|
||||||
private readonly DataListSingleton _source;
|
|
||||||
|
|
||||||
public ImplementerStorage()
|
|
||||||
{
|
|
||||||
_source = DataListSingleton.GetInstance();
|
|
||||||
}
|
|
||||||
|
|
||||||
public ImplementerViewModel? GetElement(ImplementerSearchModel model)
|
|
||||||
{
|
|
||||||
foreach (var x in _source.Implementers)
|
|
||||||
{
|
|
||||||
if (model.Id.HasValue && x.Id == model.Id)
|
|
||||||
{
|
|
||||||
return x.GetViewModel;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (model.ImplementerFIO != null && model.Password != null && x.ImplementerFIO.Equals(model.ImplementerFIO) && x.Password.Equals(model.Password))
|
|
||||||
{
|
|
||||||
return x.GetViewModel;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (model.ImplementerFIO != null && x.ImplementerFIO.Equals(model.ImplementerFIO))
|
|
||||||
{
|
|
||||||
return x.GetViewModel;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<ImplementerViewModel> GetFilteredList(ImplementerSearchModel model)
|
|
||||||
{
|
|
||||||
if (model == null)
|
|
||||||
{
|
|
||||||
return new();
|
|
||||||
}
|
|
||||||
|
|
||||||
List<ImplementerViewModel> list = new();
|
|
||||||
|
|
||||||
if (model.ImplementerFIO != null)
|
|
||||||
{
|
|
||||||
foreach (var implementer in _source.Implementers)
|
|
||||||
{
|
|
||||||
if (implementer.ImplementerFIO.Contains(model.ImplementerFIO))
|
|
||||||
{
|
|
||||||
list.Add(implementer.GetViewModel);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return list;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<ImplementerViewModel> GetFullList()
|
|
||||||
{
|
|
||||||
var result = new List<ImplementerViewModel>();
|
|
||||||
|
|
||||||
foreach (var implementer in _source.Implementers)
|
|
||||||
{
|
|
||||||
result.Add(implementer.GetViewModel);
|
|
||||||
}
|
|
||||||
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
public ImplementerViewModel? Insert(ImplementerBindingModel model)
|
|
||||||
{
|
|
||||||
model.Id = 1;
|
|
||||||
|
|
||||||
foreach (var implementer in _source.Implementers)
|
|
||||||
{
|
|
||||||
if (model.Id <= implementer.Id)
|
|
||||||
{
|
|
||||||
model.Id = implementer.Id + 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
var res = Implementer.Create(model);
|
|
||||||
if (res != null)
|
|
||||||
{
|
|
||||||
_source.Implementers.Add(res);
|
|
||||||
}
|
|
||||||
|
|
||||||
return res?.GetViewModel;
|
|
||||||
}
|
|
||||||
|
|
||||||
public ImplementerViewModel? Update(ImplementerBindingModel model)
|
|
||||||
{
|
|
||||||
foreach (var implementer in _source.Implementers)
|
|
||||||
{
|
|
||||||
if (implementer.Id == model.Id)
|
|
||||||
{
|
|
||||||
implementer.Update(model);
|
|
||||||
return implementer.GetViewModel;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
public ImplementerViewModel? Delete(ImplementerBindingModel model)
|
|
||||||
{
|
|
||||||
for (int i = 0; i < _source.Implementers.Count; ++i)
|
|
||||||
{
|
|
||||||
if (_source.Implementers[i].Id == model.Id)
|
|
||||||
{
|
|
||||||
var element = _source.Implementers[i];
|
|
||||||
_source.Implementers.RemoveAt(i);
|
|
||||||
return element.GetViewModel;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,72 +0,0 @@
|
|||||||
using PizzeriaContracts.BindingModels;
|
|
||||||
using PizzeriaContracts.SearchModels;
|
|
||||||
using PizzeriaContracts.StoragesContracts;
|
|
||||||
using PizzeriaContracts.ViewModels;
|
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
|
|
||||||
namespace PizzeriaListImplement.Implements
|
|
||||||
{
|
|
||||||
public class MessageInfoStorage : IMessageInfoStorage
|
|
||||||
{
|
|
||||||
private readonly DataListSingleton _source;
|
|
||||||
|
|
||||||
public MessageInfoStorage()
|
|
||||||
{
|
|
||||||
_source = DataListSingleton.GetInstance();
|
|
||||||
}
|
|
||||||
|
|
||||||
public MessageInfoViewModel? GetElement(MessageInfoSearchModel model)
|
|
||||||
{
|
|
||||||
foreach (var message in _source.Messages)
|
|
||||||
{
|
|
||||||
if (model.MessageId != null && model.MessageId.Equals(message.MessageId)) return message.GetViewModel;
|
|
||||||
}
|
|
||||||
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<MessageInfoViewModel> GetFilteredList(MessageInfoSearchModel model)
|
|
||||||
{
|
|
||||||
List<MessageInfoViewModel> result = new();
|
|
||||||
|
|
||||||
foreach (var item in _source.Messages)
|
|
||||||
{
|
|
||||||
if (item.ClientId.HasValue && item.ClientId == model.ClientId)
|
|
||||||
{
|
|
||||||
result.Add(item.GetViewModel);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<MessageInfoViewModel> GetFullList()
|
|
||||||
{
|
|
||||||
List<MessageInfoViewModel> result = new();
|
|
||||||
|
|
||||||
foreach (var item in _source.Messages)
|
|
||||||
{
|
|
||||||
result.Add(item.GetViewModel);
|
|
||||||
}
|
|
||||||
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
public MessageInfoViewModel? Insert(MessageInfoBindingModel model)
|
|
||||||
{
|
|
||||||
var newMessage = MessageInfo.Create(model);
|
|
||||||
if (newMessage == null)
|
|
||||||
{
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
_source.Messages.Add(newMessage);
|
|
||||||
|
|
||||||
return newMessage.GetViewModel;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,45 +0,0 @@
|
|||||||
using PizzeriaContracts.BindingModels;
|
|
||||||
using PizzeriaContracts.ViewModels;
|
|
||||||
using PizzeriaDataModels.Models;
|
|
||||||
|
|
||||||
namespace PizzeriaListImplement.Models
|
|
||||||
{
|
|
||||||
public class Client : IClientModel
|
|
||||||
{
|
|
||||||
public int Id { get; private set; }
|
|
||||||
public string ClientFIO { get; private set; } = string.Empty;
|
|
||||||
public string Email { get; set; } = string.Empty;
|
|
||||||
public string Password { get; set; } = string.Empty;
|
|
||||||
public static Client? Create(ClientBindingModel? model)
|
|
||||||
{
|
|
||||||
if (model == null)
|
|
||||||
{
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
return new Client()
|
|
||||||
{
|
|
||||||
Id = model.Id,
|
|
||||||
ClientFIO = model.ClientFIO,
|
|
||||||
Email = model.Email,
|
|
||||||
Password = model.Password
|
|
||||||
};
|
|
||||||
}
|
|
||||||
public void Update(ClientBindingModel? model)
|
|
||||||
{
|
|
||||||
if (model == null)
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
ClientFIO = model.ClientFIO;
|
|
||||||
Email = model.Email;
|
|
||||||
Password = model.Password;
|
|
||||||
}
|
|
||||||
public ClientViewModel GetViewModel => new()
|
|
||||||
{
|
|
||||||
Id = Id,
|
|
||||||
ClientFIO = ClientFIO,
|
|
||||||
Email = Email,
|
|
||||||
Password = Password,
|
|
||||||
};
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,56 +0,0 @@
|
|||||||
using PizzeriaContracts.BindingModels;
|
|
||||||
using PizzeriaContracts.ViewModels;
|
|
||||||
using PizzeriaDataModels.Models;
|
|
||||||
|
|
||||||
namespace PizzeriaListImplement.Models
|
|
||||||
{
|
|
||||||
public class Implementer : IImplementerModel
|
|
||||||
{
|
|
||||||
public int Id { get; private set; }
|
|
||||||
|
|
||||||
public string ImplementerFIO { get; private set; } = string.Empty;
|
|
||||||
|
|
||||||
public string Password { get; private set; } = string.Empty;
|
|
||||||
|
|
||||||
public int WorkExperience { get; private set; }
|
|
||||||
|
|
||||||
public int Qualification { get; private set; }
|
|
||||||
|
|
||||||
public static Implementer? Create(ImplementerBindingModel model)
|
|
||||||
{
|
|
||||||
if (model == null)
|
|
||||||
{
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
return new()
|
|
||||||
{
|
|
||||||
Id = model.Id,
|
|
||||||
Password = model.Password,
|
|
||||||
Qualification = model.Qualification,
|
|
||||||
ImplementerFIO = model.ImplementerFIO,
|
|
||||||
WorkExperience = model.WorkExperience,
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
public void Update(ImplementerBindingModel model)
|
|
||||||
{
|
|
||||||
if (model == null)
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
Password = model.Password;
|
|
||||||
Qualification = model.Qualification;
|
|
||||||
ImplementerFIO = model.ImplementerFIO;
|
|
||||||
WorkExperience = model.WorkExperience;
|
|
||||||
}
|
|
||||||
|
|
||||||
public ImplementerViewModel GetViewModel => new()
|
|
||||||
{
|
|
||||||
Id = Id,
|
|
||||||
Password = Password,
|
|
||||||
Qualification = Qualification,
|
|
||||||
ImplementerFIO = ImplementerFIO,
|
|
||||||
};
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,49 +0,0 @@
|
|||||||
using PizzeriaContracts.BindingModels;
|
|
||||||
using PizzeriaContracts.ViewModels;
|
|
||||||
using PizzeriaDataModels.Models;
|
|
||||||
|
|
||||||
namespace PizzeriaListImplement.Models
|
|
||||||
{
|
|
||||||
public class MessageInfo : IMessageInfoModel
|
|
||||||
{
|
|
||||||
public string MessageId { get; private set; } = string.Empty;
|
|
||||||
|
|
||||||
public int? ClientId { get; private set; }
|
|
||||||
|
|
||||||
public string SenderName { get; private set; } = string.Empty;
|
|
||||||
|
|
||||||
public DateTime DateDelivery { get; private set; } = DateTime.Now;
|
|
||||||
|
|
||||||
public string Subject { get; private set; } = string.Empty;
|
|
||||||
|
|
||||||
public string Body { get; private set; } = string.Empty;
|
|
||||||
|
|
||||||
public static MessageInfo? Create(MessageInfoBindingModel model)
|
|
||||||
{
|
|
||||||
if (model == null)
|
|
||||||
{
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
return new()
|
|
||||||
{
|
|
||||||
Body = model.Body,
|
|
||||||
Subject = model.Subject,
|
|
||||||
ClientId = model.ClientId,
|
|
||||||
MessageId = model.MessageId,
|
|
||||||
SenderName = model.SenderName,
|
|
||||||
DateDelivery = model.DateDelivery,
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
public MessageInfoViewModel GetViewModel => new()
|
|
||||||
{
|
|
||||||
Body = Body,
|
|
||||||
Subject = Subject,
|
|
||||||
ClientId = ClientId,
|
|
||||||
MessageId = MessageId,
|
|
||||||
SenderName = SenderName,
|
|
||||||
DateDelivery = DateDelivery,
|
|
||||||
};
|
|
||||||
}
|
|
||||||
}
|
|
@ -9,15 +9,9 @@ namespace PizzeriaFileImplement
|
|||||||
private readonly string ComponentFileName = "Component.xml";
|
private readonly string ComponentFileName = "Component.xml";
|
||||||
private readonly string OrderFileName = "Order.xml";
|
private readonly string OrderFileName = "Order.xml";
|
||||||
private readonly string PizzaFileName = "Pizza.xml";
|
private readonly string PizzaFileName = "Pizza.xml";
|
||||||
private readonly string MessageFileName = "Message.xml";
|
|
||||||
private readonly string ImplementerFileName = "Implementer.xml";
|
|
||||||
private readonly string ClientFileName = "Client.xml";
|
|
||||||
public List<Component> Components { get; private set; }
|
public List<Component> Components { get; private set; }
|
||||||
public List<Order> Orders { get; private set; }
|
public List<Order> Orders { get; private set; }
|
||||||
public List<Pizza> Pizzas { get; private set; }
|
public List<Pizza> Pizzas { get; private set; }
|
||||||
public List<MessageInfo> Messages { get; private set; }
|
|
||||||
public List<Implementer> Implementers { get; private set; }
|
|
||||||
public List<Client> Clients { get; private set; }
|
|
||||||
public static DataFileSingleton GetInstance()
|
public static DataFileSingleton GetInstance()
|
||||||
{
|
{
|
||||||
if (instance == null)
|
if (instance == null)
|
||||||
@ -29,17 +23,13 @@ namespace PizzeriaFileImplement
|
|||||||
public void SaveComponents() => SaveData(Components, ComponentFileName, "Components", x => x.GetXElement);
|
public void SaveComponents() => SaveData(Components, ComponentFileName, "Components", x => x.GetXElement);
|
||||||
public void SavePizzas() => SaveData(Pizzas, PizzaFileName, "Pizzas", x => x.GetXElement);
|
public void SavePizzas() => SaveData(Pizzas, PizzaFileName, "Pizzas", x => x.GetXElement);
|
||||||
public void SaveOrders() => SaveData(Orders, OrderFileName, "Orders", x => x.GetXElement);
|
public void SaveOrders() => SaveData(Orders, OrderFileName, "Orders", x => x.GetXElement);
|
||||||
public void SaveMessages() => SaveData(Messages, MessageFileName, "Messages", x => x.GetXElement);
|
|
||||||
public void SaveImplementers() => SaveData(Implementers, ImplementerFileName, "Implementers", x => x.GetXElement);
|
|
||||||
public void SaveClients() => SaveData(Clients, ClientFileName, "Clients", x => x.GetXElement);
|
|
||||||
private DataFileSingleton()
|
private DataFileSingleton()
|
||||||
{
|
{
|
||||||
Components = LoadData(ComponentFileName, "Component", x => Component.Create(x)!)!;
|
Components = LoadData(ComponentFileName, "Component", x =>
|
||||||
Pizzas = LoadData(PizzaFileName, "Pizza", x => Pizza.Create(x)!)!;
|
Component.Create(x)!)!;
|
||||||
|
Pizzas = LoadData(PizzaFileName, "Pizza", x =>
|
||||||
|
Pizza.Create(x)!)!;
|
||||||
Orders = LoadData(OrderFileName, "Order", x => Order.Create(x)!)!;
|
Orders = LoadData(OrderFileName, "Order", x => Order.Create(x)!)!;
|
||||||
Messages = LoadData(MessageFileName, "Message", x => MessageInfo.Create(x)!)!;
|
|
||||||
Implementers = LoadData(ImplementerFileName, "Implementer", x => Implementer.Create(x)!)!;
|
|
||||||
Clients = LoadData(ClientFileName, "Client", x => Client.Create(x)!)!;
|
|
||||||
}
|
}
|
||||||
private static List<T>? LoadData<T>(string filename, string xmlNodeName, Func<XElement, T> selectFunction)
|
private static List<T>? LoadData<T>(string filename, string xmlNodeName, Func<XElement, T> selectFunction)
|
||||||
{
|
{
|
||||||
|
@ -1,82 +0,0 @@
|
|||||||
using PizzeriaContracts.BindingModels;
|
|
||||||
using PizzeriaContracts.SearchModels;
|
|
||||||
using PizzeriaContracts.StoragesContracts;
|
|
||||||
using PizzeriaContracts.ViewModels;
|
|
||||||
|
|
||||||
namespace PizzeriaFileImplement.Implements
|
|
||||||
{
|
|
||||||
public class ClientStorage : IClientStorage
|
|
||||||
{
|
|
||||||
private readonly DataFileSingleton source;
|
|
||||||
public ClientStorage()
|
|
||||||
{
|
|
||||||
source = DataFileSingleton.GetInstance();
|
|
||||||
}
|
|
||||||
public List<ClientViewModel> GetFullList()
|
|
||||||
{
|
|
||||||
return source.Clients.Select(x => x.GetViewModel).ToList();
|
|
||||||
}
|
|
||||||
public List<ClientViewModel> GetFilteredList(ClientSearchModel model)
|
|
||||||
{
|
|
||||||
if (string.IsNullOrEmpty(model.ClientFIO))
|
|
||||||
{
|
|
||||||
return new();
|
|
||||||
}
|
|
||||||
return source.Clients
|
|
||||||
.Where(x => x.ClientFIO.Contains(model.ClientFIO))
|
|
||||||
.Select(x => x.GetViewModel)
|
|
||||||
.ToList();
|
|
||||||
}
|
|
||||||
public ClientViewModel? GetElement(ClientSearchModel model)
|
|
||||||
{
|
|
||||||
if (model.Id.HasValue)
|
|
||||||
return source.Clients
|
|
||||||
.FirstOrDefault(x => x.Id == model.Id)?
|
|
||||||
.GetViewModel;
|
|
||||||
if (!string.IsNullOrEmpty(model.Email) && !string.IsNullOrEmpty(model.Password))
|
|
||||||
return source.Clients
|
|
||||||
.FirstOrDefault(x => x.Email
|
|
||||||
.Equals(model.Email) && x.Password
|
|
||||||
.Equals(model.Password))?
|
|
||||||
.GetViewModel;
|
|
||||||
if (!string.IsNullOrEmpty(model.Email))
|
|
||||||
return source.Clients
|
|
||||||
.FirstOrDefault(x => x.Email.Equals(model.Email))?.GetViewModel;
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
public ClientViewModel? Insert(ClientBindingModel model)
|
|
||||||
{
|
|
||||||
model.Id = source.Clients.Count > 0 ? source.Clients.Max(x => x.Id) + 1 : 1;
|
|
||||||
var newClient = Client.Create(model);
|
|
||||||
if (newClient == null)
|
|
||||||
{
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
source.Clients.Add(newClient);
|
|
||||||
source.SaveClients();
|
|
||||||
return newClient.GetViewModel;
|
|
||||||
}
|
|
||||||
public ClientViewModel? Update(ClientBindingModel model)
|
|
||||||
{
|
|
||||||
var ingredient = source.Clients.FirstOrDefault(x => x.Id == model.Id);
|
|
||||||
if (ingredient == null)
|
|
||||||
{
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
ingredient.Update(model);
|
|
||||||
source.SaveClients();
|
|
||||||
return ingredient.GetViewModel;
|
|
||||||
}
|
|
||||||
public ClientViewModel? Delete(ClientBindingModel model)
|
|
||||||
{
|
|
||||||
var element = source.Clients.FirstOrDefault(x => x.Id == model.Id);
|
|
||||||
if (element != null)
|
|
||||||
{
|
|
||||||
source.Clients.Remove(element);
|
|
||||||
source.SaveClients();
|
|
||||||
return element.GetViewModel;
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,97 +0,0 @@
|
|||||||
using PizzeriaContracts.BindingModels;
|
|
||||||
using PizzeriaContracts.SearchModels;
|
|
||||||
using PizzeriaContracts.StoragesContracts;
|
|
||||||
using PizzeriaContracts.ViewModels;
|
|
||||||
|
|
||||||
namespace PizzeriaFileImplement.Implements
|
|
||||||
{
|
|
||||||
public class ImplementerStorage : IImplementerStorage
|
|
||||||
{
|
|
||||||
private readonly DataFileSingleton _source;
|
|
||||||
|
|
||||||
public ImplementerStorage()
|
|
||||||
{
|
|
||||||
_source = DataFileSingleton.GetInstance();
|
|
||||||
}
|
|
||||||
|
|
||||||
public ImplementerViewModel? GetElement(ImplementerSearchModel model)
|
|
||||||
{
|
|
||||||
if (model.Id.HasValue)
|
|
||||||
{
|
|
||||||
return _source.Implementers.FirstOrDefault(x => x.Id == model.Id)?.GetViewModel;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (model.ImplementerFIO != null && model.Password != null)
|
|
||||||
{
|
|
||||||
return _source.Implementers.FirstOrDefault(x => x.ImplementerFIO.Equals(model.ImplementerFIO) && x.Password.Equals(model.Password))?.GetViewModel;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (model.ImplementerFIO != null)
|
|
||||||
{
|
|
||||||
return _source.Implementers.FirstOrDefault(x => x.ImplementerFIO.Equals(model.ImplementerFIO))?.GetViewModel;
|
|
||||||
}
|
|
||||||
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<ImplementerViewModel> GetFilteredList(ImplementerSearchModel model)
|
|
||||||
{
|
|
||||||
if (model == null)
|
|
||||||
{
|
|
||||||
return new();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (model.ImplementerFIO != null)
|
|
||||||
{
|
|
||||||
return _source.Implementers.Where(x => x.ImplementerFIO.Contains(model.ImplementerFIO))
|
|
||||||
.Select(x => x.GetViewModel)
|
|
||||||
.ToList();
|
|
||||||
}
|
|
||||||
|
|
||||||
return new();
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<ImplementerViewModel> GetFullList()
|
|
||||||
{
|
|
||||||
return _source.Implementers.Select(x => x.GetViewModel).ToList();
|
|
||||||
}
|
|
||||||
|
|
||||||
public ImplementerViewModel? Insert(ImplementerBindingModel model)
|
|
||||||
{
|
|
||||||
model.Id = _source.Implementers.Count > 0 ? _source.Implementers.Max(x => x.Id) + 1 : 1;
|
|
||||||
|
|
||||||
var res = Implementer.Create(model);
|
|
||||||
if (res != null)
|
|
||||||
{
|
|
||||||
_source.Implementers.Add(res);
|
|
||||||
_source.SaveImplementers();
|
|
||||||
}
|
|
||||||
|
|
||||||
return res?.GetViewModel;
|
|
||||||
}
|
|
||||||
|
|
||||||
public ImplementerViewModel? Update(ImplementerBindingModel model)
|
|
||||||
{
|
|
||||||
var res = _source.Implementers.FirstOrDefault(x => x.Id == model.Id);
|
|
||||||
if (res != null)
|
|
||||||
{
|
|
||||||
res.Update(model);
|
|
||||||
_source.SaveImplementers();
|
|
||||||
}
|
|
||||||
|
|
||||||
return res?.GetViewModel;
|
|
||||||
}
|
|
||||||
|
|
||||||
public ImplementerViewModel? Delete(ImplementerBindingModel model)
|
|
||||||
{
|
|
||||||
var res = _source.Implementers.FirstOrDefault(x => x.Id == model.Id);
|
|
||||||
if (res != null)
|
|
||||||
{
|
|
||||||
_source.Implementers.Remove(res);
|
|
||||||
_source.SaveImplementers();
|
|
||||||
}
|
|
||||||
|
|
||||||
return res?.GetViewModel;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,51 +0,0 @@
|
|||||||
using PizzeriaContracts.BindingModels;
|
|
||||||
using PizzeriaContracts.SearchModels;
|
|
||||||
using PizzeriaContracts.StoragesContracts;
|
|
||||||
using PizzeriaContracts.ViewModels;
|
|
||||||
|
|
||||||
namespace PizzeriaFileImplement.Implements
|
|
||||||
{
|
|
||||||
public class MessageInfoStorage : IMessageInfoStorage
|
|
||||||
{
|
|
||||||
private readonly DataFileSingleton _source;
|
|
||||||
|
|
||||||
public MessageInfoStorage()
|
|
||||||
{
|
|
||||||
_source = DataFileSingleton.GetInstance();
|
|
||||||
}
|
|
||||||
|
|
||||||
public MessageInfoViewModel? GetElement(MessageInfoSearchModel model)
|
|
||||||
{
|
|
||||||
if (model.MessageId != null)
|
|
||||||
{
|
|
||||||
return _source.Messages.FirstOrDefault(x => x.MessageId == model.MessageId)?.GetViewModel;
|
|
||||||
}
|
|
||||||
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<MessageInfoViewModel> GetFilteredList(MessageInfoSearchModel model)
|
|
||||||
{
|
|
||||||
return _source.Messages.Where(x => x.ClientId == model.ClientId).Select(x => x.GetViewModel).ToList();
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<MessageInfoViewModel> GetFullList()
|
|
||||||
{
|
|
||||||
return _source.Messages.Select(x => x.GetViewModel).ToList();
|
|
||||||
}
|
|
||||||
|
|
||||||
public MessageInfoViewModel? Insert(MessageInfoBindingModel model)
|
|
||||||
{
|
|
||||||
var newMessage = MessageInfo.Create(model);
|
|
||||||
if (newMessage == null)
|
|
||||||
{
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
_source.Messages.Add(newMessage);
|
|
||||||
_source.SaveMessages();
|
|
||||||
|
|
||||||
return newMessage.GetViewModel;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,67 +0,0 @@
|
|||||||
using PizzeriaContracts.BindingModels;
|
|
||||||
using PizzeriaContracts.ViewModels;
|
|
||||||
using PizzeriaDataModels.Models;
|
|
||||||
using System.Xml.Linq;
|
|
||||||
|
|
||||||
namespace PizzeriaFileImplement.models
|
|
||||||
{
|
|
||||||
public class Client : IClientModel
|
|
||||||
{
|
|
||||||
public int Id { get; private set; }
|
|
||||||
public string ClientFIO { get; private set; } = string.Empty;
|
|
||||||
public string Email { get; set; } = string.Empty;
|
|
||||||
public string Password { get; set; } = string.Empty;
|
|
||||||
public static Client? Create(ClientBindingModel model)
|
|
||||||
{
|
|
||||||
if (model == null)
|
|
||||||
{
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
return new Client()
|
|
||||||
{
|
|
||||||
Id = model.Id,
|
|
||||||
ClientFIO = model.ClientFIO,
|
|
||||||
Email = model.Email,
|
|
||||||
Password = model.Password
|
|
||||||
};
|
|
||||||
}
|
|
||||||
public static Client? Create(XElement element)
|
|
||||||
{
|
|
||||||
if (element == null)
|
|
||||||
{
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
return new()
|
|
||||||
{
|
|
||||||
Id = Convert.ToInt32(element.Attribute("Id")!.Value),
|
|
||||||
ClientFIO = element.Element("ClientFIO")!.Value,
|
|
||||||
Email = element.Element("Email")!.Value,
|
|
||||||
Password = element.Element("Password")!.Value,
|
|
||||||
};
|
|
||||||
}
|
|
||||||
public void Update(ClientBindingModel model)
|
|
||||||
{
|
|
||||||
if (model == null)
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
ClientFIO = model.ClientFIO;
|
|
||||||
Email = model.Email;
|
|
||||||
Password = model.Password;
|
|
||||||
}
|
|
||||||
public ClientViewModel GetViewModel => new()
|
|
||||||
{
|
|
||||||
Id = Id,
|
|
||||||
ClientFIO = ClientFIO,
|
|
||||||
Email = Email,
|
|
||||||
Password = Password,
|
|
||||||
};
|
|
||||||
|
|
||||||
public XElement GetXElement => new("Client",
|
|
||||||
new XAttribute("Id", Id),
|
|
||||||
new XElement("ClientFIO", ClientFIO),
|
|
||||||
new XElement("Email", Email),
|
|
||||||
new XElement("Password", Password)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,83 +0,0 @@
|
|||||||
using PizzeriaContracts.BindingModels;
|
|
||||||
using PizzeriaContracts.ViewModels;
|
|
||||||
using PizzeriaDataModels.Models;
|
|
||||||
using System.Xml.Linq;
|
|
||||||
|
|
||||||
namespace PizzeriaFileImplement.models
|
|
||||||
{
|
|
||||||
public class Implementer : IImplementerModel
|
|
||||||
{
|
|
||||||
public int Id { get; private set; }
|
|
||||||
|
|
||||||
public string ImplementerFIO { get; private set; } = string.Empty;
|
|
||||||
|
|
||||||
public string Password { get; private set; } = string.Empty;
|
|
||||||
|
|
||||||
public int WorkExperience { get; private set; }
|
|
||||||
|
|
||||||
public int Qualification { get; private set; }
|
|
||||||
|
|
||||||
public static Implementer? Create(XElement element)
|
|
||||||
{
|
|
||||||
if (element == null)
|
|
||||||
{
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
return new()
|
|
||||||
{
|
|
||||||
Id = Convert.ToInt32(element.Attribute("Id")!.Value),
|
|
||||||
ImplementerFIO = element.Element("FIO")!.Value,
|
|
||||||
Password = element.Element("Password")!.Value,
|
|
||||||
Qualification = Convert.ToInt32(element.Element("Qualification")!.Value),
|
|
||||||
WorkExperience = Convert.ToInt32(element.Element("WorkExperience")!.Value),
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
public static Implementer? Create(ImplementerBindingModel model)
|
|
||||||
{
|
|
||||||
if (model == null)
|
|
||||||
{
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
return new()
|
|
||||||
{
|
|
||||||
Id = model.Id,
|
|
||||||
ImplementerFIO = model.ImplementerFIO,
|
|
||||||
Password = model.Password,
|
|
||||||
Qualification = model.Qualification,
|
|
||||||
WorkExperience = model.WorkExperience,
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
public void Update(ImplementerBindingModel model)
|
|
||||||
{
|
|
||||||
if (model == null)
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
ImplementerFIO = model.ImplementerFIO;
|
|
||||||
Password = model.Password;
|
|
||||||
Qualification = model.Qualification;
|
|
||||||
WorkExperience = model.WorkExperience;
|
|
||||||
}
|
|
||||||
|
|
||||||
public ImplementerViewModel GetViewModel => new()
|
|
||||||
{
|
|
||||||
Id = Id,
|
|
||||||
ImplementerFIO = ImplementerFIO,
|
|
||||||
Password = Password,
|
|
||||||
Qualification = Qualification,
|
|
||||||
};
|
|
||||||
|
|
||||||
public XElement GetXElement => new("Client",
|
|
||||||
new XAttribute("Id", Id),
|
|
||||||
new XElement("FIO", ImplementerFIO),
|
|
||||||
new XElement("Password", Password),
|
|
||||||
new XElement("Qualification", Qualification),
|
|
||||||
new XElement("WorkExperience", WorkExperience)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,77 +0,0 @@
|
|||||||
using PizzeriaContracts.BindingModels;
|
|
||||||
using PizzeriaContracts.ViewModels;
|
|
||||||
using PizzeriaDataModels.Models;
|
|
||||||
using System.Xml.Linq;
|
|
||||||
|
|
||||||
namespace PizzeriaFileImplement.models
|
|
||||||
{
|
|
||||||
public class MessageInfo : IMessageInfoModel
|
|
||||||
{
|
|
||||||
public string MessageId { get; private set; } = string.Empty;
|
|
||||||
|
|
||||||
public int? ClientId { get; private set; }
|
|
||||||
|
|
||||||
public string SenderName { get; private set; } = string.Empty;
|
|
||||||
|
|
||||||
public DateTime DateDelivery { get; private set; } = DateTime.Now;
|
|
||||||
|
|
||||||
public string Subject { get; private set; } = string.Empty;
|
|
||||||
|
|
||||||
public string Body { get; private set; } = string.Empty;
|
|
||||||
|
|
||||||
public static MessageInfo? Create(MessageInfoBindingModel model)
|
|
||||||
{
|
|
||||||
if (model == null)
|
|
||||||
{
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
return new()
|
|
||||||
{
|
|
||||||
Body = model.Body,
|
|
||||||
Subject = model.Subject,
|
|
||||||
ClientId = model.ClientId,
|
|
||||||
MessageId = model.MessageId,
|
|
||||||
SenderName = model.SenderName,
|
|
||||||
DateDelivery = model.DateDelivery,
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
public static MessageInfo? Create(XElement element)
|
|
||||||
{
|
|
||||||
if (element == null)
|
|
||||||
{
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
return new()
|
|
||||||
{
|
|
||||||
Body = element.Attribute("Body")!.Value,
|
|
||||||
Subject = element.Attribute("Subject")!.Value,
|
|
||||||
ClientId = Convert.ToInt32(element.Attribute("ClientId")!.Value),
|
|
||||||
MessageId = element.Attribute("MessageId")!.Value,
|
|
||||||
SenderName = element.Attribute("SenderName")!.Value,
|
|
||||||
DateDelivery = Convert.ToDateTime(element.Attribute("DateDelivery")!.Value),
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
public MessageInfoViewModel GetViewModel => new()
|
|
||||||
{
|
|
||||||
Body = Body,
|
|
||||||
Subject = Subject,
|
|
||||||
ClientId = ClientId,
|
|
||||||
MessageId = MessageId,
|
|
||||||
SenderName = SenderName,
|
|
||||||
DateDelivery = DateDelivery,
|
|
||||||
};
|
|
||||||
|
|
||||||
public XElement GetXElement => new("MessageInfo",
|
|
||||||
new XAttribute("Body", Body),
|
|
||||||
new XAttribute("Subject", Subject),
|
|
||||||
new XAttribute("ClientId", ClientId),
|
|
||||||
new XAttribute("MessageId", MessageId),
|
|
||||||
new XAttribute("SenderName", SenderName),
|
|
||||||
new XAttribute("DateDelivery", DateDelivery)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
Loading…
x
Reference in New Issue
Block a user