using ElectronicsShopContracts.BindingModels; using ElectronicsShopContracts.SearchModels; using ElectronicsShopContracts.StorageContracts; using ElectronicsShopContracts.ViewModels; using ElectronicsShopDataBaseImplement.Models; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ElectronicsShopDataBaseImplement.Implements { public class MessageInfoStorage : IMessageInfoStorage { public MessageInfoViewModel? GetElement(MessageInfoSearchModel model) { using var context = new Database(); if (model.MessageID != null) { return context.Messages.FirstOrDefault(x => x.MessageID == model.MessageID)?.GetViewModel; } return null; } public List GetFilteredList(MessageInfoSearchModel model) { using var context = new Database(); return context.Messages .Where(x => x.MessageID == model.MessageID).Select(x => x.GetViewModel).ToList(); } public List GetFullList() { using var context = new Database(); return context.Messages.Select(x => x.GetViewModel).ToList(); } public MessageInfoViewModel? Insert(MessageInfoBindingModel model) { using var context = new Database(); var newMessage = MessageInfo.Create(model); if (newMessage == null || context.Messages.Any(x => x.MessageID.Equals(model.MessageID))) { return null; } context.Messages.Add(newMessage); context.SaveChanges(); return newMessage.GetViewModel; } } }