public class PizzaService
{
public PizzaService()
{
}
public IEnumerable<Pizza> GetAll()
{
throw new NotImplementedException();
}
Add Context from DI
public class PizzaService
{
private readonly PizzaContext _context;
public PizzaService(PizzaContext context)
{
_context = context;
}
public IEnumerable<Pizza> GetAll()
{
throw new NotImplementedException();
}
Full example
public class PizzaService
{
private readonly PizzaContext _context;
public PizzaService(PizzaContext context)
{
_context = context;
}
public IEnumerable<Pizza> GetAll()
{
return _context.Pizzas
.AsNoTracking() // optimises for read only operations, since it will not track what you have done ready for saving
.ToList();
}
public Pizza? GetById(int id)
{
throw new NotImplementedException();
}
public Pizza? Create(Pizza newPizza)
{
_context.Pizzas.Add(newPizza); // data is assumed to be correct, you must handle this yourself
_context.SaveChanges();
return newPizza;
}
public void AddTopping(int PizzaId, int ToppingId)
{
var pizzaToUpdate = _context.Pizzas.Find(PizzaId);
var toppingToAdd = _context.Toppings.Find(ToppingId);
if (pizzaToUpdate is null || toppingToAdd is null)
{
throw new InvalidDataException("Your toppings dont exist pal!");
}
if (pizzaToUpdate.Toppings is null)
{
pizzaToUpdate.Toppings = new List<Topping>();
}
pizzaToUpdate.Toppings.Add(toppingToAdd);
_context.SaveChanges();
}
public void UpdateSauce(int PizzaId, int SauceId)
{
var pizzaToUpdate = _context.Pizzas.Find(PizzaId);
var sauceToUpdate = _context.Sauces.Find(SauceId);
if (pizzaToUpdate is null || sauceToUpdate is null)
{
throw new InvalidDataException("One of your IDs dont actually point to anything pal!");
}
pizzaToUpdate.Sauce = sauceToUpdate;
_context.SaveChanges();
}
public void DeleteById(int id)
{
var pizzaToDelete = _context.Pizzas.Find(id);
if (pizzaToDelete is not null)
{
_context.Pizzas.Remove(pizzaToDelete);
_context.SaveChanges();
}
}
}