ISEbd-21_Agliullov.D.A._Con.../ConfectionaryListImplement/GroupStorage.cs
Данияр Аглиуллов 310f02160b 1 раз
2024-02-02 11:10:52 +04:00

74 lines
2.0 KiB
C#

using ConfectioneryListImplement;
using EkzamenContracts.BindingModels;
using EkzamenContracts.SearchModels;
using EkzamenContracts.StoragesContract;
using EkzamenContracts.ViewModels;
namespace EkzamenListImplement
{
public class GroupStorage : IGroupStorage
{
private readonly DataListSingleton _source;
public GroupStorage()
{
_source = DataListSingleton.GetInstance();
}
public GroupViewModel? Delete(GroupBindingModel model)
{
var group = _source.Groups.FirstOrDefault(x => x.Id == model.Id);
if (group != null)
{
_source.Groups.Remove(group);
}
return group?.GetViewModel;
}
public GroupViewModel? GetElement(GroupSearchModel model)
{
if (!model.Id.HasValue)
{
return null;
}
return _source.Groups.FirstOrDefault(x => x.Id == model.Id)?.GetViewModel;
}
public List<GroupViewModel> GetFilteredList(GroupSearchModel model)
{
var result = new List<GroupViewModel>();
if (!model.Id.HasValue)
{
return result;
}
return new() { GetElement(model) };
}
public List<GroupViewModel> GetFullList()
{
return _source.Groups.Select(x => x.GetViewModel).ToList();
}
public GroupViewModel? Insert(GroupBindingModel model)
{
model.Id = _source.Groups.Max(x => x.Id);
var newOrder = Group.Create(model);
if (newOrder == null)
{
return null;
}
_source.Groups.Add(newOrder);
return newOrder.GetViewModel;
}
public GroupViewModel? Update(GroupBindingModel model)
{
var group = _source.Groups.FirstOrDefault(x => x.Id == model.Id);
group?.Update(model);
return group?.GetViewModel;
return null;
}
}
}