Add implementer
This commit is contained in:
parent
5d33fe2319
commit
003c54db7d
@ -0,0 +1,12 @@
|
||||
using SushiBarDataModels.Models;
|
||||
|
||||
namespace SushiBarContracts.BindingModels;
|
||||
|
||||
public class ImplementerBindingModel : IImplementerModel
|
||||
{
|
||||
public int Id { get; set; }
|
||||
public string ImplementerFio { get; set; } = string.Empty;
|
||||
public string Password { get; set; } = string.Empty;
|
||||
public int WorkExperience { get; set; }
|
||||
public int Qualification { get; set; }
|
||||
}
|
@ -8,6 +8,7 @@ namespace SushiBarContracts.BindingModels
|
||||
public int Id { get; set; }
|
||||
public int SushiId { get; set; }
|
||||
public int ClientId { get; set; }
|
||||
public int ImplementerId { get; set; }
|
||||
public string ClientFio { get; set; } = string.Empty;
|
||||
public string SushiName { get; set; } = string.Empty;
|
||||
public int Count { get; set; }
|
||||
|
@ -0,0 +1,13 @@
|
||||
using SushiBarContracts.SearchModels;
|
||||
using SushiBarContracts.ViewModels;
|
||||
|
||||
namespace SushiBarContracts.BusinessLogicsContracts;
|
||||
|
||||
public interface IImplementerLogic
|
||||
{
|
||||
List<ImplementerViewModel>? ReadList(ImplementerSearchModel? model);
|
||||
ImplementerViewModel? ReadElement(ImplementerSearchModel model);
|
||||
bool Create(ImplementerSearchModel model);
|
||||
bool Update(ImplementerSearchModel model);
|
||||
bool Delete(ImplementerSearchModel model);
|
||||
}
|
@ -0,0 +1,10 @@
|
||||
namespace SushiBarContracts.SearchModels;
|
||||
|
||||
public class ImplementerSearchModel
|
||||
{
|
||||
public int? Id { get; set; }
|
||||
public string? ImplementerFio { get; set; }
|
||||
public string? Password { get; set; }
|
||||
public int? WorkExperience { get; set; }
|
||||
public int? Qualification { get; set; }
|
||||
}
|
@ -6,5 +6,6 @@
|
||||
public DateTime? DateFrom { get; set; }
|
||||
public DateTime? DateTo { get; set; }
|
||||
public int? ClientId { get; set; }
|
||||
public int? ImplementerId { get; set; }
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,15 @@
|
||||
using SushiBarContracts.BindingModels;
|
||||
using SushiBarContracts.SearchModels;
|
||||
using SushiBarContracts.ViewModels;
|
||||
|
||||
namespace SushiBarContracts.StoragesContracts;
|
||||
|
||||
public interface IImplementerStorage
|
||||
{
|
||||
List<ImplementerViewModel> GetFullList();
|
||||
List<ImplementerViewModel> GetFilteredList(ImplementerSearchModel? model);
|
||||
ImplementerViewModel? GetElement(ImplementerSearchModel? model);
|
||||
ImplementerViewModel? Insert(ImplementerBindingModel model);
|
||||
ImplementerViewModel? Update(ImplementerBindingModel model);
|
||||
ImplementerViewModel? Delete(ImplementerBindingModel model);
|
||||
}
|
@ -0,0 +1,20 @@
|
||||
using System.ComponentModel;
|
||||
using SushiBarDataModels.Models;
|
||||
|
||||
namespace SushiBarContracts.ViewModels;
|
||||
|
||||
public class ImplementerViewModel : IImplementerModel
|
||||
{
|
||||
public int Id { get; init; }
|
||||
|
||||
[DisplayName("Implementer FIO")]
|
||||
public string ImplementerFio { get; set; } = string.Empty;
|
||||
|
||||
public string Password { get; set; } = string.Empty;
|
||||
|
||||
[DisplayName("Work Experience")]
|
||||
public int WorkExperience { get; set; }
|
||||
|
||||
[DisplayName("Qualification")]
|
||||
public int Qualification { get; set; }
|
||||
}
|
@ -11,10 +11,14 @@ namespace SushiBarContracts.ViewModels
|
||||
|
||||
public int SushiId { get; init; }
|
||||
public int ClientId { get; init; }
|
||||
public int ImplementerId { get; set; }
|
||||
|
||||
[DisplayName("Client FIO")]
|
||||
public string ClientFio { get; init; } = string.Empty;
|
||||
|
||||
[DisplayName("Implementer FIO")]
|
||||
public string ImplementerFio { get; set; } = string.Empty;
|
||||
|
||||
[DisplayName("Name of Product")]
|
||||
public string SushiName { get; init; } = string.Empty;
|
||||
|
||||
|
@ -0,0 +1,81 @@
|
||||
using SushiBarContracts.BindingModels;
|
||||
using SushiBarContracts.SearchModels;
|
||||
using SushiBarContracts.StoragesContracts;
|
||||
using SushiBarContracts.ViewModels;
|
||||
using SushiBarDatabaseImplement.Models;
|
||||
|
||||
namespace SushiBarDatabaseImplement.Implements;
|
||||
|
||||
public class ImplementerStorage : IImplementerStorage
|
||||
{
|
||||
public List<ImplementerViewModel> GetFullList()
|
||||
{
|
||||
using var context = new SushiBarDatabase();
|
||||
return context.Implementers
|
||||
.Select(x => x.GetViewModel)
|
||||
.ToList();
|
||||
}
|
||||
|
||||
public List<ImplementerViewModel> GetFilteredList(ImplementerSearchModel? model)
|
||||
{
|
||||
if (model.Id.HasValue)
|
||||
{
|
||||
var res = GetElement(model);
|
||||
return res != null ? new List<ImplementerViewModel> { res } : new List<ImplementerViewModel>();
|
||||
}
|
||||
|
||||
if (model.ImplementerFio == null) return new List<ImplementerViewModel>();
|
||||
using var context = new SushiBarDatabase();
|
||||
return context.Implementers
|
||||
.Where(x => x.ImplementerFio.Equals(model.ImplementerFio))
|
||||
.Select(x => x.GetViewModel)
|
||||
.ToList();
|
||||
}
|
||||
|
||||
public ImplementerViewModel? GetElement(ImplementerSearchModel? model)
|
||||
{
|
||||
using var context = new SushiBarDatabase();
|
||||
if (model.Id.HasValue)
|
||||
return context.Implementers.FirstOrDefault(x => x.Id == model.Id)?.GetViewModel;
|
||||
if (model is { ImplementerFio: { }, Password: { } })
|
||||
return context.Implementers
|
||||
.FirstOrDefault(x => x.ImplementerFio.Equals(model.ImplementerFio)
|
||||
&& x.Password.Equals(model.Password))
|
||||
?.GetViewModel;
|
||||
return model.ImplementerFio != null ?
|
||||
context.Implementers
|
||||
.FirstOrDefault(x => x.ImplementerFio.Equals(model.ImplementerFio))?.GetViewModel :
|
||||
null;
|
||||
}
|
||||
|
||||
public ImplementerViewModel? Insert(ImplementerBindingModel model)
|
||||
{
|
||||
using var context = new SushiBarDatabase();
|
||||
var res = Implementer.Create(model);
|
||||
if (res == null) return res?.GetViewModel;
|
||||
context.Implementers.Add(res);
|
||||
context.SaveChanges();
|
||||
return res?.GetViewModel;
|
||||
}
|
||||
|
||||
public ImplementerViewModel? Update(ImplementerBindingModel model)
|
||||
{
|
||||
using var context = new SushiBarDatabase();
|
||||
var res = context.Implementers
|
||||
.FirstOrDefault(x => x.Id == model.Id);
|
||||
if (res == null) return res?.GetViewModel;
|
||||
res.Update(model);
|
||||
context.SaveChanges();
|
||||
return res?.GetViewModel;
|
||||
}
|
||||
|
||||
public ImplementerViewModel? Delete(ImplementerBindingModel model)
|
||||
{
|
||||
using var context = new SushiBarDatabase();
|
||||
var res = context.Implementers.FirstOrDefault(x => x.Id == model.Id);
|
||||
if (res == null) return res?.GetViewModel;
|
||||
context.Implementers.Remove(res);
|
||||
context.SaveChanges();
|
||||
return res?.GetViewModel;
|
||||
}
|
||||
}
|
64
SushiBar/SushiBarDatabaseImplement/Models/Implementer.cs
Normal file
64
SushiBar/SushiBarDatabaseImplement/Models/Implementer.cs
Normal file
@ -0,0 +1,64 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using SushiBarContracts.BindingModels;
|
||||
using SushiBarContracts.ViewModels;
|
||||
using SushiBarDataModels.Models;
|
||||
|
||||
namespace SushiBarDatabaseImplement.Models;
|
||||
|
||||
public class Implementer : IImplementerModel
|
||||
{
|
||||
public int Id { get; private init; }
|
||||
[Required] public string ImplementerFio { get; private set; } = string.Empty;
|
||||
[Required] 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 Implementer
|
||||
{
|
||||
Id = model.Id,
|
||||
ImplementerFio = model.ImplementerFio,
|
||||
Password = model.Password,
|
||||
WorkExperience = model.WorkExperience,
|
||||
Qualification = model.Qualification
|
||||
};
|
||||
}
|
||||
|
||||
public static Implementer Create(ImplementerViewModel model)
|
||||
{
|
||||
return new Implementer()
|
||||
{
|
||||
Id = model.Id,
|
||||
ImplementerFio = model.ImplementerFio,
|
||||
Password = model.Password,
|
||||
WorkExperience = model.WorkExperience,
|
||||
Qualification = model.Qualification
|
||||
};
|
||||
}
|
||||
|
||||
public void Update(ImplementerBindingModel? model)
|
||||
{
|
||||
if (model == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
ImplementerFio = model.ImplementerFio;
|
||||
Password = model.Password;
|
||||
WorkExperience = model.WorkExperience;
|
||||
Qualification = model.Qualification;
|
||||
}
|
||||
|
||||
public ImplementerViewModel GetViewModel => new()
|
||||
{
|
||||
Id = Id,
|
||||
ImplementerFio = ImplementerFio,
|
||||
Password = Password,
|
||||
WorkExperience = WorkExperience,
|
||||
Qualification = Qualification
|
||||
};
|
||||
}
|
@ -15,6 +15,7 @@ namespace SushiBarDatabaseImplement.Models
|
||||
|
||||
[Required]
|
||||
public int ClientId { get; private set; }
|
||||
public int ImplementerId { get; private set; }
|
||||
|
||||
public string SushiName { get; set; } = string.Empty;
|
||||
|
||||
@ -36,6 +37,8 @@ namespace SushiBarDatabaseImplement.Models
|
||||
|
||||
public virtual Client Client { get; set; }
|
||||
|
||||
public virtual Implementer? Implementer { get; private set; }
|
||||
|
||||
public static Order? Create(OrderBindingModel? model)
|
||||
{
|
||||
if (model == null)
|
||||
@ -49,6 +52,7 @@ namespace SushiBarDatabaseImplement.Models
|
||||
SushiId = model.SushiId,
|
||||
SushiName = model.SushiName,
|
||||
ClientId = model.ClientId,
|
||||
ImplementerId = model.ImplementerId,
|
||||
Count = model.Count,
|
||||
Sum = model.Sum,
|
||||
Status = model.Status,
|
||||
@ -67,6 +71,7 @@ namespace SushiBarDatabaseImplement.Models
|
||||
SushiId = model.SushiId;
|
||||
SushiName = model.SushiName;
|
||||
ClientId = model.ClientId;
|
||||
ImplementerId = model.ImplementerId;
|
||||
Count = model.Count;
|
||||
Sum = model.Sum;
|
||||
Status = model.Status;
|
||||
@ -85,10 +90,12 @@ namespace SushiBarDatabaseImplement.Models
|
||||
Count = Count,
|
||||
DateCreate = DateCreate,
|
||||
DateImplement = DateImplement,
|
||||
ImplementerId = ImplementerId,
|
||||
Sum = Sum,
|
||||
Status = Status,
|
||||
ClientFio = context.Clients.FirstOrDefault(x => x.Id == ClientId)?.ClientFio ?? string.Empty,
|
||||
SushiName = context.Sushi.FirstOrDefault(x => x.Id == SushiId)?.SushiName ?? string.Empty
|
||||
SushiName = context.Sushi.FirstOrDefault(x => x.Id == SushiId)?.SushiName ?? string.Empty,
|
||||
ImplementerFio = Implementer?.ImplementerFio ?? string.Empty
|
||||
};
|
||||
} }
|
||||
}
|
||||
|
@ -18,5 +18,6 @@ namespace SushiBarDatabaseImplement
|
||||
public virtual DbSet<SushiComponent> SushiComponents { set; get; }
|
||||
public virtual DbSet<Order> Orders { set; get; }
|
||||
public virtual DbSet<Client> Clients { set; get; }
|
||||
public virtual DbSet<Implementer> Implementers { get; set; }
|
||||
}
|
||||
}
|
||||
|
@ -9,9 +9,11 @@ namespace SushiBarFileImplement
|
||||
private readonly string ComponentFileName = "Component.xml";
|
||||
private readonly string OrderFileName = "Order.xml";
|
||||
private readonly string SushiFileName = "Sushi.xml";
|
||||
private readonly string ImplementerFileName = "Implementer.xml";
|
||||
public List<Component> Components { get; private set; }
|
||||
public List<Order> Orders { get; private set; }
|
||||
public List<Sushi> Sushis { get; private set; }
|
||||
public List<Implementer> Implementers { get; set; }
|
||||
public static DataFileSingleton GetInstance()
|
||||
{
|
||||
instance ??= new DataFileSingleton();
|
||||
@ -20,11 +22,14 @@ namespace SushiBarFileImplement
|
||||
public void SaveComponents() => SaveData(Components, ComponentFileName, "Components", x => x.GetXElement);
|
||||
public void SaveSushis() => SaveData(Sushis, SushiFileName, "Sushis", x => x.GetXElement);
|
||||
public void SaveOrders() => SaveData(Orders, OrderFileName, "Orders", x => x.GetXElement);
|
||||
public void SaveImplementers() => SaveData(Implementers, ImplementerFileName, "Implementers", x => x.GetXElement);
|
||||
|
||||
private DataFileSingleton()
|
||||
{
|
||||
Components = LoadData(ComponentFileName, "Component", x => Component.Create(x)!)!;
|
||||
Sushis = LoadData(SushiFileName, "Sushi", x => Sushi.Create(x)!)!;
|
||||
Orders = LoadData(OrderFileName, "Order", x => Order.Create(x)!)!;
|
||||
Components = LoadData(ComponentFileName, "Component", x => Component.Create(x)!)!;
|
||||
Sushis = LoadData(SushiFileName, "Sushi", x => Sushi.Create(x)!)!;
|
||||
Orders = LoadData(OrderFileName, "Order", x => Order.Create(x)!)!;
|
||||
Implementers = LoadData(ImplementerFileName, "Implementer", x => Implementer.Create(x)!)!;
|
||||
}
|
||||
private static List<T>? LoadData<T>(string filename, string xmlNodeName, Func<XElement, T> selectFunction)
|
||||
{
|
||||
|
@ -0,0 +1,89 @@
|
||||
using SushiBarContracts.BindingModels;
|
||||
using SushiBarContracts.SearchModels;
|
||||
using SushiBarContracts.StoragesContracts;
|
||||
using SushiBarContracts.ViewModels;
|
||||
using SushiBarFileImplement.Models;
|
||||
|
||||
namespace SushiBarFileImplement.Implements;
|
||||
|
||||
public class ImplementerStorage : IImplementerStorage
|
||||
{
|
||||
private readonly DataFileSingleton _source;
|
||||
public ImplementerStorage()
|
||||
{
|
||||
_source = DataFileSingleton.GetInstance();
|
||||
}
|
||||
|
||||
public List<ImplementerViewModel> GetFullList()
|
||||
{
|
||||
return _source.Implementers.Select(x => x.GetViewModel).ToList();
|
||||
}
|
||||
|
||||
public List<ImplementerViewModel> GetFilteredList(ImplementerSearchModel? model)
|
||||
{
|
||||
if (model == null)
|
||||
{
|
||||
return new List<ImplementerViewModel>();
|
||||
}
|
||||
if (model.Id.HasValue)
|
||||
{
|
||||
var res = GetElement(model);
|
||||
return res != null ?
|
||||
new List<ImplementerViewModel> { res } :
|
||||
new List<ImplementerViewModel>();
|
||||
}
|
||||
if (model.ImplementerFio != null)
|
||||
{
|
||||
return _source.Implementers
|
||||
.Where(x => x.ImplementerFio.Equals(model.ImplementerFio))
|
||||
.Select(x => x.GetViewModel)
|
||||
.ToList();
|
||||
}
|
||||
return new List<ImplementerViewModel>();
|
||||
}
|
||||
|
||||
public ImplementerViewModel? GetElement(ImplementerSearchModel? model)
|
||||
{
|
||||
if (model.Id.HasValue)
|
||||
return _source.Implementers.FirstOrDefault(x => x.Id == model.Id)?.GetViewModel;
|
||||
if (model is { ImplementerFio: { }, Password: { } })
|
||||
return _source.Implementers
|
||||
.FirstOrDefault(x => x.ImplementerFio.Equals(model.ImplementerFio)
|
||||
&& x.Password.Equals(model.Password))
|
||||
?.GetViewModel;
|
||||
return model.ImplementerFio != null ?
|
||||
_source.Implementers
|
||||
.FirstOrDefault(x => x.ImplementerFio.Equals(model.ImplementerFio))?.GetViewModel :
|
||||
null;
|
||||
}
|
||||
|
||||
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) return res?.GetViewModel;
|
||||
_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) return res?.GetViewModel;
|
||||
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) return res?.GetViewModel;
|
||||
_source.Implementers.Remove(res);
|
||||
_source.SaveImplementers();
|
||||
return res?.GetViewModel;
|
||||
}
|
||||
}
|
77
SushiBar/SushiBarFileImplement/Models/Implementer.cs
Normal file
77
SushiBar/SushiBarFileImplement/Models/Implementer.cs
Normal file
@ -0,0 +1,77 @@
|
||||
using System.Xml.Linq;
|
||||
using SushiBarContracts.BindingModels;
|
||||
using SushiBarContracts.ViewModels;
|
||||
using SushiBarDataModels.Models;
|
||||
|
||||
namespace SushiBarFileImplement.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 Implementer
|
||||
{
|
||||
ImplementerFio = element.Element("FIO")!.Value,
|
||||
Password = element.Element("Password")!.Value,
|
||||
Id = Convert.ToInt32(element.Attribute("Id")!.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 Implementer
|
||||
{
|
||||
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,
|
||||
};
|
||||
|
||||
public XElement GetXElement => new("Client",
|
||||
new XAttribute("Id", Id),
|
||||
new XElement("Password", Password),
|
||||
new XElement("FIO", ImplementerFio),
|
||||
new XElement("Qualification", Qualification),
|
||||
new XElement("WorkExperience", WorkExperience)
|
||||
);
|
||||
}
|
@ -12,6 +12,7 @@ namespace SushiBarFileImplement.Models
|
||||
public string SushiName { get; private set; } = string.Empty;
|
||||
public int SushiId { get; private set; }
|
||||
public int ClientId { get; }
|
||||
public int ImplementerId { get; set; }
|
||||
public int Count { get; private set; }
|
||||
public double Sum { get; private set; }
|
||||
public OrderStatus Status { get; private set; } = OrderStatus.Unknown;
|
||||
@ -29,6 +30,7 @@ namespace SushiBarFileImplement.Models
|
||||
Id = model.Id,
|
||||
SushiId = model.SushiId,
|
||||
SushiName = model.SushiName,
|
||||
ImplementerId = model.ImplementerId,
|
||||
Count = model.Count,
|
||||
Sum = model.Sum,
|
||||
Status = model.Status,
|
||||
@ -51,6 +53,7 @@ namespace SushiBarFileImplement.Models
|
||||
Count = Convert.ToInt32(element.Element("Count")!.Value),
|
||||
Sum = Convert.ToDouble(element.Element("Sum")!.Value),
|
||||
Status = (OrderStatus)Enum.Parse(typeof(OrderStatus), element.Element("Status")!.Value),
|
||||
ImplementerId = Convert.ToInt32(element.Element("ImplementerId")!.Value),
|
||||
DateCreate = DateTime.ParseExact(element.Element("DateCreate")!.Value, "G", null)
|
||||
};
|
||||
|
||||
@ -67,6 +70,7 @@ namespace SushiBarFileImplement.Models
|
||||
}
|
||||
SushiId = model.SushiId;
|
||||
SushiName = model.SushiName;
|
||||
ImplementerId = model.ImplementerId;
|
||||
Count = model.Count;
|
||||
Sum = model.Sum;
|
||||
Status = model.Status;
|
||||
@ -78,6 +82,9 @@ namespace SushiBarFileImplement.Models
|
||||
Id = Id,
|
||||
SushiId = SushiId,
|
||||
SushiName = SushiName,
|
||||
ImplementerFio = DataFileSingleton.GetInstance()
|
||||
.Implementers
|
||||
.FirstOrDefault(x => x.Id == ImplementerId)?.ImplementerFio ?? string.Empty,
|
||||
Count = Count,
|
||||
Sum = Sum,
|
||||
Status = Status,
|
||||
@ -89,6 +96,7 @@ namespace SushiBarFileImplement.Models
|
||||
new XAttribute("Id", Id),
|
||||
new XElement("SushiName", SushiName),
|
||||
new XElement("SushiId", SushiId.ToString()),
|
||||
new XElement("ImplementerId", ImplementerId),
|
||||
new XElement("Count", Count.ToString()),
|
||||
new XElement("Sum", Sum.ToString()),
|
||||
new XElement("Status", Status.ToString()),
|
||||
|
9
SushiBar/SushiBarModels/Models/IImplementerModel.cs
Normal file
9
SushiBar/SushiBarModels/Models/IImplementerModel.cs
Normal file
@ -0,0 +1,9 @@
|
||||
namespace SushiBarDataModels.Models;
|
||||
|
||||
public interface IImplementerModel : IId
|
||||
{
|
||||
string ImplementerFio { get; }
|
||||
string Password { get; }
|
||||
int WorkExperience { get; }
|
||||
int Qualification { get; }
|
||||
}
|
@ -8,11 +8,14 @@ namespace SushibarListImplement
|
||||
public List<Component> Components { get; set; }
|
||||
public List<Order> Orders { get; set; }
|
||||
public List<Sushi> Sushi { get; set; }
|
||||
public List<Implementer> Implementers { get; set; }
|
||||
|
||||
private DataListSingleton()
|
||||
{
|
||||
Components = new List<Component>();
|
||||
Orders = new List<Order>();
|
||||
Sushi = new List<Sushi>();
|
||||
Implementers = new List<Implementer>();
|
||||
}
|
||||
public static DataListSingleton GetInstance()
|
||||
{
|
||||
|
106
SushiBar/SushibarListImplement/Implements/ImplementerStorage.cs
Normal file
106
SushiBar/SushibarListImplement/Implements/ImplementerStorage.cs
Normal file
@ -0,0 +1,106 @@
|
||||
using SushiBarContracts.BindingModels;
|
||||
using SushiBarContracts.SearchModels;
|
||||
using SushiBarContracts.StoragesContracts;
|
||||
using SushiBarContracts.ViewModels;
|
||||
using SushibarListImplement.Models;
|
||||
|
||||
namespace SushibarListImplement.Implements;
|
||||
|
||||
public class ImplementerStorage : IImplementerStorage
|
||||
{
|
||||
private readonly DataListSingleton _source;
|
||||
public ImplementerStorage()
|
||||
{
|
||||
_source = DataListSingleton.GetInstance();
|
||||
}
|
||||
|
||||
public ImplementerViewModel? Delete(ImplementerBindingModel model)
|
||||
{
|
||||
for (var i = 0; i < _source.Implementers.Count; ++i)
|
||||
{
|
||||
if (_source.Implementers[i].Id != model.Id) continue;
|
||||
var element = _source.Implementers[i];
|
||||
_source.Implementers.RemoveAt(i);
|
||||
return element.GetViewModel;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
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.Id.HasValue)
|
||||
{
|
||||
var res = GetElement(model);
|
||||
return res != null ?
|
||||
new List<ImplementerViewModel> { res } :
|
||||
new List<ImplementerViewModel>();
|
||||
}
|
||||
|
||||
List<ImplementerViewModel> result = new();
|
||||
if (model.ImplementerFio == null) return result;
|
||||
foreach (var implementer in _source.Implementers)
|
||||
{
|
||||
if (implementer.ImplementerFio.Equals(model.ImplementerFio))
|
||||
{
|
||||
result.Add(implementer.GetViewModel);
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
}
|
42
SushiBar/SushibarListImplement/Models/Implementer.cs
Normal file
42
SushiBar/SushibarListImplement/Models/Implementer.cs
Normal file
@ -0,0 +1,42 @@
|
||||
using SushiBarContracts.BindingModels;
|
||||
using SushiBarContracts.ViewModels;
|
||||
using SushiBarDataModels.Models;
|
||||
|
||||
namespace SushibarListImplement.Models;
|
||||
|
||||
public class Implementer : IImplementerModel
|
||||
{
|
||||
public int Id { get; set; }
|
||||
public string ImplementerFio { get; set; }
|
||||
public string Password { get; set; }
|
||||
public int WorkExperience { get; set; }
|
||||
public int Qualification { get; set; }
|
||||
|
||||
public static Implementer? Create(ImplementerBindingModel model)
|
||||
{
|
||||
return new Implementer
|
||||
{
|
||||
Id = model.Id,
|
||||
Password = model.Password,
|
||||
Qualification = model.Qualification,
|
||||
ImplementerFio = model.ImplementerFio,
|
||||
WorkExperience = model.WorkExperience,
|
||||
};
|
||||
}
|
||||
|
||||
public void Update(ImplementerBindingModel model)
|
||||
{
|
||||
Password = model.Password;
|
||||
Qualification = model.Qualification;
|
||||
ImplementerFio = model.ImplementerFio;
|
||||
WorkExperience = model.WorkExperience;
|
||||
}
|
||||
|
||||
public ImplementerViewModel GetViewModel => new()
|
||||
{
|
||||
Id = Id,
|
||||
Password = Password,
|
||||
Qualification = Qualification,
|
||||
ImplementerFio = ImplementerFio,
|
||||
};
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user