easyeat/backend/API/DBAccess/ShoppingListDBAccess.cs

61 lines
1.8 KiB
C#

using API.Models.RecipeModels;
using API.Models.ShoppingListModels;
using API.Models.UserModels;
using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;
namespace API.DBAccess
{
public class ShoppingListDBAccess
{
private readonly DBContext _context;
public ShoppingListDBAccess(DBContext context)
{
_context = context;
}
// Read the shoppinglist connected to the user
public async Task<User> ReadShoppingList(int userId)
{
var user = await _context.Users.Include(u => u.ShoppingList).FirstOrDefaultAsync(u => u.Id == userId);
return user;
}
// Updates the shoppinglist
public async Task<IActionResult> UpdateShoppingList(User user)
{
_context.Entry(user).State = EntityState.Modified;
bool saved = await _context.SaveChangesAsync() >= 1;
if (saved) { return new OkObjectResult(true); }
return new ConflictObjectResult(new { message = "Could not save to database" });
}
// Adds an item to the shoppinglist
public async Task<bool> AddItemToShoppingList(User user)
{
_context.Entry(user).State = EntityState.Modified;
bool saved = await _context.SaveChangesAsync() >= 1;
if (saved) { return true; }
return false;
}
public async Task<IActionResult> DeleteItemFromShoppinglist(ShoppingListItem item)
{
_context.ShoppingList.Remove(item);
bool saved = await _context.SaveChangesAsync() >= 0;
if (saved) { return new OkObjectResult(saved); }
return new ConflictObjectResult(new { message = "Could not save to database" });
}
}
}