瀏覽代碼

chore: update framework to version 8

Mariano Z. 2 年之前
父節點
當前提交
3014cf9d62

+ 3 - 3
Products.API/Products.API.csproj

@@ -1,14 +1,14 @@
 <Project Sdk="Microsoft.NET.Sdk.Web">
 
     <PropertyGroup>
-        <TargetFramework>net7.0</TargetFramework>
+        <TargetFramework>net8.0</TargetFramework>
         <Nullable>enable</Nullable>
         <ImplicitUsings>enable</ImplicitUsings>
     </PropertyGroup>
 
     <ItemGroup>
-        <PackageReference Include="Microsoft.AspNetCore.OpenApi" Version="7.0.10"/>
-        <PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="7.0.9"/>
+        <PackageReference Include="Microsoft.AspNetCore.OpenApi" Version="8.0.3"/>
+        <PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="8.0.2"/>
         <PackageReference Include="Swashbuckle.AspNetCore" Version="6.5.0"/>
     </ItemGroup>
 

+ 51 - 34
Products.Backoffice/Controllers/ProductController.cs

@@ -1,32 +1,34 @@
 using Microsoft.AspNetCore.Diagnostics;
 using Microsoft.AspNetCore.Mvc;
 using Products.Backoffice.Models;
-using Products.Business.Service;
-using Products.Common.Dtos;
+using Products.Business.Domain;
+using Products.Business.Persistence;
 using Products.Common.Exceptions;
 
 namespace Products.Backoffice.Controllers;
 
 public class ProductController : Controller
 {
-    private readonly IProductService _productService;
+    private readonly DataContext _ctx;
+    private readonly ILogger<ProductController> _logger;
 
-    public ProductController(IProductService productService)
+    public ProductController(DataContext dbContext, ILogger<ProductController> logger)
     {
-        _productService = productService;
+        _ctx = dbContext;
+        _logger = logger;
     }
-    
+
     // GET
     public IActionResult Index()
     {
-        var products = _productService.GetProducts();
+        var products = _ctx.Products.ToList();
         return View(products);
     }
-    
+
     // GET /product/1
     public IActionResult Details(int id)
     {
-        var product = _productService.GetProduct(id);
+        var product = _ctx.Products.Find(id);
         return View(product);
     }
 
@@ -34,46 +36,61 @@ public class ProductController : Controller
     {
         return View();
     }
-    
+
     [HttpPost]
-    public IActionResult Create(CreateProductDto productDto)
+    public IActionResult Create(Product product)
     {
         if (!ModelState.IsValid)
         {
-            return View(productDto);
+            return View(product);
         }
-        _productService.AddProduct(productDto);
+        _ctx.Products.Add(product);
+        _ctx.SaveChanges();
         return RedirectToAction(nameof(Index));
     }
 
     public IActionResult Edit(int id)
     {
-        var product = _productService.GetProduct(id);
+        var product = _ctx.Products.Find(id);
+        if (product == null)
+        {
+            return NotFound();
+        }
         return View(product);
     }
-    
+
     [HttpPost]
-    public IActionResult Edit(int id, ProductDto productDto)
+    public IActionResult Edit(int id, Product product)
     {
-        if (!ModelState.IsValid)
+        if (id != product.Id)
         {
-            return View(productDto);
+            return BadRequest();
         }
-        _productService.UpdateProduct(id, new UpdateProductDto()
+
+        if (!ModelState.IsValid)
         {
-            Name = productDto.Name,
-            Brand = productDto.Brand,
-            Color = productDto.Color
-                
-        });
+            return View(product);
+        }
+
+        _ctx.Products.Update(product);
+        _ctx.SaveChanges();
         return RedirectToAction(nameof(Index));
     }
 
     public IActionResult Delete(int id)
     {
         try
+
         {
-            _productService.DeleteProduct(id);
+            var p = _ctx.Products.Find(id);
+
+            if (p == null)
+            {
+                return NotFound();
+            }
+
+            _ctx.Products.Remove(p);
+            _ctx.SaveChanges();
         }
         catch (Exception e)
         {
@@ -81,12 +98,12 @@ public class ProductController : Controller
         }
         return RedirectToAction(nameof(Index));
     }
-    
-    [Route("Error/{statusCode:int}")] 
-    public IActionResult Error(int statusCode) 
-    {     
-        var feature = HttpContext.Features.Get<IStatusCodeReExecuteFeature>();      
-    
-        return View(new ErrorViewModel { StatusCode = statusCode, OriginalPath = feature?.OriginalPath }); 
-    } 
-}
+
+    [Route("Error/{statusCode:int}")]
+    public IActionResult Error(int statusCode)
+    {
+        var feature = HttpContext.Features.Get<IStatusCodeReExecuteFeature>();
+
+        return View(new ErrorViewModel { StatusCode = statusCode, OriginalPath = feature?.OriginalPath });
+    }
+}

+ 1 - 1
Products.Backoffice/Products.Backoffice.csproj

@@ -1,7 +1,7 @@
 <Project Sdk="Microsoft.NET.Sdk.Web">
 
     <PropertyGroup>
-        <TargetFramework>net7.0</TargetFramework>
+        <TargetFramework>net8.0</TargetFramework>
         <Nullable>enable</Nullable>
         <ImplicitUsings>enable</ImplicitUsings>
     </PropertyGroup>

+ 3 - 1
Products.Backoffice/Views/Product/Create.cshtml

@@ -1,5 +1,7 @@
 @using Products.Common.Types
-@model Products.Common.Dtos.CreateProductDto
+@using Products.Business.Domain;
+
+@model Products.Business.Domain.Product
    @* [Required] *@
    @*  public string Name { get; set; } *@
    @*  [Required] *@

+ 1 - 1
Products.Backoffice/Views/Product/Details.cshtml

@@ -1,4 +1,4 @@
-@model Products.Common.Dtos.ProductDto
+@model Products.Business.Domain.Product
 
 @* create a pretty form to disaply the product details *@
 

+ 4 - 4
Products.Backoffice/Views/Product/Edit.cshtml

@@ -1,6 +1,6 @@
 @using Products.Common.Types
-@model Products.Common.Dtos.ProductDto
-   
+@model Products.Business.Domain.Product
+
 
 <h1>Edit Product</h1>
 
@@ -31,11 +31,11 @@
     </div>
 
 <div>
-    <input type="submit" 
+    <input type="submit"
            value="Save"
            class="btn btn-primary mt-2"
     />
-    
+
 </div>
 
 </form>

+ 4 - 4
Products.Backoffice/Views/Product/Index.cshtml

@@ -1,10 +1,10 @@
-@model IEnumerable<Products.Common.Dtos.ProductDto>
+@model IEnumerable<Products.Business.Domain.Product>
 
 @{
     ViewData["Title"] = "Home Page";
 }
 
-<a asp-action="Create" class="btn btn-primary">Create</a> 
+<a asp-action="Create" class="btn btn-primary">Create</a>
 
 <table class="table">
     <thead>
@@ -26,10 +26,10 @@
         <td>@item.Brand</td>
         <!-- Actions Buttons -->
         <td class="text-center">
-            <a asp-action="Edit" asp-route-id="@item.Id" class="btn btn-primary">Edit</a> 
+            <a asp-action="Edit" asp-route-id="@item.Id" class="btn btn-primary">Edit</a>
             <a asp-action="Delete" asp-route-id="@item.Id" class="btn btn-danger">Delete</a>
         </td>
     </tr>
 }
 </tbody>
-</table>
+</table>

+ 2 - 2
Products.Business/Products.Business.csproj

@@ -1,7 +1,7 @@
 <Project Sdk="Microsoft.NET.Sdk">
 
     <PropertyGroup>
-        <TargetFramework>net7.0</TargetFramework>
+        <TargetFramework>net8.0</TargetFramework>
         <ImplicitUsings>enable</ImplicitUsings>
         <Nullable>enable</Nullable>
     </PropertyGroup>
@@ -11,7 +11,7 @@
     </ItemGroup>
 
     <ItemGroup>
-        <PackageReference Include="Microsoft.EntityFrameworkCore.InMemory" Version="7.0.10"/>
+        <PackageReference Include="Microsoft.EntityFrameworkCore.InMemory" Version="8.0.3"/>
     </ItemGroup>
 
 </Project>

+ 1 - 1
Products.Common/Products.Common.csproj

@@ -1,7 +1,7 @@
 <Project Sdk="Microsoft.NET.Sdk">
 
     <PropertyGroup>
-        <TargetFramework>net7.0</TargetFramework>
+        <TargetFramework>net8.0</TargetFramework>
         <ImplicitUsings>enable</ImplicitUsings>
         <Nullable>enable</Nullable>
     </PropertyGroup>

+ 3 - 2
global.json

@@ -1,7 +1,8 @@
 {
   "sdk": {
-    "version": "7.0.0",
+    "version": "8.0.0",
     "rollForward": "latestMajor",
     "allowPrerelease": true
   }
-}
+}
+