using AbstractLawFirmContracts.BindingModels; using AbstractLawFirmContracts.SearchModels; using AbstractLawFirmContracts.StoragesContracts; using AbstractLawFirmContracts.ViewModels; using AbstractLawFirmListImplement.Models; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace AbstractLawFirmListImplement.Implements { public class MessageInfoStorage : IMessageInfoStorage { private readonly DataListSingleton _source; public MessageInfoStorage(DataListSingleton source) { _source = DataListSingleton.GetInstance(); } public MessageInfoViewModel? GetElement(MessageInfoSearchModel model) { if (string.IsNullOrEmpty(model.MessageId)) { return null; } foreach (var msg in _source.Messages) { if (msg.MessageId.Equals(model.MessageId)) { return msg.GetViewModel; } } return null; } public List GetFilteredList(MessageInfoSearchModel model) { var list = new List(); foreach (var msg in _source.Messages) { if (msg.ClientId.HasValue && model.ClientId == msg.ClientId) { list.Add(msg.GetViewModel); } } return list; } public List GetFullList() { var list = new List(); foreach (var msg in _source.Messages) { list.Add(msg.GetViewModel); } return list; } public MessageInfoViewModel? Insert(MessageInfoBindingModel model) { var newMessage = MessageInfo.Create(model); if (newMessage == null) { return null; } _source.Messages.Add(newMessage); return newMessage.GetViewModel; } } }