73 lines
1.7 KiB
C#
73 lines
1.7 KiB
C#
|
using LibraryContracts.StorageContracts;
|
|||
|
using LibraryDatabase;
|
|||
|
using LibraryDatabase.Models;
|
|||
|
using LibraryDataModels.Dtos;
|
|||
|
using LibraryDataModels.Views;
|
|||
|
using System;
|
|||
|
using System.Collections.Generic;
|
|||
|
using System.Linq;
|
|||
|
using System.Runtime.ConstrainedExecution;
|
|||
|
using System.Text;
|
|||
|
using System.Threading.Tasks;
|
|||
|
|
|||
|
namespace LibraryDatabase.Storages
|
|||
|
{
|
|||
|
public class AuthorStorage : IAuthorStorage
|
|||
|
{
|
|||
|
public List<AuthorView> GetFullList()
|
|||
|
{
|
|||
|
using var context = new LibraryDatabaseContext();
|
|||
|
return context.Authors
|
|||
|
.Select(x => x.GetView)
|
|||
|
.ToList();
|
|||
|
}
|
|||
|
|
|||
|
public AuthorView? GetElement(AuthorDto model)
|
|||
|
{
|
|||
|
using var context = new LibraryDatabaseContext();
|
|||
|
return context.Authors
|
|||
|
.FirstOrDefault(x => x.Id == model.Id)
|
|||
|
?.GetView;
|
|||
|
}
|
|||
|
|
|||
|
public AuthorView? Insert(AuthorDto model)
|
|||
|
{
|
|||
|
var newAuthor = Author.Create(model);
|
|||
|
if (newAuthor == null)
|
|||
|
{
|
|||
|
return null;
|
|||
|
}
|
|||
|
using var context = new LibraryDatabaseContext();
|
|||
|
context.Authors.Add(newAuthor);
|
|||
|
context.SaveChanges();
|
|||
|
return newAuthor.GetView;
|
|||
|
}
|
|||
|
|
|||
|
public AuthorView? Update(AuthorDto model)
|
|||
|
{
|
|||
|
using var context = new LibraryDatabaseContext();
|
|||
|
var author = context.Authors.FirstOrDefault(x => x.Id == model.Id);
|
|||
|
if (author == null)
|
|||
|
{
|
|||
|
return null;
|
|||
|
}
|
|||
|
author.Update(model);
|
|||
|
context.SaveChanges();
|
|||
|
return author.GetView;
|
|||
|
}
|
|||
|
|
|||
|
public AuthorView? Delete(AuthorDto model)
|
|||
|
{
|
|||
|
using var context = new LibraryDatabaseContext();
|
|||
|
var element = context.Authors.FirstOrDefault(rec => rec.Id == model.Id);
|
|||
|
if (element != null)
|
|||
|
{
|
|||
|
context.Authors.Remove(element);
|
|||
|
context.SaveChanges();
|
|||
|
return element.GetView;
|
|||
|
}
|
|||
|
return null;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|