From ff7e27173c1ee8a3b06341962eda568bcac97f57 Mon Sep 17 00:00:00 2001 From: VictoriaPresnyakova Date: Sun, 30 Apr 2023 19:40:27 +0400 Subject: [PATCH] MessageInfoStorage added --- .../Implements/MessageInfoStorage.cs | 48 ++++++++++++++++++- 1 file changed, 46 insertions(+), 2 deletions(-) diff --git a/JewelryStoreDatabaseImplement/Implements/MessageInfoStorage.cs b/JewelryStoreDatabaseImplement/Implements/MessageInfoStorage.cs index d039e18..11f87e3 100644 --- a/JewelryStoreDatabaseImplement/Implements/MessageInfoStorage.cs +++ b/JewelryStoreDatabaseImplement/Implements/MessageInfoStorage.cs @@ -1,4 +1,9 @@ -using System; +using JewelryStoreContracts.BindingModels; +using JewelryStoreContracts.SearchModels; +using JewelryStoreContracts.StoragesContracts; +using JewelryStoreContracts.ViewModels; +using JewelryStoreDatabaseImplement.Models; +using System; using System.Collections.Generic; using System.Linq; using System.Text; @@ -6,7 +11,46 @@ using System.Threading.Tasks; namespace JewelryStoreDatabaseImplement.Implements { - internal class MessageInfoStorage + public class MessageInfoStorage : IMessageInfoStorage { + public MessageInfoViewModel? GetElement(MessageInfoSearchModel model) + { + if (model.MessageId == null) + return null; + using var context = new JewelryStoreDataBase(); + return context.Messages.FirstOrDefault(x => x.MessageId == model.MessageId)?.GetViewModel; + } + + public List GetFilteredList(MessageInfoSearchModel model) + { + if (!model.ClientId.HasValue) + return new(); + using var context = new JewelryStoreDataBase(); + return context.Messages + .Where(x => x.ClientId == model.ClientId) + .Select(x => x.GetViewModel) + .ToList(); + } + + public List GetFullList() + { + using var context = new JewelryStoreDataBase(); + return context.Messages + .Select(x => x.GetViewModel) + .ToList(); + } + + public MessageInfoViewModel? Insert(MessageInfoBindingModel model) + { + var newMessage = Message.Create(model); + if (newMessage == null) + { + return null; + } + using var context = new JewelryStoreDataBase(); + context.Messages.Add(newMessage); + context.SaveChanges(); + return newMessage.GetViewModel; + } } }