diff --git a/.gitignore b/.gitignore
index c61018e..150009c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -77,4 +77,6 @@ ClientBin/
*.publishsettings
.idea/
-*.sqlite3
\ No newline at end of file
+*.sqlite3
+/db.sqlite3-shm
+/db.sqlite3-wal
diff --git a/ThuisApi.csproj b/Api.csproj
similarity index 71%
rename from ThuisApi.csproj
rename to Api.csproj
index ed5ae6e..cddfdfd 100644
--- a/ThuisApi.csproj
+++ b/Api.csproj
@@ -1,26 +1,28 @@
- net8.0
+ net10.0
enable
enable
+ Api
+ latestmajor
-
-
- all
- runtime; build; native; contentfiles; analyzers; buildtransitive
-
-
-
+
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
+
+
+
+
+
diff --git a/Controllers/CardController.cs b/Controllers/CardController.cs
index 104629d..c0da7e4 100644
--- a/Controllers/CardController.cs
+++ b/Controllers/CardController.cs
@@ -1,14 +1,9 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Threading.Tasks;
-using Microsoft.AspNetCore.Http;
+using Data;
+using Data.Models;
using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;
-using ThuisApi.Data;
-using ThuisApi.Models;
-namespace ThuisApi.Controllers
+namespace Api.Controllers
{
[Route("api/[controller]")]
[ApiController]
diff --git a/Controllers/FreezerController.cs b/Controllers/FreezerController.cs
index ca338f8..2fa7e93 100644
--- a/Controllers/FreezerController.cs
+++ b/Controllers/FreezerController.cs
@@ -1,15 +1,11 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Threading.Tasks;
+using Api.Models;
using AutoMapper;
-using Microsoft.AspNetCore.Http;
+using Data;
+using Data.Models;
using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;
-using ThuisApi.Data;
-using ThuisApi.Models;
-namespace ThuisApi.Controllers
+namespace Api.Controllers
{
[Route("api/[controller]")]
[ApiController]
@@ -28,21 +24,11 @@ namespace ThuisApi.Controllers
[HttpGet]
public async Task>> GetFreezer()
{
- // Iterate over the freezers to add amount in freezer.
- var freezers = await _context.Freezer.ToListAsync();
- var freezerResponse = new List();
- foreach (var freezer in freezers)
+ return Ok(new { freezers = _context.Freezer.Select(freezer => new FreezerDto
{
- freezerResponse.Add(new FreezerDto
- {
- FreezerId = freezer.FreezerId,
- Name = freezer.Name,
- AmountInFreezer =
- await _context.FreezerItem.CountAsync(a => a.Freezer.FreezerId == freezer.FreezerId)
- });
- }
-
- return Ok(freezerResponse.ToArray());
+ FreezerId = freezer.FreezerId, Name = freezer.Name,
+ AmountInFreezer = _context.FreezerItem.Count(fi => fi.FreezerId == freezer.FreezerId)
+ })});
}
// GET: api/Freezer/5
diff --git a/Controllers/FreezerItemController.cs b/Controllers/FreezerItemController.cs
index 84aa984..ff2aeb2 100644
--- a/Controllers/FreezerItemController.cs
+++ b/Controllers/FreezerItemController.cs
@@ -1,17 +1,12 @@
-using System;
-using System.Collections.Generic;
using System.Globalization;
-using System.Linq;
-using System.Text.Json;
-using System.Threading.Tasks;
+using Api.Models;
using AutoMapper;
-using Microsoft.AspNetCore.Http;
+using Data;
+using Data.Models;
using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;
-using ThuisApi.Data;
-using ThuisApi.Models;
-namespace ThuisApi.Controllers
+namespace Api.Controllers
{
[Route("api/[controller]")]
[ApiController]
@@ -42,9 +37,9 @@ namespace ThuisApi.Controllers
return NotFound();
}
- return Ok(_mapper.Map>(await _context.FreezerItem
+ return Ok(new {freezerItems = _mapper.Map>(await _context.FreezerItem
.Where(a => a.FreezerId == id)
- .ToArrayAsync()));
+ .ToArrayAsync())});
}
// GET: api/FreezerItem/5
@@ -98,9 +93,9 @@ namespace ThuisApi.Controllers
public async Task> PostFreezerItem(FreezerItemDto freezerItemDto)
{
var mappedItem = _mapper.Map(freezerItemDto);
- if (mappedItem.DatePlacedInFreezer.ToString(CultureInfo.CurrentCulture).Equals(""))
+ if (mappedItem.AddedOn.ToString(CultureInfo.CurrentCulture).Equals(""))
{
- mappedItem.DatePlacedInFreezer = DateTime.Now;
+ mappedItem.AddedOn = DateTime.Now;
}
mappedItem.Freezer =
diff --git a/Controllers/IndexController.cs b/Controllers/IndexController.cs
index 5b97faa..d2a794e 100644
--- a/Controllers/IndexController.cs
+++ b/Controllers/IndexController.cs
@@ -1,7 +1,6 @@
-using Microsoft.AspNetCore.Http.HttpResults;
using Microsoft.AspNetCore.Mvc;
-namespace ThuisApi.Controllers;
+namespace Api.Controllers;
public class IndexController : ControllerBase
{
diff --git a/Data/ThuisDbContext.cs b/Data/ThuisDbContext.cs
deleted file mode 100644
index 95a0c05..0000000
--- a/Data/ThuisDbContext.cs
+++ /dev/null
@@ -1,51 +0,0 @@
-using Microsoft.EntityFrameworkCore;
-using ThuisApi.Models;
-
-namespace ThuisApi.Data;
-
-public class ThuisDbContext : DbContext
-{
- public DbSet Cards { get; set; }
- public DbSet Freezer { get; set; }
- public DbSet FreezerItem { get; set; }
-
- public ThuisDbContext(DbContextOptions options) : base(options)
- {
- }
-
- protected override void OnModelCreating(ModelBuilder modelBuilder)
- {
- base.OnModelCreating(modelBuilder);
-
- modelBuilder.Entity().HasData(
- new Freezer
- {
- FreezerId = 1,
- Name = "Keuken"
- },
- new Freezer
- {
- FreezerId = 2,
- Name = "Berging"
- });
-
- modelBuilder.Entity().HasData(
- new FreezerItem
- {
- FreezerItemId = 1,
- FreezerId = 1,
- Item = "Kip",
- Amount = 1,
- Drawer = 1
-
- },
- new FreezerItem
- {
- FreezerItemId = 2,
- FreezerId = 2,
- Item = "1 pak van 2 hamburgers",
- Amount = 1,
- Drawer = 2
- });
- }
-}
\ No newline at end of file
diff --git a/Migrations/20230406151852_InitialDb.Designer.cs b/Migrations/20230406151852_InitialDb.Designer.cs
deleted file mode 100644
index 4b9a6c1..0000000
--- a/Migrations/20230406151852_InitialDb.Designer.cs
+++ /dev/null
@@ -1,131 +0,0 @@
-//
-using System;
-using Microsoft.EntityFrameworkCore;
-using Microsoft.EntityFrameworkCore.Infrastructure;
-using Microsoft.EntityFrameworkCore.Migrations;
-using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
-using ThuisApi.Data;
-
-#nullable disable
-
-namespace ThuisApi.Migrations
-{
- [DbContext(typeof(ThuisDbContext))]
- [Migration("20230406151852_InitialDb")]
- partial class InitialDb
- {
- ///
- protected override void BuildTargetModel(ModelBuilder modelBuilder)
- {
-#pragma warning disable 612, 618
- modelBuilder.HasAnnotation("ProductVersion", "7.0.4");
-
- modelBuilder.Entity("ThuisApi.Models.Card", b =>
- {
- b.Property("CardId")
- .ValueGeneratedOnAdd()
- .HasColumnType("INTEGER");
-
- b.Property("Code")
- .IsRequired()
- .HasColumnType("TEXT");
-
- b.Property("Issuer")
- .IsRequired()
- .HasColumnType("TEXT");
-
- b.HasKey("CardId");
-
- b.ToTable("Cards");
- });
-
- modelBuilder.Entity("ThuisApi.Models.Freezer", b =>
- {
- b.Property("FreezerId")
- .ValueGeneratedOnAdd()
- .HasColumnType("INTEGER");
-
- b.Property("Name")
- .IsRequired()
- .HasColumnType("TEXT");
-
- b.HasKey("FreezerId");
-
- b.ToTable("Freezer");
-
- b.HasData(
- new
- {
- FreezerId = 1,
- Name = "Keuken"
- },
- new
- {
- FreezerId = 2,
- Name = "Berging"
- });
- });
-
- modelBuilder.Entity("ThuisApi.Models.FreezerItem", b =>
- {
- b.Property("FreezerItemId")
- .ValueGeneratedOnAdd()
- .HasColumnType("INTEGER");
-
- b.Property("Amount")
- .HasColumnType("INTEGER");
-
- b.Property("DatePlacedInFreezer")
- .HasColumnType("TEXT");
-
- b.Property("Drawer")
- .HasColumnType("INTEGER");
-
- b.Property("FreezerId")
- .HasColumnType("INTEGER");
-
- b.Property("Item")
- .IsRequired()
- .HasColumnType("TEXT");
-
- b.HasKey("FreezerItemId");
-
- b.HasIndex("FreezerId");
-
- b.ToTable("FreezerItem");
-
- b.HasData(
- new
- {
- FreezerItemId = 1,
- Amount = 1,
- DatePlacedInFreezer = new DateTime(1, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified),
- Drawer = 1,
- FreezerId = 1,
- Item = "Kip"
- },
- new
- {
- FreezerItemId = 2,
- Amount = 1,
- DatePlacedInFreezer = new DateTime(1, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified),
- Drawer = 2,
- FreezerId = 2,
- Item = "1 pak van 2 hamburgers"
- });
- });
-
- modelBuilder.Entity("ThuisApi.Models.FreezerItem", b =>
- {
- b.HasOne("ThuisApi.Models.Freezer", "Freezer")
- .WithMany()
- .HasForeignKey("FreezerId")
- .OnDelete(DeleteBehavior.Cascade)
- .IsRequired();
-
- b.Navigation("Freezer");
- });
-#pragma warning restore 612, 618
- }
- }
-}
diff --git a/Migrations/20230406151852_InitialDb.cs b/Migrations/20230406151852_InitialDb.cs
deleted file mode 100644
index 247fea1..0000000
--- a/Migrations/20230406151852_InitialDb.cs
+++ /dev/null
@@ -1,103 +0,0 @@
-using System;
-using Microsoft.EntityFrameworkCore.Migrations;
-
-#nullable disable
-
-#pragma warning disable CA1814 // Prefer jagged arrays over multidimensional
-
-namespace ThuisApi.Migrations
-{
- ///
- public partial class InitialDb : Migration
- {
- ///
- protected override void Up(MigrationBuilder migrationBuilder)
- {
- migrationBuilder.CreateTable(
- name: "Cards",
- columns: table => new
- {
- CardId = table.Column(type: "INTEGER", nullable: false)
- .Annotation("Sqlite:Autoincrement", true),
- Issuer = table.Column(type: "TEXT", nullable: false),
- Code = table.Column(type: "TEXT", nullable: false)
- },
- constraints: table =>
- {
- table.PrimaryKey("PK_Cards", x => x.CardId);
- });
-
- migrationBuilder.CreateTable(
- name: "Freezer",
- columns: table => new
- {
- FreezerId = table.Column(type: "INTEGER", nullable: false)
- .Annotation("Sqlite:Autoincrement", true),
- Name = table.Column(type: "TEXT", nullable: false)
- },
- constraints: table =>
- {
- table.PrimaryKey("PK_Freezer", x => x.FreezerId);
- });
-
- migrationBuilder.CreateTable(
- name: "FreezerItem",
- columns: table => new
- {
- FreezerItemId = table.Column(type: "INTEGER", nullable: false)
- .Annotation("Sqlite:Autoincrement", true),
- Item = table.Column(type: "TEXT", nullable: false),
- Amount = table.Column(type: "INTEGER", nullable: false),
- Drawer = table.Column(type: "INTEGER", nullable: false),
- DatePlacedInFreezer = table.Column(type: "TEXT", nullable: false),
- FreezerId = table.Column(type: "INTEGER", nullable: false)
- },
- constraints: table =>
- {
- table.PrimaryKey("PK_FreezerItem", x => x.FreezerItemId);
- table.ForeignKey(
- name: "FK_FreezerItem_Freezer_FreezerId",
- column: x => x.FreezerId,
- principalTable: "Freezer",
- principalColumn: "FreezerId",
- onDelete: ReferentialAction.Cascade);
- });
-
- migrationBuilder.InsertData(
- table: "Freezer",
- columns: new[] { "FreezerId", "Name" },
- values: new object[,]
- {
- { 1, "Keuken" },
- { 2, "Berging" }
- });
-
- migrationBuilder.InsertData(
- table: "FreezerItem",
- columns: new[] { "FreezerItemId", "Amount", "DatePlacedInFreezer", "Drawer", "FreezerId", "Item" },
- values: new object[,]
- {
- { 1, 1, new DateTime(1, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), 1, 1, "Kip" },
- { 2, 1, new DateTime(1, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), 2, 2, "1 pak van 2 hamburgers" }
- });
-
- migrationBuilder.CreateIndex(
- name: "IX_FreezerItem_FreezerId",
- table: "FreezerItem",
- column: "FreezerId");
- }
-
- ///
- protected override void Down(MigrationBuilder migrationBuilder)
- {
- migrationBuilder.DropTable(
- name: "Cards");
-
- migrationBuilder.DropTable(
- name: "FreezerItem");
-
- migrationBuilder.DropTable(
- name: "Freezer");
- }
- }
-}
diff --git a/Migrations/ThuisDbContextModelSnapshot.cs b/Migrations/ThuisDbContextModelSnapshot.cs
deleted file mode 100644
index 428ae5d..0000000
--- a/Migrations/ThuisDbContextModelSnapshot.cs
+++ /dev/null
@@ -1,128 +0,0 @@
-//
-using System;
-using Microsoft.EntityFrameworkCore;
-using Microsoft.EntityFrameworkCore.Infrastructure;
-using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
-using ThuisApi.Data;
-
-#nullable disable
-
-namespace ThuisApi.Migrations
-{
- [DbContext(typeof(ThuisDbContext))]
- partial class ThuisDbContextModelSnapshot : ModelSnapshot
- {
- protected override void BuildModel(ModelBuilder modelBuilder)
- {
-#pragma warning disable 612, 618
- modelBuilder.HasAnnotation("ProductVersion", "7.0.4");
-
- modelBuilder.Entity("ThuisApi.Models.Card", b =>
- {
- b.Property("CardId")
- .ValueGeneratedOnAdd()
- .HasColumnType("INTEGER");
-
- b.Property("Code")
- .IsRequired()
- .HasColumnType("TEXT");
-
- b.Property("Issuer")
- .IsRequired()
- .HasColumnType("TEXT");
-
- b.HasKey("CardId");
-
- b.ToTable("Cards");
- });
-
- modelBuilder.Entity("ThuisApi.Models.Freezer", b =>
- {
- b.Property("FreezerId")
- .ValueGeneratedOnAdd()
- .HasColumnType("INTEGER");
-
- b.Property("Name")
- .IsRequired()
- .HasColumnType("TEXT");
-
- b.HasKey("FreezerId");
-
- b.ToTable("Freezer");
-
- b.HasData(
- new
- {
- FreezerId = 1,
- Name = "Keuken"
- },
- new
- {
- FreezerId = 2,
- Name = "Berging"
- });
- });
-
- modelBuilder.Entity("ThuisApi.Models.FreezerItem", b =>
- {
- b.Property("FreezerItemId")
- .ValueGeneratedOnAdd()
- .HasColumnType("INTEGER");
-
- b.Property("Amount")
- .HasColumnType("INTEGER");
-
- b.Property("DatePlacedInFreezer")
- .HasColumnType("TEXT");
-
- b.Property("Drawer")
- .HasColumnType("INTEGER");
-
- b.Property("FreezerId")
- .HasColumnType("INTEGER");
-
- b.Property("Item")
- .IsRequired()
- .HasColumnType("TEXT");
-
- b.HasKey("FreezerItemId");
-
- b.HasIndex("FreezerId");
-
- b.ToTable("FreezerItem");
-
- b.HasData(
- new
- {
- FreezerItemId = 1,
- Amount = 1,
- DatePlacedInFreezer = new DateTime(1, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified),
- Drawer = 1,
- FreezerId = 1,
- Item = "Kip"
- },
- new
- {
- FreezerItemId = 2,
- Amount = 1,
- DatePlacedInFreezer = new DateTime(1, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified),
- Drawer = 2,
- FreezerId = 2,
- Item = "1 pak van 2 hamburgers"
- });
- });
-
- modelBuilder.Entity("ThuisApi.Models.FreezerItem", b =>
- {
- b.HasOne("ThuisApi.Models.Freezer", "Freezer")
- .WithMany()
- .HasForeignKey("FreezerId")
- .OnDelete(DeleteBehavior.Cascade)
- .IsRequired();
-
- b.Navigation("Freezer");
- });
-#pragma warning restore 612, 618
- }
- }
-}
diff --git a/Models/Card.cs b/Models/Card.cs
deleted file mode 100644
index e8ed6e7..0000000
--- a/Models/Card.cs
+++ /dev/null
@@ -1,9 +0,0 @@
-namespace ThuisApi.Models
-{
- public class Card
- {
- public int CardId { get; set; }
- public string Issuer { get; set; }
- public string Code { get; set; }
- }
-}
\ No newline at end of file
diff --git a/Models/Freezer.cs b/Models/Freezer.cs
deleted file mode 100644
index 3da25c5..0000000
--- a/Models/Freezer.cs
+++ /dev/null
@@ -1,7 +0,0 @@
-namespace ThuisApi.Models;
-
-public class Freezer
-{
- public int FreezerId { get; set; }
- public string Name { get; set; }
-}
\ No newline at end of file
diff --git a/Models/FreezerDto.cs b/Models/FreezerDto.cs
index 3f7f926..e8d06e0 100644
--- a/Models/FreezerDto.cs
+++ b/Models/FreezerDto.cs
@@ -1,8 +1,8 @@
-namespace ThuisApi.Models;
+namespace Api.Models;
public class FreezerDto
{
public int FreezerId { get; set; }
- public string Name { get; set; }
+ public string? Name { get; set; }
public int AmountInFreezer { get; set; }
}
\ No newline at end of file
diff --git a/Models/FreezerItem.cs b/Models/FreezerItem.cs
deleted file mode 100644
index 87fde06..0000000
--- a/Models/FreezerItem.cs
+++ /dev/null
@@ -1,13 +0,0 @@
-namespace ThuisApi.Models;
-
-public class FreezerItem
-{
- public int FreezerItemId { get; set; }
- public string Item { get; set; }
- public int Amount { get; set; }
- public int Drawer { get; set; }
- public DateTime DatePlacedInFreezer { get; set; }
-
- public int FreezerId { get; set; }
- public Freezer Freezer { get; set; }
-}
\ No newline at end of file
diff --git a/Models/FreezerItemDto.cs b/Models/FreezerItemDto.cs
index 2bca5ed..b4c7d0c 100644
--- a/Models/FreezerItemDto.cs
+++ b/Models/FreezerItemDto.cs
@@ -1,11 +1,11 @@
-namespace ThuisApi.Models;
+namespace Api.Models;
public class FreezerItemDto
{
public int FreezerItemId { get; set; }
- public string Item { get; set; }
+ public string? Name { get; set; }
public int Amount { get; set; }
public int Drawer { get; set; }
- public string? DateTimeAdded { get; set; }
+ public string? AddedOn { get; set; }
public int FreezerId { get; set; }
}
\ No newline at end of file
diff --git a/Models/ThuisApiProfile.cs b/Models/ThuisApiProfile.cs
index 043abb1..11c734d 100644
--- a/Models/ThuisApiProfile.cs
+++ b/Models/ThuisApiProfile.cs
@@ -1,6 +1,7 @@
using AutoMapper;
+using Data.Models;
-namespace ThuisApi.Models;
+namespace Api.Models;
public class ThuisApiProfile : Profile
{
diff --git a/Program.cs b/Program.cs
index b532430..e231aae 100644
--- a/Program.cs
+++ b/Program.cs
@@ -1,6 +1,6 @@
+using Api.Models;
+using Data;
using Microsoft.EntityFrameworkCore;
-using ThuisApi.Data;
-using ThuisApi.Models;
var builder = WebApplication.CreateBuilder(args);
diff --git a/Properties/launchSettings.json b/Properties/launchSettings.json
index 7bca823..051a221 100644
--- a/Properties/launchSettings.json
+++ b/Properties/launchSettings.json
@@ -9,7 +9,7 @@
}
},
"profiles": {
- "ThuisApi": {
+ "Api": {
"commandName": "Project",
"dotnetRunMessages": true,
"launchBrowser": false,
@@ -19,14 +19,6 @@
"ASPNETCORE_ENVIRONMENT": "Development",
"AUTH_TOKEN": "kaas"
}
- },
- "IIS Express": {
- "commandName": "IISExpress",
- "launchBrowser": false,
- "launchUrl": "swagger",
- "environmentVariables": {
- "ASPNETCORE_ENVIRONMENT": "Development"
- }
}
}
}