Changed delete item in shopping list to work and add item to only return an item and not an array with one item

This commit is contained in:
Jeas0001 2025-05-08 10:44:34 +02:00
parent bf588c62ed
commit 7e1583f485
6 changed files with 24 additions and 14 deletions

View File

@ -28,11 +28,11 @@ namespace API.BusinessLogic
{
var user = await _dbAccess.ReadShoppingList(userId);
List<ShoppingList> shoppingList = user.ShoppingList;
List<ShoppingListItem> shoppingList = user.ShoppingList;
if (shoppingList.Any(s => s.Name == listItemDTO.Name))
{
ShoppingList item = shoppingList.Where(s => s.Name == listItemDTO.Name).FirstOrDefault();
ShoppingListItem item = shoppingList.Where(s => s.Name == listItemDTO.Name).FirstOrDefault();
shoppingList.Remove(item);
if (item.Unit == listItemDTO.Unit)
@ -76,7 +76,7 @@ namespace API.BusinessLogic
}
else
{
ShoppingList newItem = new ShoppingList();
ShoppingListItem newItem = new ShoppingListItem();
newItem.Name = listItemDTO.Name;
newItem.Amount = listItemDTO.Amount;
newItem.Unit = listItemDTO.Unit;
@ -88,7 +88,7 @@ namespace API.BusinessLogic
var updatedShoppingList = await _dbAccess.ReadShoppingList(userId);
if (succes) { return new OkObjectResult(updatedShoppingList.ShoppingList.Where(s => s.Name == listItemDTO.Name)); }
if (succes) { return new OkObjectResult(updatedShoppingList.ShoppingList.Where(s => s.Name == listItemDTO.Name).First()); }
return new ConflictObjectResult(new { message = "Could not save to database" });
}
@ -140,11 +140,11 @@ namespace API.BusinessLogic
{
var user = await _dbAccess.ReadShoppingList(userId);
int itemIndex = user.ShoppingList.FindIndex(x => x.Id == itemId);
var item = user.ShoppingList.Where(x => x.Id == itemId).FirstOrDefault();
user.ShoppingList.RemoveAt(itemIndex);
if (item == null) { return new ConflictObjectResult(new { message = "Could not find item" }); }
return await _dbAccess.UpdateShoppingList(user);
return await _dbAccess.DeleteItemFromShoppinglist(item);
}
// Adds an entire recipes ingredients to the shoppinglist
@ -156,11 +156,11 @@ namespace API.BusinessLogic
foreach (var ingredient in ingredients)
{
List<ShoppingList> shoppingList = user.ShoppingList;
List<ShoppingListItem> shoppingList = user.ShoppingList;
if (shoppingList.Any(s => s.Name == ingredient.Name))
{
ShoppingList item = shoppingList.Where(s => s.Name == ingredient.Name).FirstOrDefault();
ShoppingListItem item = shoppingList.Where(s => s.Name == ingredient.Name).FirstOrDefault();
shoppingList.Remove(item);
if (item.Unit == ingredient.Unit)
@ -205,7 +205,7 @@ namespace API.BusinessLogic
}
else
{
ShoppingList newItem = new ShoppingList();
ShoppingListItem newItem = new ShoppingListItem();
newItem.Name = ingredient.Name;
newItem.Amount = ingredient.Amount;
newItem.Unit = ingredient.Unit;

View File

@ -67,7 +67,7 @@ namespace API.BusinessLogic
Password = hashedPassword,
Salt = salt,
Recipes = new List<Recipe>(),
ShoppingList = new List<ShoppingList>(),
ShoppingList = new List<ShoppingListItem>(),
};
return await _dbAccess.CreateUser(user);

View File

@ -11,7 +11,7 @@ namespace API.DBAccess
public DbSet<Recipe> Recipes { get; set; }
public DbSet<ShoppingList> ShoppingList { get; set; }
public DbSet<ShoppingListItem> ShoppingList { get; set; }
public DBContext(DbContextOptions<DBContext> options) : base(options) { }
}

View File

@ -46,5 +46,15 @@ namespace API.DBAccess
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" });
}
}
}

View File

@ -1,6 +1,6 @@
namespace API.Models.ShoppingListModels
{
public class ShoppingList
public class ShoppingListItem
{
public int Id { get; set; }

View File

@ -21,6 +21,6 @@ namespace API.Models.UserModels
public List<Recipe> Recipes { get; set; }
public List<ShoppingList> ShoppingList { get; set; }
public List<ShoppingListItem> ShoppingList { get; set; }
}
}