сделала реализацию класса-хранилища для рецепта
This commit is contained in:
parent
1de7afe627
commit
e4030ac2e2
@ -3,6 +3,6 @@
|
|||||||
public class RecipeSearchModel
|
public class RecipeSearchModel
|
||||||
{
|
{
|
||||||
public int? Id { get; set; }
|
public int? Id { get; set; }
|
||||||
public string? Name { get; set; }
|
public string? Comment { get; set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -1,4 +1,10 @@
|
|||||||
using PolyclinicContracts.StoragesContracts;
|
using Microsoft.EntityFrameworkCore;
|
||||||
|
using PolyclinicContracts.BindingModels;
|
||||||
|
using PolyclinicContracts.SearchModels;
|
||||||
|
using PolyclinicContracts.StoragesContracts;
|
||||||
|
using PolyclinicContracts.ViewModels;
|
||||||
|
using PolyclinicDatabaseImplement.Models;
|
||||||
|
using SecuritySystemDatabaseImplement;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
@ -9,5 +15,69 @@ namespace PolyclinicDatabaseImplement.Implements
|
|||||||
{
|
{
|
||||||
public class RecipeStorage : IRecipeStorage
|
public class RecipeStorage : IRecipeStorage
|
||||||
{
|
{
|
||||||
|
public List<RecipeViewModel> GetFullList()
|
||||||
|
{
|
||||||
|
using var database = new PolyclinicDatabase();
|
||||||
|
return database.Recipes.Select(x => x.GetViewModel).ToList();
|
||||||
|
}
|
||||||
|
public List<RecipeViewModel> GetFilteredList(RecipeSearchModel bindingModel)
|
||||||
|
{
|
||||||
|
if (!bindingModel.Id.HasValue || string.IsNullOrEmpty(bindingModel.Comment))
|
||||||
|
{
|
||||||
|
return new();
|
||||||
|
}
|
||||||
|
using var database = new PolyclinicDatabase();
|
||||||
|
return database.Recipes.Where(x => x.Comment.Contains(bindingModel.Comment)).Select(x => x.GetViewModel).ToList();
|
||||||
|
}
|
||||||
|
|
||||||
|
public RecipeViewModel? GetElement(RecipeSearchModel bindingModel)
|
||||||
|
{
|
||||||
|
if (!bindingModel.Id.HasValue || string.IsNullOrEmpty(bindingModel.Comment))
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
using var database = new PolyclinicDatabase();
|
||||||
|
return database.Recipes.FirstOrDefault(x => (!string.IsNullOrEmpty(bindingModel.Comment) &&
|
||||||
|
x.Comment == bindingModel.Comment) || (bindingModel.Id.HasValue && x.Id == bindingModel.Id))?.GetViewModel;
|
||||||
|
}
|
||||||
|
|
||||||
|
public RecipeViewModel Insert(RecipeBindingModel bindingModel)
|
||||||
|
{
|
||||||
|
using var database = new PolyclinicDatabase();
|
||||||
|
var newRecipe = Recipe.Create(bindingModel);
|
||||||
|
if(newRecipe == null)
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
database.Recipes.Add(newRecipe);
|
||||||
|
database.SaveChanges();
|
||||||
|
return newRecipe.GetViewModel;
|
||||||
|
}
|
||||||
|
|
||||||
|
public RecipeViewModel? Update(RecipeBindingModel bindingModel)
|
||||||
|
{
|
||||||
|
using var database = new PolyclinicDatabase();
|
||||||
|
var recipe = database.Recipes.FirstOrDefault(x => x.Id == bindingModel.Id);
|
||||||
|
if(recipe == null)
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
recipe.Update(bindingModel);
|
||||||
|
database.SaveChanges();
|
||||||
|
return recipe.GetViewModel;
|
||||||
|
}
|
||||||
|
|
||||||
|
public RecipeViewModel? Delete(RecipeBindingModel bindingModel)
|
||||||
|
{
|
||||||
|
using var database = new PolyclinicDatabase();
|
||||||
|
var recipe = database.Recipes.FirstOrDefault(x => x.Id == bindingModel.Id);
|
||||||
|
if (recipe == null)
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
database.Recipes.Remove(recipe);
|
||||||
|
database.SaveChanges();
|
||||||
|
return recipe.GetViewModel;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -16,7 +16,7 @@ namespace PolyclinicDatabaseImplement.Models
|
|||||||
[Required]
|
[Required]
|
||||||
public string Comment { get; set; } = string.Empty;
|
public string Comment { get; set; } = string.Empty;
|
||||||
|
|
||||||
public static Recipe Create(PolyclinicDatabase database, RecipeBindingModel bindingModel)
|
public static Recipe Create( RecipeBindingModel bindingModel)
|
||||||
{
|
{
|
||||||
return new Recipe()
|
return new Recipe()
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user