first commit

This commit is contained in:
2026-03-22 00:29:34 +01:00
commit c16b4e3933
1729 changed files with 162013 additions and 0 deletions
@@ -0,0 +1,26 @@
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>net10.0</TargetFramework>
<Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="10.0.5" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="10.0.5">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="Swashbuckle.AspNetCore" Version="10.1.5" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\BethanysPieShopHRM.Shared\BethanysPieShopHRM.Shared.csproj" />
</ItemGroup>
<ItemGroup>
<Folder Include="wwwroot\Uploads\" />
</ItemGroup>
</Project>
@@ -0,0 +1,31 @@
using BethanysPieShopHRM.Api.Models;
using Microsoft.AspNetCore.Mvc;
namespace BethanysPieShopHRM.Api.Controllers
{
[Route("api/[controller]")]
[ApiController]
public class CountryController : Controller
{
private readonly ICountryRepository _countryRepository;
public CountryController(ICountryRepository countryRepository)
{
_countryRepository = countryRepository;
}
// GET: api/<controller>
[HttpGet]
public IActionResult GetCountries()
{
return Ok(_countryRepository.GetAllCountries());
}
// GET api/<controller>/5
[HttpGet("{id}")]
public IActionResult GetCountryById(int id)
{
return Ok(_countryRepository.GetCountryById(id));
}
}
}
@@ -0,0 +1,100 @@
using BethanysPieShopHRM.Api.Models;
using BethanysPieShopHRM.Shared.Domain;
using Microsoft.AspNetCore.Mvc;
namespace BethanysPieShopHRM.Api.Controllers
{
[Route("api/[controller]")]
[ApiController]
public class EmployeeController : Controller
{
private readonly IEmployeeRepository _employeeRepository;
private readonly IWebHostEnvironment _webHostEnvironment;
private readonly IHttpContextAccessor _httpContextAccessor;
public EmployeeController(IEmployeeRepository employeeRepository, IWebHostEnvironment webHostEnvironment, IHttpContextAccessor httpContextAccessor)
{
_employeeRepository = employeeRepository;
_webHostEnvironment = webHostEnvironment;
_httpContextAccessor = httpContextAccessor;
}
[HttpGet]
public IActionResult GetAllEmployees()
{
return Ok(_employeeRepository.GetAllEmployees());
}
[HttpGet("{id}")]
public IActionResult GetEmployeeById(int id)
{
return Ok(_employeeRepository.GetEmployeeById(id));
}
[HttpPost]
public IActionResult CreateEmployee([FromBody] Employee employee)
{
if (employee == null)
return BadRequest();
if (employee.FirstName == string.Empty || employee.LastName == string.Empty)
{
ModelState.AddModelError("Name/FirstName", "The name or first name shouldn't be empty");
}
if (!ModelState.IsValid)
return BadRequest(ModelState);
//handle image upload
string currenturl = _httpContextAccessor.HttpContext.Request.Host.Value;
var path = $"{_webHostEnvironment.WebRootPath}\\uploads\\{employee.ImageName}";
var filestream = System.IO.File.Create(path);
filestream.Write(employee.ImageContent, 0, employee.ImageContent.Length);
filestream.Close();
employee.ImageName = $"https://{currenturl}/uploads/{employee.ImageName}";
var createdEmployee = _employeeRepository.AddEmployee(employee);
return Created("employee", createdEmployee);
}
[HttpPut]
public IActionResult UpdateEmployee([FromBody] Employee employee)
{
if (employee == null)
return BadRequest();
if (employee.FirstName == string.Empty || employee.LastName == string.Empty)
{
ModelState.AddModelError("Name/FirstName", "The name or first name shouldn't be empty");
}
if (!ModelState.IsValid)
return BadRequest(ModelState);
var employeeToUpdate = _employeeRepository.GetEmployeeById(employee.EmployeeId);
if (employeeToUpdate == null)
return NotFound();
_employeeRepository.UpdateEmployee(employee);
return NoContent(); //success
}
[HttpDelete("{id}")]
public IActionResult DeleteEmployee(int id)
{
if (id == 0)
return BadRequest();
var employeeToDelete = _employeeRepository.GetEmployeeById(id);
if (employeeToDelete == null)
return NotFound();
_employeeRepository.DeleteEmployee(id);
return NoContent();//success
}
}
}
@@ -0,0 +1,32 @@
using BethanysPieShopHRM.Api.Models;
using Microsoft.AspNetCore.Mvc;
namespace BethanysPieShopHRM.Api.Controllers
{
[Route("api/[controller]")]
[ApiController]
public class JobCategoryController : Controller
{
private readonly IJobCategoryRepository _jobCategoryRepository;
public JobCategoryController(IJobCategoryRepository jobCategoryRepository)
{
_jobCategoryRepository = jobCategoryRepository;
}
// GET: api/<controller>
[HttpGet]
public IActionResult GetJobCategories()
{
return Ok(_jobCategoryRepository.GetAllJobCategories());
}
// GET api/<controller>/5
[HttpGet("{id}")]
public IActionResult GetJobCategoryById(int id)
{
return Ok(_jobCategoryRepository.GetJobCategoryById(id));
}
}
}
@@ -0,0 +1,267 @@
// <auto-generated />
using System;
using BethanysPieShopHRM.Api.Models;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Migrations;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
#nullable disable
namespace BethanysPieShopHRM.Api.Migrations
{
[DbContext(typeof(AppDbContext))]
[Migration("20260319223542_InitialMigration")]
partial class InitialMigration
{
/// <inheritdoc />
protected override void BuildTargetModel(ModelBuilder modelBuilder)
{
#pragma warning disable 612, 618
modelBuilder.HasAnnotation("ProductVersion", "10.0.5");
modelBuilder.Entity("BethanysPieShopHRM.Shared.Domain.Country", b =>
{
b.Property<int>("CountryId")
.ValueGeneratedOnAdd()
.HasColumnType("INTEGER");
b.Property<string>("Name")
.IsRequired()
.HasColumnType("TEXT");
b.HasKey("CountryId");
b.ToTable("Countries");
b.HasData(
new
{
CountryId = 1,
Name = "Belgium"
},
new
{
CountryId = 2,
Name = "Germany"
},
new
{
CountryId = 3,
Name = "Netherlands"
},
new
{
CountryId = 4,
Name = "USA"
},
new
{
CountryId = 5,
Name = "Japan"
},
new
{
CountryId = 6,
Name = "China"
},
new
{
CountryId = 7,
Name = "UK"
},
new
{
CountryId = 8,
Name = "France"
},
new
{
CountryId = 9,
Name = "Brazil"
});
});
modelBuilder.Entity("BethanysPieShopHRM.Shared.Domain.Employee", b =>
{
b.Property<int>("EmployeeId")
.ValueGeneratedOnAdd()
.HasColumnType("INTEGER");
b.Property<DateTime>("BirthDate")
.HasColumnType("TEXT");
b.Property<string>("City")
.IsRequired()
.HasColumnType("TEXT");
b.Property<string>("Comment")
.HasColumnType("TEXT");
b.Property<int>("CountryId")
.HasColumnType("INTEGER");
b.Property<string>("Email")
.IsRequired()
.HasColumnType("TEXT");
b.Property<DateTime?>("ExitDate")
.HasColumnType("TEXT");
b.Property<string>("FirstName")
.IsRequired()
.HasColumnType("TEXT");
b.Property<int>("Gender")
.HasColumnType("INTEGER");
b.Property<int>("JobCategoryId")
.HasColumnType("INTEGER");
b.Property<DateTime?>("JoinedDate")
.HasColumnType("TEXT");
b.Property<string>("LastName")
.IsRequired()
.HasColumnType("TEXT");
b.Property<double?>("Latitude")
.HasColumnType("REAL");
b.Property<double?>("Longitude")
.HasColumnType("REAL");
b.Property<int>("MaritalStatus")
.HasColumnType("INTEGER");
b.Property<string>("PhoneNumber")
.IsRequired()
.HasColumnType("TEXT");
b.Property<bool>("Smoker")
.HasColumnType("INTEGER");
b.Property<string>("Street")
.IsRequired()
.HasColumnType("TEXT");
b.Property<string>("Zip")
.IsRequired()
.HasColumnType("TEXT");
b.HasKey("EmployeeId");
b.HasIndex("CountryId");
b.HasIndex("JobCategoryId");
b.ToTable("Employees");
b.HasData(
new
{
EmployeeId = 1,
BirthDate = new DateTime(1979, 1, 16, 0, 0, 0, 0, DateTimeKind.Unspecified),
City = "Brussels",
Comment = "Lorem Ipsum",
CountryId = 1,
Email = "bethany@bethanyspieshop.com",
FirstName = "Bethany",
Gender = 1,
JobCategoryId = 1,
JoinedDate = new DateTime(2015, 3, 1, 0, 0, 0, 0, DateTimeKind.Unspecified),
LastName = "Smith",
Latitude = 50.850299999999997,
Longitude = 4.3517000000000001,
MaritalStatus = 1,
PhoneNumber = "324777888773",
Smoker = false,
Street = "Grote Markt 1",
Zip = "1000"
});
});
modelBuilder.Entity("BethanysPieShopHRM.Shared.Domain.JobCategory", b =>
{
b.Property<int>("JobCategoryId")
.ValueGeneratedOnAdd()
.HasColumnType("INTEGER");
b.Property<string>("JobCategoryName")
.IsRequired()
.HasColumnType("TEXT");
b.HasKey("JobCategoryId");
b.ToTable("JobCategories");
b.HasData(
new
{
JobCategoryId = 1,
JobCategoryName = "Pie research"
},
new
{
JobCategoryId = 2,
JobCategoryName = "Sales"
},
new
{
JobCategoryId = 3,
JobCategoryName = "Management"
},
new
{
JobCategoryId = 4,
JobCategoryName = "Store staff"
},
new
{
JobCategoryId = 5,
JobCategoryName = "Finance"
},
new
{
JobCategoryId = 6,
JobCategoryName = "QA"
},
new
{
JobCategoryId = 7,
JobCategoryName = "IT"
},
new
{
JobCategoryId = 8,
JobCategoryName = "Cleaning"
},
new
{
JobCategoryId = 9,
JobCategoryName = "Bakery"
});
});
modelBuilder.Entity("BethanysPieShopHRM.Shared.Domain.Employee", b =>
{
b.HasOne("BethanysPieShopHRM.Shared.Domain.Country", "Country")
.WithMany()
.HasForeignKey("CountryId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("BethanysPieShopHRM.Shared.Domain.JobCategory", "JobCategory")
.WithMany()
.HasForeignKey("JobCategoryId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Country");
b.Navigation("JobCategory");
});
#pragma warning restore 612, 618
}
}
}
@@ -0,0 +1,145 @@
using System;
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
#pragma warning disable CA1814 // Prefer jagged arrays over multidimensional
namespace BethanysPieShopHRM.Api.Migrations
{
/// <inheritdoc />
public partial class InitialMigration : Migration
{
/// <inheritdoc />
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.CreateTable(
name: "Countries",
columns: table => new
{
CountryId = table.Column<int>(type: "INTEGER", nullable: false)
.Annotation("Sqlite:Autoincrement", true),
Name = table.Column<string>(type: "TEXT", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_Countries", x => x.CountryId);
});
migrationBuilder.CreateTable(
name: "JobCategories",
columns: table => new
{
JobCategoryId = table.Column<int>(type: "INTEGER", nullable: false)
.Annotation("Sqlite:Autoincrement", true),
JobCategoryName = table.Column<string>(type: "TEXT", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_JobCategories", x => x.JobCategoryId);
});
migrationBuilder.CreateTable(
name: "Employees",
columns: table => new
{
EmployeeId = table.Column<int>(type: "INTEGER", nullable: false)
.Annotation("Sqlite:Autoincrement", true),
FirstName = table.Column<string>(type: "TEXT", nullable: false),
LastName = table.Column<string>(type: "TEXT", nullable: false),
BirthDate = table.Column<DateTime>(type: "TEXT", nullable: false),
Email = table.Column<string>(type: "TEXT", nullable: false),
Street = table.Column<string>(type: "TEXT", nullable: false),
Zip = table.Column<string>(type: "TEXT", nullable: false),
City = table.Column<string>(type: "TEXT", nullable: false),
CountryId = table.Column<int>(type: "INTEGER", nullable: false),
PhoneNumber = table.Column<string>(type: "TEXT", nullable: false),
Smoker = table.Column<bool>(type: "INTEGER", nullable: false),
MaritalStatus = table.Column<int>(type: "INTEGER", nullable: false),
Gender = table.Column<int>(type: "INTEGER", nullable: false),
Comment = table.Column<string>(type: "TEXT", nullable: true),
JoinedDate = table.Column<DateTime>(type: "TEXT", nullable: true),
ExitDate = table.Column<DateTime>(type: "TEXT", nullable: true),
JobCategoryId = table.Column<int>(type: "INTEGER", nullable: false),
Latitude = table.Column<double>(type: "REAL", nullable: true),
Longitude = table.Column<double>(type: "REAL", nullable: true)
},
constraints: table =>
{
table.PrimaryKey("PK_Employees", x => x.EmployeeId);
table.ForeignKey(
name: "FK_Employees_Countries_CountryId",
column: x => x.CountryId,
principalTable: "Countries",
principalColumn: "CountryId",
onDelete: ReferentialAction.Cascade);
table.ForeignKey(
name: "FK_Employees_JobCategories_JobCategoryId",
column: x => x.JobCategoryId,
principalTable: "JobCategories",
principalColumn: "JobCategoryId",
onDelete: ReferentialAction.Cascade);
});
migrationBuilder.InsertData(
table: "Countries",
columns: new[] { "CountryId", "Name" },
values: new object[,]
{
{ 1, "Belgium" },
{ 2, "Germany" },
{ 3, "Netherlands" },
{ 4, "USA" },
{ 5, "Japan" },
{ 6, "China" },
{ 7, "UK" },
{ 8, "France" },
{ 9, "Brazil" }
});
migrationBuilder.InsertData(
table: "JobCategories",
columns: new[] { "JobCategoryId", "JobCategoryName" },
values: new object[,]
{
{ 1, "Pie research" },
{ 2, "Sales" },
{ 3, "Management" },
{ 4, "Store staff" },
{ 5, "Finance" },
{ 6, "QA" },
{ 7, "IT" },
{ 8, "Cleaning" },
{ 9, "Bakery" }
});
migrationBuilder.InsertData(
table: "Employees",
columns: new[] { "EmployeeId", "BirthDate", "City", "Comment", "CountryId", "Email", "ExitDate", "FirstName", "Gender", "JobCategoryId", "JoinedDate", "LastName", "Latitude", "Longitude", "MaritalStatus", "PhoneNumber", "Smoker", "Street", "Zip" },
values: new object[] { 1, new DateTime(1979, 1, 16, 0, 0, 0, 0, DateTimeKind.Unspecified), "Brussels", "Lorem Ipsum", 1, "bethany@bethanyspieshop.com", null, "Bethany", 1, 1, new DateTime(2015, 3, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), "Smith", 50.850299999999997, 4.3517000000000001, 1, "324777888773", false, "Grote Markt 1", "1000" });
migrationBuilder.CreateIndex(
name: "IX_Employees_CountryId",
table: "Employees",
column: "CountryId");
migrationBuilder.CreateIndex(
name: "IX_Employees_JobCategoryId",
table: "Employees",
column: "JobCategoryId");
}
/// <inheritdoc />
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropTable(
name: "Employees");
migrationBuilder.DropTable(
name: "Countries");
migrationBuilder.DropTable(
name: "JobCategories");
}
}
}
@@ -0,0 +1,270 @@
// <auto-generated />
using System;
using BethanysPieShopHRM.Api.Models;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Migrations;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
#nullable disable
namespace BethanysPieShopHRM.Api.Migrations
{
[DbContext(typeof(AppDbContext))]
[Migration("20260321160544_addingImageName")]
partial class addingImageName
{
/// <inheritdoc />
protected override void BuildTargetModel(ModelBuilder modelBuilder)
{
#pragma warning disable 612, 618
modelBuilder.HasAnnotation("ProductVersion", "10.0.5");
modelBuilder.Entity("BethanysPieShopHRM.Shared.Domain.Country", b =>
{
b.Property<int>("CountryId")
.ValueGeneratedOnAdd()
.HasColumnType("INTEGER");
b.Property<string>("Name")
.IsRequired()
.HasColumnType("TEXT");
b.HasKey("CountryId");
b.ToTable("Countries");
b.HasData(
new
{
CountryId = 1,
Name = "Belgium"
},
new
{
CountryId = 2,
Name = "Germany"
},
new
{
CountryId = 3,
Name = "Netherlands"
},
new
{
CountryId = 4,
Name = "USA"
},
new
{
CountryId = 5,
Name = "Japan"
},
new
{
CountryId = 6,
Name = "China"
},
new
{
CountryId = 7,
Name = "UK"
},
new
{
CountryId = 8,
Name = "France"
},
new
{
CountryId = 9,
Name = "Brazil"
});
});
modelBuilder.Entity("BethanysPieShopHRM.Shared.Domain.Employee", b =>
{
b.Property<int>("EmployeeId")
.ValueGeneratedOnAdd()
.HasColumnType("INTEGER");
b.Property<DateTime>("BirthDate")
.HasColumnType("TEXT");
b.Property<string>("City")
.IsRequired()
.HasColumnType("TEXT");
b.Property<string>("Comment")
.HasColumnType("TEXT");
b.Property<int>("CountryId")
.HasColumnType("INTEGER");
b.Property<string>("Email")
.IsRequired()
.HasColumnType("TEXT");
b.Property<DateTime?>("ExitDate")
.HasColumnType("TEXT");
b.Property<string>("FirstName")
.IsRequired()
.HasColumnType("TEXT");
b.Property<int>("Gender")
.HasColumnType("INTEGER");
b.Property<string>("ImageName")
.HasColumnType("TEXT");
b.Property<int>("JobCategoryId")
.HasColumnType("INTEGER");
b.Property<DateTime?>("JoinedDate")
.HasColumnType("TEXT");
b.Property<string>("LastName")
.IsRequired()
.HasColumnType("TEXT");
b.Property<double?>("Latitude")
.HasColumnType("REAL");
b.Property<double?>("Longitude")
.HasColumnType("REAL");
b.Property<int>("MaritalStatus")
.HasColumnType("INTEGER");
b.Property<string>("PhoneNumber")
.IsRequired()
.HasColumnType("TEXT");
b.Property<bool>("Smoker")
.HasColumnType("INTEGER");
b.Property<string>("Street")
.IsRequired()
.HasColumnType("TEXT");
b.Property<string>("Zip")
.IsRequired()
.HasColumnType("TEXT");
b.HasKey("EmployeeId");
b.HasIndex("CountryId");
b.HasIndex("JobCategoryId");
b.ToTable("Employees");
b.HasData(
new
{
EmployeeId = 1,
BirthDate = new DateTime(1979, 1, 16, 0, 0, 0, 0, DateTimeKind.Unspecified),
City = "Brussels",
Comment = "Lorem Ipsum",
CountryId = 1,
Email = "bethany@bethanyspieshop.com",
FirstName = "Bethany",
Gender = 1,
JobCategoryId = 1,
JoinedDate = new DateTime(2015, 3, 1, 0, 0, 0, 0, DateTimeKind.Unspecified),
LastName = "Smith",
Latitude = 50.850299999999997,
Longitude = 4.3517000000000001,
MaritalStatus = 1,
PhoneNumber = "324777888773",
Smoker = false,
Street = "Grote Markt 1",
Zip = "1000"
});
});
modelBuilder.Entity("BethanysPieShopHRM.Shared.Domain.JobCategory", b =>
{
b.Property<int>("JobCategoryId")
.ValueGeneratedOnAdd()
.HasColumnType("INTEGER");
b.Property<string>("JobCategoryName")
.IsRequired()
.HasColumnType("TEXT");
b.HasKey("JobCategoryId");
b.ToTable("JobCategories");
b.HasData(
new
{
JobCategoryId = 1,
JobCategoryName = "Pie research"
},
new
{
JobCategoryId = 2,
JobCategoryName = "Sales"
},
new
{
JobCategoryId = 3,
JobCategoryName = "Management"
},
new
{
JobCategoryId = 4,
JobCategoryName = "Store staff"
},
new
{
JobCategoryId = 5,
JobCategoryName = "Finance"
},
new
{
JobCategoryId = 6,
JobCategoryName = "QA"
},
new
{
JobCategoryId = 7,
JobCategoryName = "IT"
},
new
{
JobCategoryId = 8,
JobCategoryName = "Cleaning"
},
new
{
JobCategoryId = 9,
JobCategoryName = "Bakery"
});
});
modelBuilder.Entity("BethanysPieShopHRM.Shared.Domain.Employee", b =>
{
b.HasOne("BethanysPieShopHRM.Shared.Domain.Country", "Country")
.WithMany()
.HasForeignKey("CountryId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("BethanysPieShopHRM.Shared.Domain.JobCategory", "JobCategory")
.WithMany()
.HasForeignKey("JobCategoryId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Country");
b.Navigation("JobCategory");
});
#pragma warning restore 612, 618
}
}
}
@@ -0,0 +1,35 @@
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace BethanysPieShopHRM.Api.Migrations
{
/// <inheritdoc />
public partial class addingImageName : Migration
{
/// <inheritdoc />
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.AddColumn<string>(
name: "ImageName",
table: "Employees",
type: "TEXT",
nullable: true);
migrationBuilder.UpdateData(
table: "Employees",
keyColumn: "EmployeeId",
keyValue: 1,
column: "ImageName",
value: null);
}
/// <inheritdoc />
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropColumn(
name: "ImageName",
table: "Employees");
}
}
}
@@ -0,0 +1,267 @@
// <auto-generated />
using System;
using BethanysPieShopHRM.Api.Models;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
#nullable disable
namespace BethanysPieShopHRM.Api.Migrations
{
[DbContext(typeof(AppDbContext))]
partial class AppDbContextModelSnapshot : ModelSnapshot
{
protected override void BuildModel(ModelBuilder modelBuilder)
{
#pragma warning disable 612, 618
modelBuilder.HasAnnotation("ProductVersion", "10.0.5");
modelBuilder.Entity("BethanysPieShopHRM.Shared.Domain.Country", b =>
{
b.Property<int>("CountryId")
.ValueGeneratedOnAdd()
.HasColumnType("INTEGER");
b.Property<string>("Name")
.IsRequired()
.HasColumnType("TEXT");
b.HasKey("CountryId");
b.ToTable("Countries");
b.HasData(
new
{
CountryId = 1,
Name = "Belgium"
},
new
{
CountryId = 2,
Name = "Germany"
},
new
{
CountryId = 3,
Name = "Netherlands"
},
new
{
CountryId = 4,
Name = "USA"
},
new
{
CountryId = 5,
Name = "Japan"
},
new
{
CountryId = 6,
Name = "China"
},
new
{
CountryId = 7,
Name = "UK"
},
new
{
CountryId = 8,
Name = "France"
},
new
{
CountryId = 9,
Name = "Brazil"
});
});
modelBuilder.Entity("BethanysPieShopHRM.Shared.Domain.Employee", b =>
{
b.Property<int>("EmployeeId")
.ValueGeneratedOnAdd()
.HasColumnType("INTEGER");
b.Property<DateTime>("BirthDate")
.HasColumnType("TEXT");
b.Property<string>("City")
.IsRequired()
.HasColumnType("TEXT");
b.Property<string>("Comment")
.HasColumnType("TEXT");
b.Property<int>("CountryId")
.HasColumnType("INTEGER");
b.Property<string>("Email")
.IsRequired()
.HasColumnType("TEXT");
b.Property<DateTime?>("ExitDate")
.HasColumnType("TEXT");
b.Property<string>("FirstName")
.IsRequired()
.HasColumnType("TEXT");
b.Property<int>("Gender")
.HasColumnType("INTEGER");
b.Property<string>("ImageName")
.HasColumnType("TEXT");
b.Property<int>("JobCategoryId")
.HasColumnType("INTEGER");
b.Property<DateTime?>("JoinedDate")
.HasColumnType("TEXT");
b.Property<string>("LastName")
.IsRequired()
.HasColumnType("TEXT");
b.Property<double?>("Latitude")
.HasColumnType("REAL");
b.Property<double?>("Longitude")
.HasColumnType("REAL");
b.Property<int>("MaritalStatus")
.HasColumnType("INTEGER");
b.Property<string>("PhoneNumber")
.IsRequired()
.HasColumnType("TEXT");
b.Property<bool>("Smoker")
.HasColumnType("INTEGER");
b.Property<string>("Street")
.IsRequired()
.HasColumnType("TEXT");
b.Property<string>("Zip")
.IsRequired()
.HasColumnType("TEXT");
b.HasKey("EmployeeId");
b.HasIndex("CountryId");
b.HasIndex("JobCategoryId");
b.ToTable("Employees");
b.HasData(
new
{
EmployeeId = 1,
BirthDate = new DateTime(1979, 1, 16, 0, 0, 0, 0, DateTimeKind.Unspecified),
City = "Brussels",
Comment = "Lorem Ipsum",
CountryId = 1,
Email = "bethany@bethanyspieshop.com",
FirstName = "Bethany",
Gender = 1,
JobCategoryId = 1,
JoinedDate = new DateTime(2015, 3, 1, 0, 0, 0, 0, DateTimeKind.Unspecified),
LastName = "Smith",
Latitude = 50.850299999999997,
Longitude = 4.3517000000000001,
MaritalStatus = 1,
PhoneNumber = "324777888773",
Smoker = false,
Street = "Grote Markt 1",
Zip = "1000"
});
});
modelBuilder.Entity("BethanysPieShopHRM.Shared.Domain.JobCategory", b =>
{
b.Property<int>("JobCategoryId")
.ValueGeneratedOnAdd()
.HasColumnType("INTEGER");
b.Property<string>("JobCategoryName")
.IsRequired()
.HasColumnType("TEXT");
b.HasKey("JobCategoryId");
b.ToTable("JobCategories");
b.HasData(
new
{
JobCategoryId = 1,
JobCategoryName = "Pie research"
},
new
{
JobCategoryId = 2,
JobCategoryName = "Sales"
},
new
{
JobCategoryId = 3,
JobCategoryName = "Management"
},
new
{
JobCategoryId = 4,
JobCategoryName = "Store staff"
},
new
{
JobCategoryId = 5,
JobCategoryName = "Finance"
},
new
{
JobCategoryId = 6,
JobCategoryName = "QA"
},
new
{
JobCategoryId = 7,
JobCategoryName = "IT"
},
new
{
JobCategoryId = 8,
JobCategoryName = "Cleaning"
},
new
{
JobCategoryId = 9,
JobCategoryName = "Bakery"
});
});
modelBuilder.Entity("BethanysPieShopHRM.Shared.Domain.Employee", b =>
{
b.HasOne("BethanysPieShopHRM.Shared.Domain.Country", "Country")
.WithMany()
.HasForeignKey("CountryId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("BethanysPieShopHRM.Shared.Domain.JobCategory", "JobCategory")
.WithMany()
.HasForeignKey("JobCategoryId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Country");
b.Navigation("JobCategory");
});
#pragma warning restore 612, 618
}
}
}
@@ -0,0 +1,67 @@
using System;
using Microsoft.EntityFrameworkCore;
using BethanysPieShopHRM.Shared.Domain;
namespace BethanysPieShopHRM.Api.Models
{
public class AppDbContext : DbContext
{
public AppDbContext(DbContextOptions<AppDbContext> options) : base(options)
{
}
public DbSet<Employee> Employees { get; set; }
public DbSet<Country> Countries { get; set; }
public DbSet<JobCategory> JobCategories { get; set; }
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
//seed categories
modelBuilder.Entity<Country>().HasData(new Country { CountryId = 1, Name = "Belgium" });
modelBuilder.Entity<Country>().HasData(new Country { CountryId = 2, Name = "Germany" });
modelBuilder.Entity<Country>().HasData(new Country { CountryId = 3, Name = "Netherlands" });
modelBuilder.Entity<Country>().HasData(new Country { CountryId = 4, Name = "USA" });
modelBuilder.Entity<Country>().HasData(new Country { CountryId = 5, Name = "Japan" });
modelBuilder.Entity<Country>().HasData(new Country { CountryId = 6, Name = "China" });
modelBuilder.Entity<Country>().HasData(new Country { CountryId = 7, Name = "UK" });
modelBuilder.Entity<Country>().HasData(new Country { CountryId = 8, Name = "France" });
modelBuilder.Entity<Country>().HasData(new Country { CountryId = 9, Name = "Brazil" });
modelBuilder.Entity<JobCategory>().HasData(new JobCategory(){JobCategoryId = 1, JobCategoryName = "Pie research"});
modelBuilder.Entity<JobCategory>().HasData(new JobCategory(){JobCategoryId = 2, JobCategoryName = "Sales"});
modelBuilder.Entity<JobCategory>().HasData(new JobCategory(){JobCategoryId = 3, JobCategoryName = "Management"});
modelBuilder.Entity<JobCategory>().HasData(new JobCategory(){JobCategoryId = 4, JobCategoryName = "Store staff"});
modelBuilder.Entity<JobCategory>().HasData(new JobCategory(){JobCategoryId = 5, JobCategoryName = "Finance"});
modelBuilder.Entity<JobCategory>().HasData(new JobCategory(){JobCategoryId = 6, JobCategoryName = "QA"});
modelBuilder.Entity<JobCategory>().HasData(new JobCategory(){JobCategoryId = 7, JobCategoryName = "IT"});
modelBuilder.Entity<JobCategory>().HasData(new JobCategory(){JobCategoryId = 8, JobCategoryName = "Cleaning"});
modelBuilder.Entity<JobCategory>().HasData(new JobCategory(){JobCategoryId = 9, JobCategoryName = "Bakery"});
modelBuilder.Entity<Employee>().HasData(new Employee
{
EmployeeId = 1,
CountryId = 1,
MaritalStatus = MaritalStatus.Single,
BirthDate = new DateTime(1979, 1, 16),
City = "Brussels",
Email = "bethany@bethanyspieshop.com",
FirstName = "Bethany",
LastName = "Smith",
Gender = Gender.Female,
PhoneNumber = "324777888773",
Smoker = false,
Street = "Grote Markt 1",
Zip = "1000",
JobCategoryId = 1,
Comment = "Lorem Ipsum",
ExitDate = null,
JoinedDate = new DateTime(2015, 3, 1),
Latitude = 50.8503,
Longitude = 4.3517
});
}
}
}
@@ -0,0 +1,24 @@
using BethanysPieShopHRM.Shared.Domain;
namespace BethanysPieShopHRM.Api.Models
{
public class CountryRepository : ICountryRepository
{
private readonly AppDbContext _appDbContext;
public CountryRepository(AppDbContext appDbContext)
{
_appDbContext = appDbContext;
}
public IEnumerable<Country> GetAllCountries()
{
return _appDbContext.Countries;
}
public Country GetCountryById(int countryId)
{
return _appDbContext.Countries.FirstOrDefault(c => c.CountryId == countryId);
}
}
}
@@ -0,0 +1,74 @@
using BethanysPieShopHRM.Shared.Domain;
namespace BethanysPieShopHRM.Api.Models
{
public class EmployeeRepository : IEmployeeRepository
{
private readonly AppDbContext _appDbContext;
private Random random = new Random();
public EmployeeRepository(AppDbContext appDbContext)
{
_appDbContext = appDbContext;
}
public IEnumerable<Employee> GetAllEmployees()
{
return _appDbContext.Employees;
}
public Employee GetEmployeeById(int employeeId)
{
return _appDbContext.Employees.FirstOrDefault(c => c.EmployeeId == employeeId);
}
public Employee AddEmployee(Employee employee)
{
var addedEntity = _appDbContext.Employees.Add(employee);
_appDbContext.SaveChanges();
return addedEntity.Entity;
}
public Employee UpdateEmployee(Employee employee)
{
var foundEmployee = _appDbContext.Employees.FirstOrDefault(e => e.EmployeeId == employee.EmployeeId);
if (foundEmployee != null)
{
foundEmployee.CountryId = employee.CountryId;
foundEmployee.MaritalStatus = employee.MaritalStatus;
foundEmployee.BirthDate = employee.BirthDate;
foundEmployee.City = employee.City;
foundEmployee.Email = employee.Email;
foundEmployee.FirstName = employee.FirstName;
foundEmployee.LastName = employee.LastName;
foundEmployee.Gender = employee.Gender;
foundEmployee.PhoneNumber = employee.PhoneNumber;
foundEmployee.Smoker = employee.Smoker;
foundEmployee.Street = employee.Street;
foundEmployee.Zip = employee.Zip;
foundEmployee.JobCategoryId = employee.JobCategoryId;
foundEmployee.Comment = employee.Comment;
foundEmployee.ExitDate = employee.ExitDate;
foundEmployee.JoinedDate = employee.JoinedDate;
//foundEmployee.ImageContent = employee.ImageContent;
//foundEmployee.ImageName = employee.ImageName;
_appDbContext.SaveChanges();
return foundEmployee;
}
return null;
}
public void DeleteEmployee(int employeeId)
{
var foundEmployee = _appDbContext.Employees.FirstOrDefault(e => e.EmployeeId == employeeId);
if (foundEmployee == null) return;
_appDbContext.Employees.Remove(foundEmployee);
_appDbContext.SaveChanges();
}
}
}
@@ -0,0 +1,10 @@
using BethanysPieShopHRM.Shared.Domain;
namespace BethanysPieShopHRM.Api.Models
{
public interface ICountryRepository
{
IEnumerable<Country> GetAllCountries();
Country GetCountryById(int countryId);
}
}
@@ -0,0 +1,13 @@
using BethanysPieShopHRM.Shared.Domain;
namespace BethanysPieShopHRM.Api.Models
{
public interface IEmployeeRepository
{
IEnumerable<Employee> GetAllEmployees();
Employee GetEmployeeById(int employeeId);
Employee AddEmployee(Employee employee);
Employee UpdateEmployee(Employee employee);
void DeleteEmployee(int employeeId);
}
}
@@ -0,0 +1,10 @@
using BethanysPieShopHRM.Shared.Domain;
namespace BethanysPieShopHRM.Api.Models
{
public interface IJobCategoryRepository
{
IEnumerable<JobCategory> GetAllJobCategories();
JobCategory GetJobCategoryById(int jobCategoryId);
}
}
@@ -0,0 +1,24 @@
using BethanysPieShopHRM.Shared.Domain;
namespace BethanysPieShopHRM.Api.Models
{
public class JobCategoryRepository: IJobCategoryRepository
{
private readonly AppDbContext _appDbContext;
public JobCategoryRepository(AppDbContext appDbContext)
{
_appDbContext = appDbContext;
}
public IEnumerable<JobCategory> GetAllJobCategories()
{
return _appDbContext.JobCategories;
}
public JobCategory GetJobCategoryById(int jobCategoryId)
{
return _appDbContext.JobCategories.FirstOrDefault(c => c.JobCategoryId == jobCategoryId);
}
}
}
+51
View File
@@ -0,0 +1,51 @@
using BethanysPieShopHRM.Api.Models;
using Microsoft.EntityFrameworkCore;
var builder = WebApplication.CreateBuilder(args);
// Add services to the container.
builder.Services.AddDbContext<AppDbContext>(options => {
options.UseSqlite(
builder.Configuration["ConnectionStrings:DefaultConnection"]);
});
builder.Services.AddScoped<ICountryRepository, CountryRepository>();
builder.Services.AddScoped<IJobCategoryRepository, JobCategoryRepository>();
builder.Services.AddScoped<IEmployeeRepository, EmployeeRepository>();
builder.Services.AddSingleton<IHttpContextAccessor, HttpContextAccessor>();
builder.Services.AddCors(options =>
{
options.AddPolicy("Open", builder => builder.AllowAnyOrigin().AllowAnyHeader().AllowAnyMethod());
});
builder.Services.AddControllers();
// Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen();
var app = builder.Build();
// Configure the HTTP request pipeline.
if (app.Environment.IsDevelopment())
{
app.UseSwagger();
app.UseSwaggerUI();
}
app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseRouting();
app.UseAuthorization();
app.UseCors("Open");
app.MapControllers();
app.Run();
@@ -0,0 +1,31 @@
{
"$schema": "https://json.schemastore.org/launchsettings.json",
"iisSettings": {
"windowsAuthentication": false,
"anonymousAuthentication": true,
"iisExpress": {
"applicationUrl": "http://localhost:9553",
"sslPort": 44313
}
},
"profiles": {
"BethanysPieShopHRM.Api": {
"commandName": "Project",
"dotnetRunMessages": true,
"launchBrowser": true,
"launchUrl": "swagger",
"applicationUrl": "https://localhost:7039;http://localhost:5039",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
},
"IIS Express": {
"commandName": "IISExpress",
"launchBrowser": true,
"launchUrl": "swagger",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
}
}
}
@@ -0,0 +1,8 @@
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning"
}
}
}
+12
View File
@@ -0,0 +1,12 @@
{
"ConnectionStrings": {
"DefaultConnection": "Data Source=hrm.db;"
},
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning"
}
},
"AllowedHosts": "*"
}
@@ -0,0 +1,960 @@
{
"runtimeTarget": {
"name": ".NETCoreApp,Version=v10.0",
"signature": ""
},
"compilationOptions": {},
"targets": {
".NETCoreApp,Version=v10.0": {
"BethanysPieShopHRM.Api/1.0.0": {
"dependencies": {
"BethanysPieShopHRM.Shared": "1.0.0",
"Microsoft.EntityFrameworkCore.Sqlite": "10.0.5",
"Microsoft.EntityFrameworkCore.Tools": "10.0.5",
"Swashbuckle.AspNetCore": "10.1.5"
},
"runtime": {
"BethanysPieShopHRM.Api.dll": {}
}
},
"Humanizer.Core/2.14.1": {
"runtime": {
"lib/net6.0/Humanizer.dll": {
"assemblyVersion": "2.14.0.0",
"fileVersion": "2.14.1.48190"
}
}
},
"Microsoft.Build.Framework/18.0.2": {
"runtime": {
"lib/net10.0/Microsoft.Build.Framework.dll": {
"assemblyVersion": "15.1.0.0",
"fileVersion": "18.0.2.52102"
}
}
},
"Microsoft.CodeAnalysis.Common/5.0.0": {
"runtime": {
"lib/net9.0/Microsoft.CodeAnalysis.dll": {
"assemblyVersion": "5.0.0.0",
"fileVersion": "5.0.25.56712"
}
},
"resources": {
"lib/net9.0/cs/Microsoft.CodeAnalysis.resources.dll": {
"locale": "cs"
},
"lib/net9.0/de/Microsoft.CodeAnalysis.resources.dll": {
"locale": "de"
},
"lib/net9.0/es/Microsoft.CodeAnalysis.resources.dll": {
"locale": "es"
},
"lib/net9.0/fr/Microsoft.CodeAnalysis.resources.dll": {
"locale": "fr"
},
"lib/net9.0/it/Microsoft.CodeAnalysis.resources.dll": {
"locale": "it"
},
"lib/net9.0/ja/Microsoft.CodeAnalysis.resources.dll": {
"locale": "ja"
},
"lib/net9.0/ko/Microsoft.CodeAnalysis.resources.dll": {
"locale": "ko"
},
"lib/net9.0/pl/Microsoft.CodeAnalysis.resources.dll": {
"locale": "pl"
},
"lib/net9.0/pt-BR/Microsoft.CodeAnalysis.resources.dll": {
"locale": "pt-BR"
},
"lib/net9.0/ru/Microsoft.CodeAnalysis.resources.dll": {
"locale": "ru"
},
"lib/net9.0/tr/Microsoft.CodeAnalysis.resources.dll": {
"locale": "tr"
},
"lib/net9.0/zh-Hans/Microsoft.CodeAnalysis.resources.dll": {
"locale": "zh-Hans"
},
"lib/net9.0/zh-Hant/Microsoft.CodeAnalysis.resources.dll": {
"locale": "zh-Hant"
}
}
},
"Microsoft.CodeAnalysis.CSharp/5.0.0": {
"dependencies": {
"Microsoft.CodeAnalysis.Common": "5.0.0"
},
"runtime": {
"lib/net9.0/Microsoft.CodeAnalysis.CSharp.dll": {
"assemblyVersion": "5.0.0.0",
"fileVersion": "5.0.25.56712"
}
},
"resources": {
"lib/net9.0/cs/Microsoft.CodeAnalysis.CSharp.resources.dll": {
"locale": "cs"
},
"lib/net9.0/de/Microsoft.CodeAnalysis.CSharp.resources.dll": {
"locale": "de"
},
"lib/net9.0/es/Microsoft.CodeAnalysis.CSharp.resources.dll": {
"locale": "es"
},
"lib/net9.0/fr/Microsoft.CodeAnalysis.CSharp.resources.dll": {
"locale": "fr"
},
"lib/net9.0/it/Microsoft.CodeAnalysis.CSharp.resources.dll": {
"locale": "it"
},
"lib/net9.0/ja/Microsoft.CodeAnalysis.CSharp.resources.dll": {
"locale": "ja"
},
"lib/net9.0/ko/Microsoft.CodeAnalysis.CSharp.resources.dll": {
"locale": "ko"
},
"lib/net9.0/pl/Microsoft.CodeAnalysis.CSharp.resources.dll": {
"locale": "pl"
},
"lib/net9.0/pt-BR/Microsoft.CodeAnalysis.CSharp.resources.dll": {
"locale": "pt-BR"
},
"lib/net9.0/ru/Microsoft.CodeAnalysis.CSharp.resources.dll": {
"locale": "ru"
},
"lib/net9.0/tr/Microsoft.CodeAnalysis.CSharp.resources.dll": {
"locale": "tr"
},
"lib/net9.0/zh-Hans/Microsoft.CodeAnalysis.CSharp.resources.dll": {
"locale": "zh-Hans"
},
"lib/net9.0/zh-Hant/Microsoft.CodeAnalysis.CSharp.resources.dll": {
"locale": "zh-Hant"
}
}
},
"Microsoft.CodeAnalysis.CSharp.Workspaces/5.0.0": {
"dependencies": {
"Humanizer.Core": "2.14.1",
"Microsoft.CodeAnalysis.CSharp": "5.0.0",
"Microsoft.CodeAnalysis.Common": "5.0.0",
"Microsoft.CodeAnalysis.Workspaces.Common": "5.0.0",
"System.Composition": "9.0.0"
},
"runtime": {
"lib/net9.0/Microsoft.CodeAnalysis.CSharp.Workspaces.dll": {
"assemblyVersion": "5.0.0.0",
"fileVersion": "5.0.25.56712"
}
},
"resources": {
"lib/net9.0/cs/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": {
"locale": "cs"
},
"lib/net9.0/de/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": {
"locale": "de"
},
"lib/net9.0/es/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": {
"locale": "es"
},
"lib/net9.0/fr/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": {
"locale": "fr"
},
"lib/net9.0/it/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": {
"locale": "it"
},
"lib/net9.0/ja/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": {
"locale": "ja"
},
"lib/net9.0/ko/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": {
"locale": "ko"
},
"lib/net9.0/pl/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": {
"locale": "pl"
},
"lib/net9.0/pt-BR/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": {
"locale": "pt-BR"
},
"lib/net9.0/ru/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": {
"locale": "ru"
},
"lib/net9.0/tr/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": {
"locale": "tr"
},
"lib/net9.0/zh-Hans/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": {
"locale": "zh-Hans"
},
"lib/net9.0/zh-Hant/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": {
"locale": "zh-Hant"
}
}
},
"Microsoft.CodeAnalysis.Workspaces.Common/5.0.0": {
"dependencies": {
"Humanizer.Core": "2.14.1",
"Microsoft.CodeAnalysis.Common": "5.0.0",
"System.Composition": "9.0.0"
},
"runtime": {
"lib/net9.0/Microsoft.CodeAnalysis.Workspaces.dll": {
"assemblyVersion": "5.0.0.0",
"fileVersion": "5.0.25.56712"
}
},
"resources": {
"lib/net9.0/cs/Microsoft.CodeAnalysis.Workspaces.resources.dll": {
"locale": "cs"
},
"lib/net9.0/de/Microsoft.CodeAnalysis.Workspaces.resources.dll": {
"locale": "de"
},
"lib/net9.0/es/Microsoft.CodeAnalysis.Workspaces.resources.dll": {
"locale": "es"
},
"lib/net9.0/fr/Microsoft.CodeAnalysis.Workspaces.resources.dll": {
"locale": "fr"
},
"lib/net9.0/it/Microsoft.CodeAnalysis.Workspaces.resources.dll": {
"locale": "it"
},
"lib/net9.0/ja/Microsoft.CodeAnalysis.Workspaces.resources.dll": {
"locale": "ja"
},
"lib/net9.0/ko/Microsoft.CodeAnalysis.Workspaces.resources.dll": {
"locale": "ko"
},
"lib/net9.0/pl/Microsoft.CodeAnalysis.Workspaces.resources.dll": {
"locale": "pl"
},
"lib/net9.0/pt-BR/Microsoft.CodeAnalysis.Workspaces.resources.dll": {
"locale": "pt-BR"
},
"lib/net9.0/ru/Microsoft.CodeAnalysis.Workspaces.resources.dll": {
"locale": "ru"
},
"lib/net9.0/tr/Microsoft.CodeAnalysis.Workspaces.resources.dll": {
"locale": "tr"
},
"lib/net9.0/zh-Hans/Microsoft.CodeAnalysis.Workspaces.resources.dll": {
"locale": "zh-Hans"
},
"lib/net9.0/zh-Hant/Microsoft.CodeAnalysis.Workspaces.resources.dll": {
"locale": "zh-Hant"
}
}
},
"Microsoft.CodeAnalysis.Workspaces.MSBuild/5.0.0": {
"dependencies": {
"Humanizer.Core": "2.14.1",
"Microsoft.Build.Framework": "18.0.2",
"Microsoft.CodeAnalysis.Workspaces.Common": "5.0.0",
"Microsoft.VisualStudio.SolutionPersistence": "1.0.52",
"Newtonsoft.Json": "13.0.3",
"System.Composition": "9.0.0"
},
"runtime": {
"lib/net9.0/Microsoft.CodeAnalysis.ExternalAccess.RazorCompiler.dll": {
"assemblyVersion": "5.0.0.0",
"fileVersion": "5.0.25.56712"
},
"lib/net9.0/Microsoft.CodeAnalysis.Workspaces.MSBuild.dll": {
"assemblyVersion": "5.0.0.0",
"fileVersion": "5.0.25.56712"
}
},
"resources": {
"lib/net9.0/cs/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll": {
"locale": "cs"
},
"lib/net9.0/de/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll": {
"locale": "de"
},
"lib/net9.0/es/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll": {
"locale": "es"
},
"lib/net9.0/fr/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll": {
"locale": "fr"
},
"lib/net9.0/it/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll": {
"locale": "it"
},
"lib/net9.0/ja/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll": {
"locale": "ja"
},
"lib/net9.0/ko/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll": {
"locale": "ko"
},
"lib/net9.0/pl/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll": {
"locale": "pl"
},
"lib/net9.0/pt-BR/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll": {
"locale": "pt-BR"
},
"lib/net9.0/ru/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll": {
"locale": "ru"
},
"lib/net9.0/tr/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll": {
"locale": "tr"
},
"lib/net9.0/zh-Hans/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll": {
"locale": "zh-Hans"
},
"lib/net9.0/zh-Hant/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll": {
"locale": "zh-Hant"
}
}
},
"Microsoft.Data.Sqlite.Core/10.0.5": {
"dependencies": {
"SQLitePCLRaw.core": "2.1.11"
},
"runtime": {
"lib/net8.0/Microsoft.Data.Sqlite.dll": {
"assemblyVersion": "10.0.5.0",
"fileVersion": "10.0.526.15411"
}
}
},
"Microsoft.EntityFrameworkCore/10.0.5": {
"dependencies": {
"Microsoft.EntityFrameworkCore.Abstractions": "10.0.5"
},
"runtime": {
"lib/net10.0/Microsoft.EntityFrameworkCore.dll": {
"assemblyVersion": "10.0.5.0",
"fileVersion": "10.0.526.15411"
}
}
},
"Microsoft.EntityFrameworkCore.Abstractions/10.0.5": {
"runtime": {
"lib/net10.0/Microsoft.EntityFrameworkCore.Abstractions.dll": {
"assemblyVersion": "10.0.5.0",
"fileVersion": "10.0.526.15411"
}
}
},
"Microsoft.EntityFrameworkCore.Design/10.0.5": {
"dependencies": {
"Humanizer.Core": "2.14.1",
"Microsoft.Build.Framework": "18.0.2",
"Microsoft.CodeAnalysis.CSharp": "5.0.0",
"Microsoft.CodeAnalysis.CSharp.Workspaces": "5.0.0",
"Microsoft.CodeAnalysis.Workspaces.MSBuild": "5.0.0",
"Microsoft.EntityFrameworkCore.Relational": "10.0.5",
"Microsoft.Extensions.DependencyModel": "10.0.5",
"Mono.TextTemplating": "3.0.0",
"Newtonsoft.Json": "13.0.3"
},
"runtime": {
"lib/net10.0/Microsoft.EntityFrameworkCore.Design.dll": {
"assemblyVersion": "10.0.5.0",
"fileVersion": "10.0.526.15411"
}
}
},
"Microsoft.EntityFrameworkCore.Relational/10.0.5": {
"dependencies": {
"Microsoft.EntityFrameworkCore": "10.0.5"
},
"runtime": {
"lib/net10.0/Microsoft.EntityFrameworkCore.Relational.dll": {
"assemblyVersion": "10.0.5.0",
"fileVersion": "10.0.526.15411"
}
}
},
"Microsoft.EntityFrameworkCore.Sqlite/10.0.5": {
"dependencies": {
"Microsoft.EntityFrameworkCore.Sqlite.Core": "10.0.5",
"Microsoft.Extensions.DependencyModel": "10.0.5",
"SQLitePCLRaw.bundle_e_sqlite3": "2.1.11",
"SQLitePCLRaw.core": "2.1.11"
}
},
"Microsoft.EntityFrameworkCore.Sqlite.Core/10.0.5": {
"dependencies": {
"Microsoft.Data.Sqlite.Core": "10.0.5",
"Microsoft.EntityFrameworkCore.Relational": "10.0.5",
"Microsoft.Extensions.DependencyModel": "10.0.5",
"SQLitePCLRaw.core": "2.1.11"
},
"runtime": {
"lib/net10.0/Microsoft.EntityFrameworkCore.Sqlite.dll": {
"assemblyVersion": "10.0.5.0",
"fileVersion": "10.0.526.15411"
}
}
},
"Microsoft.EntityFrameworkCore.Tools/10.0.5": {
"dependencies": {
"Microsoft.EntityFrameworkCore.Design": "10.0.5"
}
},
"Microsoft.Extensions.DependencyModel/10.0.5": {
"runtime": {
"lib/net10.0/Microsoft.Extensions.DependencyModel.dll": {
"assemblyVersion": "10.0.0.5",
"fileVersion": "10.0.526.15411"
}
}
},
"Microsoft.OpenApi/2.4.1": {
"runtime": {
"lib/net8.0/Microsoft.OpenApi.dll": {
"assemblyVersion": "2.4.1.0",
"fileVersion": "2.4.1.0"
}
}
},
"Microsoft.VisualStudio.SolutionPersistence/1.0.52": {
"runtime": {
"lib/net8.0/Microsoft.VisualStudio.SolutionPersistence.dll": {
"assemblyVersion": "1.0.0.0",
"fileVersion": "1.0.52.6595"
}
}
},
"Mono.TextTemplating/3.0.0": {
"dependencies": {
"System.CodeDom": "6.0.0"
},
"runtime": {
"lib/net6.0/Mono.TextTemplating.dll": {
"assemblyVersion": "3.0.0.0",
"fileVersion": "3.0.0.1"
}
}
},
"Newtonsoft.Json/13.0.3": {
"runtime": {
"lib/net6.0/Newtonsoft.Json.dll": {
"assemblyVersion": "13.0.0.0",
"fileVersion": "13.0.3.27908"
}
}
},
"SQLitePCLRaw.bundle_e_sqlite3/2.1.11": {
"dependencies": {
"SQLitePCLRaw.lib.e_sqlite3": "2.1.11",
"SQLitePCLRaw.provider.e_sqlite3": "2.1.11"
},
"runtime": {
"lib/netstandard2.0/SQLitePCLRaw.batteries_v2.dll": {
"assemblyVersion": "2.1.11.2622",
"fileVersion": "2.1.11.2622"
}
}
},
"SQLitePCLRaw.core/2.1.11": {
"runtime": {
"lib/netstandard2.0/SQLitePCLRaw.core.dll": {
"assemblyVersion": "2.1.11.2622",
"fileVersion": "2.1.11.2622"
}
}
},
"SQLitePCLRaw.lib.e_sqlite3/2.1.11": {
"runtimeTargets": {
"runtimes/browser-wasm/nativeassets/net9.0/e_sqlite3.a": {
"rid": "browser-wasm",
"assetType": "native",
"fileVersion": "0.0.0.0"
},
"runtimes/linux-arm/native/libe_sqlite3.so": {
"rid": "linux-arm",
"assetType": "native",
"fileVersion": "0.0.0.0"
},
"runtimes/linux-arm64/native/libe_sqlite3.so": {
"rid": "linux-arm64",
"assetType": "native",
"fileVersion": "0.0.0.0"
},
"runtimes/linux-armel/native/libe_sqlite3.so": {
"rid": "linux-armel",
"assetType": "native",
"fileVersion": "0.0.0.0"
},
"runtimes/linux-mips64/native/libe_sqlite3.so": {
"rid": "linux-mips64",
"assetType": "native",
"fileVersion": "0.0.0.0"
},
"runtimes/linux-musl-arm/native/libe_sqlite3.so": {
"rid": "linux-musl-arm",
"assetType": "native",
"fileVersion": "0.0.0.0"
},
"runtimes/linux-musl-arm64/native/libe_sqlite3.so": {
"rid": "linux-musl-arm64",
"assetType": "native",
"fileVersion": "0.0.0.0"
},
"runtimes/linux-musl-riscv64/native/libe_sqlite3.so": {
"rid": "linux-musl-riscv64",
"assetType": "native",
"fileVersion": "0.0.0.0"
},
"runtimes/linux-musl-s390x/native/libe_sqlite3.so": {
"rid": "linux-musl-s390x",
"assetType": "native",
"fileVersion": "0.0.0.0"
},
"runtimes/linux-musl-x64/native/libe_sqlite3.so": {
"rid": "linux-musl-x64",
"assetType": "native",
"fileVersion": "0.0.0.0"
},
"runtimes/linux-ppc64le/native/libe_sqlite3.so": {
"rid": "linux-ppc64le",
"assetType": "native",
"fileVersion": "0.0.0.0"
},
"runtimes/linux-riscv64/native/libe_sqlite3.so": {
"rid": "linux-riscv64",
"assetType": "native",
"fileVersion": "0.0.0.0"
},
"runtimes/linux-s390x/native/libe_sqlite3.so": {
"rid": "linux-s390x",
"assetType": "native",
"fileVersion": "0.0.0.0"
},
"runtimes/linux-x64/native/libe_sqlite3.so": {
"rid": "linux-x64",
"assetType": "native",
"fileVersion": "0.0.0.0"
},
"runtimes/linux-x86/native/libe_sqlite3.so": {
"rid": "linux-x86",
"assetType": "native",
"fileVersion": "0.0.0.0"
},
"runtimes/maccatalyst-arm64/native/libe_sqlite3.dylib": {
"rid": "maccatalyst-arm64",
"assetType": "native",
"fileVersion": "0.0.0.0"
},
"runtimes/maccatalyst-x64/native/libe_sqlite3.dylib": {
"rid": "maccatalyst-x64",
"assetType": "native",
"fileVersion": "0.0.0.0"
},
"runtimes/osx-arm64/native/libe_sqlite3.dylib": {
"rid": "osx-arm64",
"assetType": "native",
"fileVersion": "0.0.0.0"
},
"runtimes/osx-x64/native/libe_sqlite3.dylib": {
"rid": "osx-x64",
"assetType": "native",
"fileVersion": "0.0.0.0"
},
"runtimes/win-arm/native/e_sqlite3.dll": {
"rid": "win-arm",
"assetType": "native",
"fileVersion": "0.0.0.0"
},
"runtimes/win-arm64/native/e_sqlite3.dll": {
"rid": "win-arm64",
"assetType": "native",
"fileVersion": "0.0.0.0"
},
"runtimes/win-x64/native/e_sqlite3.dll": {
"rid": "win-x64",
"assetType": "native",
"fileVersion": "0.0.0.0"
},
"runtimes/win-x86/native/e_sqlite3.dll": {
"rid": "win-x86",
"assetType": "native",
"fileVersion": "0.0.0.0"
}
}
},
"SQLitePCLRaw.provider.e_sqlite3/2.1.11": {
"dependencies": {
"SQLitePCLRaw.core": "2.1.11"
},
"runtime": {
"lib/net6.0/SQLitePCLRaw.provider.e_sqlite3.dll": {
"assemblyVersion": "2.1.11.2622",
"fileVersion": "2.1.11.2622"
}
}
},
"Swashbuckle.AspNetCore/10.1.5": {
"dependencies": {
"Swashbuckle.AspNetCore.Swagger": "10.1.5",
"Swashbuckle.AspNetCore.SwaggerGen": "10.1.5",
"Swashbuckle.AspNetCore.SwaggerUI": "10.1.5"
}
},
"Swashbuckle.AspNetCore.Swagger/10.1.5": {
"dependencies": {
"Microsoft.OpenApi": "2.4.1"
},
"runtime": {
"lib/net10.0/Swashbuckle.AspNetCore.Swagger.dll": {
"assemblyVersion": "10.1.5.0",
"fileVersion": "10.1.5.2342"
}
}
},
"Swashbuckle.AspNetCore.SwaggerGen/10.1.5": {
"dependencies": {
"Swashbuckle.AspNetCore.Swagger": "10.1.5"
},
"runtime": {
"lib/net10.0/Swashbuckle.AspNetCore.SwaggerGen.dll": {
"assemblyVersion": "10.1.5.0",
"fileVersion": "10.1.5.2342"
}
}
},
"Swashbuckle.AspNetCore.SwaggerUI/10.1.5": {
"runtime": {
"lib/net10.0/Swashbuckle.AspNetCore.SwaggerUI.dll": {
"assemblyVersion": "10.1.5.0",
"fileVersion": "10.1.5.2342"
}
}
},
"System.CodeDom/6.0.0": {
"runtime": {
"lib/net6.0/System.CodeDom.dll": {
"assemblyVersion": "6.0.0.0",
"fileVersion": "6.0.21.52210"
}
}
},
"System.Composition/9.0.0": {
"dependencies": {
"System.Composition.AttributedModel": "9.0.0",
"System.Composition.Convention": "9.0.0",
"System.Composition.Hosting": "9.0.0",
"System.Composition.Runtime": "9.0.0",
"System.Composition.TypedParts": "9.0.0"
}
},
"System.Composition.AttributedModel/9.0.0": {
"runtime": {
"lib/net9.0/System.Composition.AttributedModel.dll": {
"assemblyVersion": "9.0.0.0",
"fileVersion": "9.0.24.52809"
}
}
},
"System.Composition.Convention/9.0.0": {
"dependencies": {
"System.Composition.AttributedModel": "9.0.0"
},
"runtime": {
"lib/net9.0/System.Composition.Convention.dll": {
"assemblyVersion": "9.0.0.0",
"fileVersion": "9.0.24.52809"
}
}
},
"System.Composition.Hosting/9.0.0": {
"dependencies": {
"System.Composition.Runtime": "9.0.0"
},
"runtime": {
"lib/net9.0/System.Composition.Hosting.dll": {
"assemblyVersion": "9.0.0.0",
"fileVersion": "9.0.24.52809"
}
}
},
"System.Composition.Runtime/9.0.0": {
"runtime": {
"lib/net9.0/System.Composition.Runtime.dll": {
"assemblyVersion": "9.0.0.0",
"fileVersion": "9.0.24.52809"
}
}
},
"System.Composition.TypedParts/9.0.0": {
"dependencies": {
"System.Composition.AttributedModel": "9.0.0",
"System.Composition.Hosting": "9.0.0",
"System.Composition.Runtime": "9.0.0"
},
"runtime": {
"lib/net9.0/System.Composition.TypedParts.dll": {
"assemblyVersion": "9.0.0.0",
"fileVersion": "9.0.24.52809"
}
}
},
"BethanysPieShopHRM.Shared/1.0.0": {
"runtime": {
"BethanysPieShopHRM.Shared.dll": {
"assemblyVersion": "1.0.0.0",
"fileVersion": "1.0.0.0"
}
}
}
}
},
"libraries": {
"BethanysPieShopHRM.Api/1.0.0": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"Humanizer.Core/2.14.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-lQKvtaTDOXnoVJ20ibTuSIOf2i0uO0MPbDhd1jm238I+U/2ZnRENj0cktKZhtchBMtCUSRQ5v4xBCUbKNmyVMw==",
"path": "humanizer.core/2.14.1",
"hashPath": "humanizer.core.2.14.1.nupkg.sha512"
},
"Microsoft.Build.Framework/18.0.2": {
"type": "package",
"serviceable": true,
"sha512": "sha512-sOSb+0J4G/jCBW/YqmRuL0eOMXgfw1KQLdC9TkbvfA5xs7uNm+PBQXJCOzSJGXtZcZrtXozcwxPmUiRUbmd7FA==",
"path": "microsoft.build.framework/18.0.2",
"hashPath": "microsoft.build.framework.18.0.2.nupkg.sha512"
},
"Microsoft.CodeAnalysis.Common/5.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-ZXRAdvH6GiDeHRyd3q/km8Z44RoM6FBWHd+gen/la81mVnAdHTEsEkO5J0TCNXBymAcx5UYKt5TvgKBhaLJEow==",
"path": "microsoft.codeanalysis.common/5.0.0",
"hashPath": "microsoft.codeanalysis.common.5.0.0.nupkg.sha512"
},
"Microsoft.CodeAnalysis.CSharp/5.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-5DSyJ9bk+ATuDy7fp2Zt0mJStDVKbBoiz1DyfAwSa+k4H4IwykAUcV3URelw5b8/iVbfSaOwkwmPUZH6opZKCw==",
"path": "microsoft.codeanalysis.csharp/5.0.0",
"hashPath": "microsoft.codeanalysis.csharp.5.0.0.nupkg.sha512"
},
"Microsoft.CodeAnalysis.CSharp.Workspaces/5.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-Al/Q8B+yO8odSqGVpSvrShMFDvlQdIBU//F3E6Rb0YdiLSALE9wh/pvozPNnfmh5HDnvU+mkmSjpz4hQO++jaA==",
"path": "microsoft.codeanalysis.csharp.workspaces/5.0.0",
"hashPath": "microsoft.codeanalysis.csharp.workspaces.5.0.0.nupkg.sha512"
},
"Microsoft.CodeAnalysis.Workspaces.Common/5.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-ZbUmIvT6lqTNKiv06Jl5wf0MTMi1vQ1oH7ou4CLcs2C/no/L7EhP3T8y3XXvn9VbqMcJaJnEsNA1jwYUMgc5jg==",
"path": "microsoft.codeanalysis.workspaces.common/5.0.0",
"hashPath": "microsoft.codeanalysis.workspaces.common.5.0.0.nupkg.sha512"
},
"Microsoft.CodeAnalysis.Workspaces.MSBuild/5.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-/G+LVoAGMz6Ae8nm+PGLxSw+F5RjYx/J7irbTO5uKAPw1bxHyQJLc/YOnpDxt+EpPtYxvC9wvBsg/kETZp1F9Q==",
"path": "microsoft.codeanalysis.workspaces.msbuild/5.0.0",
"hashPath": "microsoft.codeanalysis.workspaces.msbuild.5.0.0.nupkg.sha512"
},
"Microsoft.Data.Sqlite.Core/10.0.5": {
"type": "package",
"serviceable": true,
"sha512": "sha512-jFYXnh7s0RShCw6Vkf+ReGCw+mVi7ISg1YaEzYCJcXnUifmbW+aqvCsRJuSRj2ZuQ+oqetpjxlZtbpMmk5FKqQ==",
"path": "microsoft.data.sqlite.core/10.0.5",
"hashPath": "microsoft.data.sqlite.core.10.0.5.nupkg.sha512"
},
"Microsoft.EntityFrameworkCore/10.0.5": {
"type": "package",
"serviceable": true,
"sha512": "sha512-9tNBmK3EpYVGRQLiqP+bqK2m+TD0Gv//4vCzR7ZOgl4FWzCFyOpYdIVka13M4kcBdPdSJcs3wbHr3rmzOqbIMA==",
"path": "microsoft.entityframeworkcore/10.0.5",
"hashPath": "microsoft.entityframeworkcore.10.0.5.nupkg.sha512"
},
"Microsoft.EntityFrameworkCore.Abstractions/10.0.5": {
"type": "package",
"serviceable": true,
"sha512": "sha512-32c58Rnm47Qvhimawf67KO9PytgPz3QoWye7Abapt0Yocw/JnzMiSNj/pRoIKyn8Jxypkv86zxKD4Q/zNTc0Ag==",
"path": "microsoft.entityframeworkcore.abstractions/10.0.5",
"hashPath": "microsoft.entityframeworkcore.abstractions.10.0.5.nupkg.sha512"
},
"Microsoft.EntityFrameworkCore.Design/10.0.5": {
"type": "package",
"serviceable": true,
"sha512": "sha512-gm6f0cC2w/2tcd4GeZJqEMruTercpIJfO5sSAFLtqTqblDBHgAFk70xwshUIUVX4I6sZwdEUSd1YxoKFk1AL0w==",
"path": "microsoft.entityframeworkcore.design/10.0.5",
"hashPath": "microsoft.entityframeworkcore.design.10.0.5.nupkg.sha512"
},
"Microsoft.EntityFrameworkCore.Relational/10.0.5": {
"type": "package",
"serviceable": true,
"sha512": "sha512-uxmFjZEAB/KbsgWFSS4lLqkEHCfXxB2x0UcbiO4e5fCRpFFeTMSx/me6009nYJLu5IKlDwO1POh++P6RilFTDw==",
"path": "microsoft.entityframeworkcore.relational/10.0.5",
"hashPath": "microsoft.entityframeworkcore.relational.10.0.5.nupkg.sha512"
},
"Microsoft.EntityFrameworkCore.Sqlite/10.0.5": {
"type": "package",
"serviceable": true,
"sha512": "sha512-lxeRviglTkkmzYJVJ600yb6gJjnf5za9v7uH+0byuSXTGv7U8cT6hz7qRTmiGSOfLcl86QFdy2BBKaUFd6NQug==",
"path": "microsoft.entityframeworkcore.sqlite/10.0.5",
"hashPath": "microsoft.entityframeworkcore.sqlite.10.0.5.nupkg.sha512"
},
"Microsoft.EntityFrameworkCore.Sqlite.Core/10.0.5": {
"type": "package",
"serviceable": true,
"sha512": "sha512-rVH43bcUyZiMn0SnCpVnvFpl4PFxT4GwmuVVLcT4JL0NtzuHY9ymKV+Llb5cjuJ+6+gEl4eixy2rE8nxOPcBSA==",
"path": "microsoft.entityframeworkcore.sqlite.core/10.0.5",
"hashPath": "microsoft.entityframeworkcore.sqlite.core.10.0.5.nupkg.sha512"
},
"Microsoft.EntityFrameworkCore.Tools/10.0.5": {
"type": "package",
"serviceable": true,
"sha512": "sha512-maSlvKez/gwy88zoLXCafRh0gEFmakM7fnf6zEi6nyItp7A1Negmp/YBodiuWcxLUguvVkPJZX15MnLeuJwjQA==",
"path": "microsoft.entityframeworkcore.tools/10.0.5",
"hashPath": "microsoft.entityframeworkcore.tools.10.0.5.nupkg.sha512"
},
"Microsoft.Extensions.DependencyModel/10.0.5": {
"type": "package",
"serviceable": true,
"sha512": "sha512-xA4kkL+QS6KCAOKz/O0oquHs44Ob8J7zpBCNt3wjkBWDg5aCqfwG8rWWLsg5V86AM0sB849g9JjPjIdksTCIKg==",
"path": "microsoft.extensions.dependencymodel/10.0.5",
"hashPath": "microsoft.extensions.dependencymodel.10.0.5.nupkg.sha512"
},
"Microsoft.OpenApi/2.4.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-u7QhXCISMQuab3flasb1hoaiERmUqyWsW7tmQODyILoQ7mJV5IRGM+2KKZYo0QUfC13evEOcHAb6TPWgqEQtrw==",
"path": "microsoft.openapi/2.4.1",
"hashPath": "microsoft.openapi.2.4.1.nupkg.sha512"
},
"Microsoft.VisualStudio.SolutionPersistence/1.0.52": {
"type": "package",
"serviceable": true,
"sha512": "sha512-oNv2JtYXhpdJrX63nibx1JT3uCESOBQ1LAk7Dtz/sr0+laW0KRM6eKp4CZ3MHDR2siIkKsY8MmUkeP5DKkQQ5w==",
"path": "microsoft.visualstudio.solutionpersistence/1.0.52",
"hashPath": "microsoft.visualstudio.solutionpersistence.1.0.52.nupkg.sha512"
},
"Mono.TextTemplating/3.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-YqueG52R/Xej4VVbKuRIodjiAhV0HR/XVbLbNrJhCZnzjnSjgMJ/dCdV0akQQxavX6hp/LC6rqLGLcXeQYU7XA==",
"path": "mono.texttemplating/3.0.0",
"hashPath": "mono.texttemplating.3.0.0.nupkg.sha512"
},
"Newtonsoft.Json/13.0.3": {
"type": "package",
"serviceable": true,
"sha512": "sha512-HrC5BXdl00IP9zeV+0Z848QWPAoCr9P3bDEZguI+gkLcBKAOxix/tLEAAHC+UvDNPv4a2d18lOReHMOagPa+zQ==",
"path": "newtonsoft.json/13.0.3",
"hashPath": "newtonsoft.json.13.0.3.nupkg.sha512"
},
"SQLitePCLRaw.bundle_e_sqlite3/2.1.11": {
"type": "package",
"serviceable": true,
"sha512": "sha512-DC4nA7yWnf4UZdgJDF+9Mus4/cb0Y3Sfgi3gDnAoKNAIBwzkskNAbNbyu+u4atT0ruVlZNJfwZmwiEwE5oz9LQ==",
"path": "sqlitepclraw.bundle_e_sqlite3/2.1.11",
"hashPath": "sqlitepclraw.bundle_e_sqlite3.2.1.11.nupkg.sha512"
},
"SQLitePCLRaw.core/2.1.11": {
"type": "package",
"serviceable": true,
"sha512": "sha512-PK0GLFkfhZzLQeR3PJf71FmhtHox+U3vcY6ZtswoMjrefkB9k6ErNJEnwXqc5KgXDSjige2XXrezqS39gkpQKA==",
"path": "sqlitepclraw.core/2.1.11",
"hashPath": "sqlitepclraw.core.2.1.11.nupkg.sha512"
},
"SQLitePCLRaw.lib.e_sqlite3/2.1.11": {
"type": "package",
"serviceable": true,
"sha512": "sha512-Ev2ytaXiOlWZ4b3R67GZBsemTINslLD1DCJr2xiacpn4tbapu0Q4dHEzSvZSMnVWeE5nlObU3VZN2p81q3XOYQ==",
"path": "sqlitepclraw.lib.e_sqlite3/2.1.11",
"hashPath": "sqlitepclraw.lib.e_sqlite3.2.1.11.nupkg.sha512"
},
"SQLitePCLRaw.provider.e_sqlite3/2.1.11": {
"type": "package",
"serviceable": true,
"sha512": "sha512-Y/0ZkR+r0Cg3DQFuCl1RBnv/tmxpIZRU3HUvelPw6MVaKHwYYR8YNvgs0vuNuXCMvlyJ+Fh88U1D4tah1tt6qw==",
"path": "sqlitepclraw.provider.e_sqlite3/2.1.11",
"hashPath": "sqlitepclraw.provider.e_sqlite3.2.1.11.nupkg.sha512"
},
"Swashbuckle.AspNetCore/10.1.5": {
"type": "package",
"serviceable": true,
"sha512": "sha512-/eNk9z/8quXhDX14o3XLbwAX/84uIWSbiUD7cI/UrQnoBMOiyAtzKxNEJUtf/TyxjFpcXxE9FAfLvtbNpxHBSg==",
"path": "swashbuckle.aspnetcore/10.1.5",
"hashPath": "swashbuckle.aspnetcore.10.1.5.nupkg.sha512"
},
"Swashbuckle.AspNetCore.Swagger/10.1.5": {
"type": "package",
"serviceable": true,
"sha512": "sha512-s4Mct6+Ob0LK9vYVaZcYi/RFFCOEJNjf6nJ5ZPoxtpdFSlzR6i9AHI7Vl44obX8cynRxJW7prA1IUabkiXolFg==",
"path": "swashbuckle.aspnetcore.swagger/10.1.5",
"hashPath": "swashbuckle.aspnetcore.swagger.10.1.5.nupkg.sha512"
},
"Swashbuckle.AspNetCore.SwaggerGen/10.1.5": {
"type": "package",
"serviceable": true,
"sha512": "sha512-ysQIRgqnx4Vb/9+r3xnEAiaxYmiBHO8jTg7ACaCh+R3Sn+ZKCWKD6nyu0ph3okP91wFSh/6LgccjeLUaQHV+ZA==",
"path": "swashbuckle.aspnetcore.swaggergen/10.1.5",
"hashPath": "swashbuckle.aspnetcore.swaggergen.10.1.5.nupkg.sha512"
},
"Swashbuckle.AspNetCore.SwaggerUI/10.1.5": {
"type": "package",
"serviceable": true,
"sha512": "sha512-tQWVKNJWW7lf6S0bv22+7yfxK5IKzvsMeueF4XHSziBfREhLKt42OKzi6/1nINmyGlM4hGbR8aSMg72dLLVBLw==",
"path": "swashbuckle.aspnetcore.swaggerui/10.1.5",
"hashPath": "swashbuckle.aspnetcore.swaggerui.10.1.5.nupkg.sha512"
},
"System.CodeDom/6.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-CPc6tWO1LAer3IzfZufDBRL+UZQcj5uS207NHALQzP84Vp/z6wF0Aa0YZImOQY8iStY0A2zI/e3ihKNPfUm8XA==",
"path": "system.codedom/6.0.0",
"hashPath": "system.codedom.6.0.0.nupkg.sha512"
},
"System.Composition/9.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-3Djj70fFTraOarSKmRnmRy/zm4YurICm+kiCtI0dYRqGJnLX6nJ+G3WYuFJ173cAPax/gh96REcbNiVqcrypFQ==",
"path": "system.composition/9.0.0",
"hashPath": "system.composition.9.0.0.nupkg.sha512"
},
"System.Composition.AttributedModel/9.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-iri00l/zIX9g4lHMY+Nz0qV1n40+jFYAmgsaiNn16xvt2RDwlqByNG4wgblagnDYxm3YSQQ0jLlC/7Xlk9CzyA==",
"path": "system.composition.attributedmodel/9.0.0",
"hashPath": "system.composition.attributedmodel.9.0.0.nupkg.sha512"
},
"System.Composition.Convention/9.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-+vuqVP6xpi582XIjJi6OCsIxuoTZfR0M7WWufk3uGDeCl3wGW6KnpylUJ3iiXdPByPE0vR5TjJgR6hDLez4FQg==",
"path": "system.composition.convention/9.0.0",
"hashPath": "system.composition.convention.9.0.0.nupkg.sha512"
},
"System.Composition.Hosting/9.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-OFqSeFeJYr7kHxDfaViGM1ymk7d4JxK//VSoNF9Ux0gpqkLsauDZpu89kTHHNdCWfSljbFcvAafGyBoY094btQ==",
"path": "system.composition.hosting/9.0.0",
"hashPath": "system.composition.hosting.9.0.0.nupkg.sha512"
},
"System.Composition.Runtime/9.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-w1HOlQY1zsOWYussjFGZCEYF2UZXgvoYnS94NIu2CBnAGMbXFAX8PY8c92KwUItPmowal68jnVLBCzdrWLeEKA==",
"path": "system.composition.runtime/9.0.0",
"hashPath": "system.composition.runtime.9.0.0.nupkg.sha512"
},
"System.Composition.TypedParts/9.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-aRZlojCCGEHDKqh43jaDgaVpYETsgd7Nx4g1zwLKMtv4iTo0627715ajEFNpEEBTgLmvZuv8K0EVxc3sM4NWJA==",
"path": "system.composition.typedparts/9.0.0",
"hashPath": "system.composition.typedparts.9.0.0.nupkg.sha512"
},
"BethanysPieShopHRM.Shared/1.0.0": {
"type": "project",
"serviceable": false,
"sha512": ""
}
}
}
@@ -0,0 +1,20 @@
{
"runtimeOptions": {
"tfm": "net10.0",
"frameworks": [
{
"name": "Microsoft.NETCore.App",
"version": "10.0.0"
},
{
"name": "Microsoft.AspNetCore.App",
"version": "10.0.0"
}
],
"configProperties": {
"System.GC.Server": true,
"System.Reflection.NullabilityInfoContext.IsSupported": true,
"System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization": false
}
}
}
@@ -0,0 +1 @@
{"Version":1,"ManifestType":"Build","Endpoints":[{"Route":"Uploads/porsche-zoom2.jpeg","AssetFile":"Uploads/porsche-zoom2.jpeg","Selectors":[],"ResponseHeaders":[{"Name":"Cache-Control","Value":"max-age=3600, must-revalidate"},{"Name":"Content-Length","Value":"235814"},{"Name":"Content-Type","Value":"image/jpeg"},{"Name":"ETag","Value":"\"+nvGbGTD9l0UaK37Xin1fYnX1Hoe9Ts98HcWI4l5iqw=\""},{"Name":"Last-Modified","Value":"Sat, 21 Mar 2026 16:27:56 GMT"}],"EndpointProperties":[{"Name":"integrity","Value":"sha256-+nvGbGTD9l0UaK37Xin1fYnX1Hoe9Ts98HcWI4l5iqw="}]},{"Route":"Uploads/porsche-zoom2.yi11yf8tpo.jpeg","AssetFile":"Uploads/porsche-zoom2.jpeg","Selectors":[],"ResponseHeaders":[{"Name":"Cache-Control","Value":"max-age=31536000, immutable"},{"Name":"Content-Length","Value":"235814"},{"Name":"Content-Type","Value":"image/jpeg"},{"Name":"ETag","Value":"\"+nvGbGTD9l0UaK37Xin1fYnX1Hoe9Ts98HcWI4l5iqw=\""},{"Name":"Last-Modified","Value":"Sat, 21 Mar 2026 16:27:56 GMT"}],"EndpointProperties":[{"Name":"fingerprint","Value":"yi11yf8tpo"},{"Name":"integrity","Value":"sha256-+nvGbGTD9l0UaK37Xin1fYnX1Hoe9Ts98HcWI4l5iqw="},{"Name":"label","Value":"Uploads/porsche-zoom2.jpeg"}]}]}
@@ -0,0 +1 @@
{"ContentRoots":["C:\\Users\\nathanpire\\source\\repos\\Webshop.App\\BethanysPieShopHRM.Api\\wwwroot\\"],"Root":{"Children":{"Uploads":{"Children":{"porsche-zoom2.jpeg":{"Children":null,"Asset":{"ContentRootIndex":0,"SubPath":"Uploads/porsche-zoom2.jpeg"},"Patterns":null}},"Asset":null,"Patterns":null}},"Asset":null,"Patterns":[{"ContentRootIndex":0,"Pattern":"**","Depth":0}]}}
@@ -0,0 +1,68 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2" />
</startup>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Microsoft.Build" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-15.1.0.0" newVersion="15.1.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Microsoft.Build.Framework" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-15.1.0.0" newVersion="15.1.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Microsoft.Build.Utilities.Core" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-15.1.0.0" newVersion="15.1.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Microsoft.Build.Tasks.Core" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-15.1.0.0" newVersion="15.1.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Microsoft.IO.Redist" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-6.1.0.0" newVersion="6.1.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Buffers" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.4.0" newVersion="4.0.4.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Collections.Immutable" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-9.0.0.0" newVersion="9.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Memory" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.2.0" newVersion="4.0.2.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-6.0.1.0" newVersion="6.0.1.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Threading.Tasks.Extensions" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.2.1.0" newVersion="4.2.1.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
@@ -0,0 +1,171 @@
{
"runtimeTarget": {
"name": ".NETCoreApp,Version=v8.0",
"signature": ""
},
"compilationOptions": {},
"targets": {
".NETCoreApp,Version=v8.0": {
"Microsoft.CodeAnalysis.Workspaces.MSBuild.BuildHost/5.0.0-2.25567.12": {
"dependencies": {
"Microsoft.Build.Locator": "1.10.2",
"Newtonsoft.Json": "13.0.3",
"System.Collections.Immutable": "9.0.0",
"System.CommandLine": "2.0.0-rtm.25509.106"
},
"runtime": {
"Microsoft.CodeAnalysis.Workspaces.MSBuild.BuildHost.dll": {}
},
"resources": {
"cs/Microsoft.CodeAnalysis.Workspaces.MSBuild.BuildHost.resources.dll": {
"locale": "cs"
},
"de/Microsoft.CodeAnalysis.Workspaces.MSBuild.BuildHost.resources.dll": {
"locale": "de"
},
"es/Microsoft.CodeAnalysis.Workspaces.MSBuild.BuildHost.resources.dll": {
"locale": "es"
},
"fr/Microsoft.CodeAnalysis.Workspaces.MSBuild.BuildHost.resources.dll": {
"locale": "fr"
},
"it/Microsoft.CodeAnalysis.Workspaces.MSBuild.BuildHost.resources.dll": {
"locale": "it"
},
"ja/Microsoft.CodeAnalysis.Workspaces.MSBuild.BuildHost.resources.dll": {
"locale": "ja"
},
"ko/Microsoft.CodeAnalysis.Workspaces.MSBuild.BuildHost.resources.dll": {
"locale": "ko"
},
"pl/Microsoft.CodeAnalysis.Workspaces.MSBuild.BuildHost.resources.dll": {
"locale": "pl"
},
"pt-BR/Microsoft.CodeAnalysis.Workspaces.MSBuild.BuildHost.resources.dll": {
"locale": "pt-BR"
},
"ru/Microsoft.CodeAnalysis.Workspaces.MSBuild.BuildHost.resources.dll": {
"locale": "ru"
},
"tr/Microsoft.CodeAnalysis.Workspaces.MSBuild.BuildHost.resources.dll": {
"locale": "tr"
},
"zh-Hans/Microsoft.CodeAnalysis.Workspaces.MSBuild.BuildHost.resources.dll": {
"locale": "zh-Hans"
},
"zh-Hant/Microsoft.CodeAnalysis.Workspaces.MSBuild.BuildHost.resources.dll": {
"locale": "zh-Hant"
}
}
},
"Microsoft.Build.Locator/1.10.2": {
"runtime": {
"lib/net8.0/Microsoft.Build.Locator.dll": {
"assemblyVersion": "1.0.0.0",
"fileVersion": "1.10.2.26959"
}
}
},
"Newtonsoft.Json/13.0.3": {
"runtime": {
"lib/net6.0/Newtonsoft.Json.dll": {
"assemblyVersion": "13.0.0.0",
"fileVersion": "13.0.3.27908"
}
}
},
"System.Collections.Immutable/9.0.0": {
"runtime": {
"lib/net8.0/System.Collections.Immutable.dll": {
"assemblyVersion": "9.0.0.0",
"fileVersion": "9.0.24.52809"
}
}
},
"System.CommandLine/2.0.0-rtm.25509.106": {
"runtime": {
"lib/net8.0/System.CommandLine.dll": {
"assemblyVersion": "2.0.0.0",
"fileVersion": "2.0.25.51006"
}
},
"resources": {
"lib/net8.0/cs/System.CommandLine.resources.dll": {
"locale": "cs"
},
"lib/net8.0/de/System.CommandLine.resources.dll": {
"locale": "de"
},
"lib/net8.0/es/System.CommandLine.resources.dll": {
"locale": "es"
},
"lib/net8.0/fr/System.CommandLine.resources.dll": {
"locale": "fr"
},
"lib/net8.0/it/System.CommandLine.resources.dll": {
"locale": "it"
},
"lib/net8.0/ja/System.CommandLine.resources.dll": {
"locale": "ja"
},
"lib/net8.0/ko/System.CommandLine.resources.dll": {
"locale": "ko"
},
"lib/net8.0/pl/System.CommandLine.resources.dll": {
"locale": "pl"
},
"lib/net8.0/pt-BR/System.CommandLine.resources.dll": {
"locale": "pt-BR"
},
"lib/net8.0/ru/System.CommandLine.resources.dll": {
"locale": "ru"
},
"lib/net8.0/tr/System.CommandLine.resources.dll": {
"locale": "tr"
},
"lib/net8.0/zh-Hans/System.CommandLine.resources.dll": {
"locale": "zh-Hans"
},
"lib/net8.0/zh-Hant/System.CommandLine.resources.dll": {
"locale": "zh-Hant"
}
}
}
}
},
"libraries": {
"Microsoft.CodeAnalysis.Workspaces.MSBuild.BuildHost/5.0.0-2.25567.12": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"Microsoft.Build.Locator/1.10.2": {
"type": "package",
"serviceable": true,
"sha512": "sha512-F+nLS7IpgtslyxNvtD6Jalnf5WU08lu8yfJBNQl3cbEF3AMUphs4t7nPuRYaaU8QZyGrqtVi7i73LhAe/yHx7A==",
"path": "microsoft.build.locator/1.10.2",
"hashPath": "microsoft.build.locator.1.10.2.nupkg.sha512"
},
"Newtonsoft.Json/13.0.3": {
"type": "package",
"serviceable": true,
"sha512": "sha512-HrC5BXdl00IP9zeV+0Z848QWPAoCr9P3bDEZguI+gkLcBKAOxix/tLEAAHC+UvDNPv4a2d18lOReHMOagPa+zQ==",
"path": "newtonsoft.json/13.0.3",
"hashPath": "newtonsoft.json.13.0.3.nupkg.sha512"
},
"System.Collections.Immutable/9.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-QhkXUl2gNrQtvPmtBTQHb0YsUrDiDQ2QS09YbtTTiSjGcf7NBqtYbrG/BE06zcBPCKEwQGzIv13IVdXNOSub2w==",
"path": "system.collections.immutable/9.0.0",
"hashPath": "system.collections.immutable.9.0.0.nupkg.sha512"
},
"System.CommandLine/2.0.0-rtm.25509.106": {
"type": "package",
"serviceable": true,
"sha512": "sha512-IdCQOFNHQfK0hu3tzWOHFJLMaiEOR/4OynmOh+IfukrTIsCR4TTDm7lpuXQyMZ0eRfIyUcz06gHGJNlILAq/6A==",
"path": "system.commandline/2.0.0-rtm.25509.106",
"hashPath": "system.commandline.2.0.0-rtm.25509.106.nupkg.sha512"
}
}
}
@@ -0,0 +1,14 @@
{
"runtimeOptions": {
"tfm": "net8.0",
"framework": {
"name": "Microsoft.NETCore.App",
"version": "8.0.0"
},
"rollForward": "Major",
"configProperties": {
"System.Reflection.Metadata.MetadataUpdater.IsSupported": false,
"System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization": false
}
}
}

Some files were not shown because too many files have changed in this diff Show More