From 41f41ce3fbe5e4ffa6f98f1bdc0351af63628d71 Mon Sep 17 00:00:00 2001 From: Francesco D'Amico Date: Mon, 24 Mar 2025 09:27:13 +0100 Subject: [PATCH] Fixed errors SA1516 --- .../Data/FrancescosRecipesWorldDbContext.cs | 15 +++++++++--- ...escosRecipesWorldDbContextModelSnapshot.cs | 5 ++-- .../Models/BackendModels/Category/Category.cs | 3 +++ .../Models/BackendModels/Favorit/Favorit.cs | 2 ++ .../BackendModels/Ingredient/Ingredient.cs | 3 +++ .../IngredientsShoppingList.cs | 2 ++ .../BackendModels/Instruction/Instruction.cs | 5 ++++ .../BackendModels/MediaFile/MediaFile.cs | 3 +++ .../Models/BackendModels/Recipe/Difficulty.cs | 4 ++++ .../Models/BackendModels/Recipe/Recipe.cs | 13 +++++++++++ .../RecipeIngredient/RecipeIngredient.cs | 5 ++++ .../Shoppinglist/ShoppingList.cs | 3 +++ .../Models/BackendModels/Unit/Unit.cs | 8 +++++-- Francesco.Recipes.World/Program.cs | 23 ++++++++++++++++--- 14 files changed, 83 insertions(+), 11 deletions(-) diff --git a/Francesco.Recipes.World/Data/FrancescosRecipesWorldDbContext.cs b/Francesco.Recipes.World/Data/FrancescosRecipesWorldDbContext.cs index 5146867..67117c4 100644 --- a/Francesco.Recipes.World/Data/FrancescosRecipesWorldDbContext.cs +++ b/Francesco.Recipes.World/Data/FrancescosRecipesWorldDbContext.cs @@ -1,5 +1,5 @@ -namespace Francesco.Recipes.World.Data -{ +namespace Francesco.Recipes.World.Data; + using Francesco.Recipes.World.Models.BackendModels; using Francesco.Recipes.World.Models.BackendModels.Category; using Francesco.Recipes.World.Models.BackendModels.Favorit; @@ -21,15 +21,25 @@ } public DbSet Categories => Set(); + public DbSet Ingredients => Set(); + public DbSet Instructions => Set(); + public DbSet Recipes => Set(); + public DbSet RecipeIngredients => Set(); + public DbSet Units => Set(); + public DbSet Favorits => Set(); + public DbSet IngredientsShoppingLists => Set(); + public DbSet ShoppingLists => Set(); + public DbSet MediaFiles => Set(); + public override Task SaveChangesAsync(CancellationToken cancellationToken = default) { foreach (var entry in ChangeTracker.Entries()) @@ -104,4 +114,3 @@ ]; } } -} diff --git a/Francesco.Recipes.World/Migrations/FrancescosRecipesWorldDbContextModelSnapshot.cs b/Francesco.Recipes.World/Migrations/FrancescosRecipesWorldDbContextModelSnapshot.cs index e24e960..130fbf5 100644 --- a/Francesco.Recipes.World/Migrations/FrancescosRecipesWorldDbContextModelSnapshot.cs +++ b/Francesco.Recipes.World/Migrations/FrancescosRecipesWorldDbContextModelSnapshot.cs @@ -1,10 +1,9 @@ // -using System; + using Francesco.Recipes.World.Data; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Infrastructure; -using Microsoft.EntityFrameworkCore.Metadata; -using Microsoft.EntityFrameworkCore.Storage.ValueConversion; + #nullable disable diff --git a/Francesco.Recipes.World/Models/BackendModels/Category/Category.cs b/Francesco.Recipes.World/Models/BackendModels/Category/Category.cs index 23f13b6..b088952 100644 --- a/Francesco.Recipes.World/Models/BackendModels/Category/Category.cs +++ b/Francesco.Recipes.World/Models/BackendModels/Category/Category.cs @@ -1,10 +1,13 @@ namespace Francesco.Recipes.World.Models.BackendModels.Category { using Francesco.Recipes.World.Models.BackendModels.Recipe; + public class Category { public Guid Id { get; set; } + public string Name { get; set; } = string.Empty; + public virtual ICollection Recipes { get; set; } = new List(); } } diff --git a/Francesco.Recipes.World/Models/BackendModels/Favorit/Favorit.cs b/Francesco.Recipes.World/Models/BackendModels/Favorit/Favorit.cs index 65b9aa9..97e12ed 100644 --- a/Francesco.Recipes.World/Models/BackendModels/Favorit/Favorit.cs +++ b/Francesco.Recipes.World/Models/BackendModels/Favorit/Favorit.cs @@ -5,7 +5,9 @@ public class Favorit { public Guid Id { get; set; } + public DateTime CreatedAt { get; set; } + public virtual ICollection Recipe { get; set; } = new List(); } } diff --git a/Francesco.Recipes.World/Models/BackendModels/Ingredient/Ingredient.cs b/Francesco.Recipes.World/Models/BackendModels/Ingredient/Ingredient.cs index 87797d2..c4c43c3 100644 --- a/Francesco.Recipes.World/Models/BackendModels/Ingredient/Ingredient.cs +++ b/Francesco.Recipes.World/Models/BackendModels/Ingredient/Ingredient.cs @@ -6,8 +6,11 @@ public class Ingredient { public Guid Id { get; set; } + public string Name { get; set; } = string.Empty; + public virtual ICollection RecipeIngredients { get; set; } = new List(); + public virtual ICollection IngredientShoppingLists { get; set; } = new List(); } } diff --git a/Francesco.Recipes.World/Models/BackendModels/IngredientShoppingList/IngredientsShoppingList.cs b/Francesco.Recipes.World/Models/BackendModels/IngredientShoppingList/IngredientsShoppingList.cs index 9e0fb38..78f92d7 100644 --- a/Francesco.Recipes.World/Models/BackendModels/IngredientShoppingList/IngredientsShoppingList.cs +++ b/Francesco.Recipes.World/Models/BackendModels/IngredientShoppingList/IngredientsShoppingList.cs @@ -6,7 +6,9 @@ public class IngredientsShoppingList { public Guid Id { get; set; } + public ShoppingList Shoppinglist { get; set; } = new (); + public Ingredient Ingredient { get; set; } = new (); } } diff --git a/Francesco.Recipes.World/Models/BackendModels/Instruction/Instruction.cs b/Francesco.Recipes.World/Models/BackendModels/Instruction/Instruction.cs index 0c2e855..77a16d1 100644 --- a/Francesco.Recipes.World/Models/BackendModels/Instruction/Instruction.cs +++ b/Francesco.Recipes.World/Models/BackendModels/Instruction/Instruction.cs @@ -2,12 +2,17 @@ { using Francesco.Recipes.World.Models.BackendModels.MediaFile; using Francesco.Recipes.World.Models.BackendModels.Recipe; + public class Instruction { public Guid Id { get; set; } + public string Description { get; set; } = string.Empty; + public int Number { get; set; } + public virtual Recipe Recipe { get; set; } = new (); + public virtual ICollection MediaFiles { get; set; } = new List(); } } diff --git a/Francesco.Recipes.World/Models/BackendModels/MediaFile/MediaFile.cs b/Francesco.Recipes.World/Models/BackendModels/MediaFile/MediaFile.cs index bafcd48..f8a8218 100644 --- a/Francesco.Recipes.World/Models/BackendModels/MediaFile/MediaFile.cs +++ b/Francesco.Recipes.World/Models/BackendModels/MediaFile/MediaFile.cs @@ -2,6 +2,7 @@ { using Francesco.Recipes.World.Models.BackendModels.Instruction; using Francesco.Recipes.World.Models.BackendModels.Recipe; + public class MediaFile { public Guid Id { get; set; } = Guid.NewGuid(); @@ -11,7 +12,9 @@ public string? MimeType { get; set; } public byte[]? Data { get; set; } + public virtual Recipe? Recipe { get; set; } = new (); + public virtual Instruction Instruction { get; set; } = new (); } } diff --git a/Francesco.Recipes.World/Models/BackendModels/Recipe/Difficulty.cs b/Francesco.Recipes.World/Models/BackendModels/Recipe/Difficulty.cs index 91d20a0..4456670 100644 --- a/Francesco.Recipes.World/Models/BackendModels/Recipe/Difficulty.cs +++ b/Francesco.Recipes.World/Models/BackendModels/Recipe/Difficulty.cs @@ -3,9 +3,13 @@ public enum Difficulty { VeryEasy = 1, + Easy = 2, + Medium = 3, + Hard = 4, + Expert = 5, } } diff --git a/Francesco.Recipes.World/Models/BackendModels/Recipe/Recipe.cs b/Francesco.Recipes.World/Models/BackendModels/Recipe/Recipe.cs index 0e46f85..da673d7 100644 --- a/Francesco.Recipes.World/Models/BackendModels/Recipe/Recipe.cs +++ b/Francesco.Recipes.World/Models/BackendModels/Recipe/Recipe.cs @@ -8,17 +8,30 @@ using Francesco.Recipes.World.Models.BackendModels.RecipeIngredient; public class Recipe : ITimeStampedEntity { public Guid Id { get; set; } + public string Name { get; set; } = string.Empty; + public string? Description { get; set; } + public Difficulty Difficulty { get; set; } + public int Servings { get; set; } + public TimeSpan PreparationTime { get; set; } + public TimeSpan CookingTime { get; set; } + public bool IsFavorite { get; set; } + public DateTime CreatedAt { get; set; } + public DateTime? ModifiedAt { get; set; } + public virtual ICollection RecipeIngredients { get; set; } = new List(); + public virtual ICollection Instructions { get; set; } = new List(); + public virtual ICollection MediaFiles { get; set; } = new List(); + public virtual Favorit Favorit { get; set; } = new (); } diff --git a/Francesco.Recipes.World/Models/BackendModels/RecipeIngredient/RecipeIngredient.cs b/Francesco.Recipes.World/Models/BackendModels/RecipeIngredient/RecipeIngredient.cs index 876da46..d64abb5 100644 --- a/Francesco.Recipes.World/Models/BackendModels/RecipeIngredient/RecipeIngredient.cs +++ b/Francesco.Recipes.World/Models/BackendModels/RecipeIngredient/RecipeIngredient.cs @@ -3,12 +3,17 @@ using Francesco.Recipes.World.Models.BackendModels.Ingredient; using Francesco.Recipes.World.Models.BackendModels.Recipe; using Francesco.Recipes.World.Models.BackendModels.Unit; + public class RecipeIngredient { public Guid Id { get; set; } + public virtual Recipe Recipe { get; set; } = new (); + public virtual Ingredient Ingredient { get; set; } = new (); + public virtual Unit Unit { get; set; } = new (); + public int Quantity { get; set; } } } diff --git a/Francesco.Recipes.World/Models/BackendModels/Shoppinglist/ShoppingList.cs b/Francesco.Recipes.World/Models/BackendModels/Shoppinglist/ShoppingList.cs index 95ffcb7..71fc7e7 100644 --- a/Francesco.Recipes.World/Models/BackendModels/Shoppinglist/ShoppingList.cs +++ b/Francesco.Recipes.World/Models/BackendModels/Shoppinglist/ShoppingList.cs @@ -5,8 +5,11 @@ public class ShoppingList : ITimeStampedEntity { public Guid Id { get; set; } + public DateTime CreatedAt { get; set; } + public DateTime? ModifiedAt { get; set; } + public virtual ICollection IngredientsShoppingLists { get; set; } = new List(); } } diff --git a/Francesco.Recipes.World/Models/BackendModels/Unit/Unit.cs b/Francesco.Recipes.World/Models/BackendModels/Unit/Unit.cs index 94ab6a8..ba8a539 100644 --- a/Francesco.Recipes.World/Models/BackendModels/Unit/Unit.cs +++ b/Francesco.Recipes.World/Models/BackendModels/Unit/Unit.cs @@ -1,11 +1,15 @@ -namespace Francesco.Recipes.World.Models.BackendModels.Unit; - +namespace Francesco.Recipes.World.Models.BackendModels.Unit +{ using Francesco.Recipes.World.Models.BackendModels.RecipeIngredient; public class Unit { public Guid Id { get; set; } + public string Name { get; set; } = string.Empty; + public string Symbol { get; set; } = string.Empty; + public virtual ICollection RecipeIngredient { get; set; } = new List(); } +} diff --git a/Francesco.Recipes.World/Program.cs b/Francesco.Recipes.World/Program.cs index c36c4ac..6d773ec 100644 --- a/Francesco.Recipes.World/Program.cs +++ b/Francesco.Recipes.World/Program.cs @@ -1,15 +1,22 @@ using Francesco.Recipes.World.Data; -using Microsoft.AspNetCore.Identity; -using Microsoft.EntityFrameworkCore; -using Serilog; +using Francesco.Recipes.World.Repositories; + +using FrancescoRecipesWorld.Repositories; + +using Microsoft.AspNetCore.Identity; + +using Microsoft.EntityFrameworkCore; var builder = WebApplication.CreateBuilder(args); + var services = builder.Services; + var configuration = builder.Configuration; var connectionString = builder.Configuration.GetConnectionString("FrancescosRecipesWorldDbContextConnection") ?? throw new InvalidOperationException("Connection string 'FrancescosRecipesWorldDbContextConnection' not found."); + services.AddDbContext(options => options.UseSqlServer(connectionString)); @@ -19,6 +26,14 @@ services.AddDefaultIdentity(options => options.SignIn.RequireConfi // Add services to the container. builder.Services.AddControllersWithViews(); +builder.Services.AddScoped(); + +builder.Services.AddScoped(); + +builder.Services.AddScoped(); + +builder.Services.AddScoped(); + var app = builder.Build(); // Configure the HTTP request pipeline. @@ -31,9 +46,11 @@ if (!app.Environment.IsDevelopment()) } app.UseHttpsRedirection(); + app.UseStaticFiles(); app.UseRouting(); + app.UseAuthentication(); app.UseAuthorization();