using DinerContracts.BindingModels; using DinerContracts.SearchModels; using DinerContracts.ViewModels; using DinerDataBaseImplement.Models; using Microsoft.EntityFrameworkCore; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DinerDataBaseImplement.Implements { public class MessageInfoStorage : IMessageInfoStorage { public MessageInfoViewModel? Insert(MessageInfoBindingModel model) { using var context = new DinerDatabaseBy6Work(); var newMessageInfo = MessageInfo.Create(context, model); if (newMessageInfo == null) { return null; } context.MessageInfos.Add(newMessageInfo); context.SaveChanges(); return newMessageInfo.GetViewModel; } public MessageInfoViewModel? GetElement(MessageInfoSearchModel model) { using var context = new DinerDatabaseBy6Work(); if (!string.IsNullOrEmpty(model.MessageID)) { return context.MessageInfos.FirstOrDefault(x => string.IsNullOrEmpty(model.MessageID) && model.MessageID == x.MessageID)?.GetViewModel; } return new(); } public List GetFilteredList(MessageInfoSearchModel model) { if (string.IsNullOrEmpty(model.MessageID)) { return new(); } using var context = new DinerDatabaseBy6Work(); return context.MessageInfos. Where(x => x.MessageID.Contains(model.MessageID)).Select(x => x.GetViewModel).ToList(); } public List GetFullList() { using var context = new DinerDatabaseBy6Work(); return context.MessageInfos.Select(x => x.GetViewModel).ToList(); } } }