Initial commit
هذا الالتزام موجود في:
7
.gitignore
مباع
Normal file
7
.gitignore
مباع
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
.vs/
|
||||||
|
bin/
|
||||||
|
obj/
|
||||||
|
*.user
|
||||||
|
*.suo
|
||||||
|
*.userosscache
|
||||||
|
*.sln.docstates
|
105
Controllers/WondersController.cs
Normal file
105
Controllers/WondersController.cs
Normal file
@@ -0,0 +1,105 @@
|
|||||||
|
using Microsoft.AspNetCore.Mvc;
|
||||||
|
using Microsoft.EntityFrameworkCore;
|
||||||
|
using Microsoft.Extensions.Logging;
|
||||||
|
using WondersAPI.Data;
|
||||||
|
using WondersAPI.Models;
|
||||||
|
|
||||||
|
namespace Ghaymah.WondersAPI.Controllers
|
||||||
|
{
|
||||||
|
[ApiController]
|
||||||
|
[Route("api/[controller]")]
|
||||||
|
public class WondersController : ControllerBase
|
||||||
|
{
|
||||||
|
private readonly AppDbContext _context;
|
||||||
|
private readonly ILogger<WondersController> _logger;
|
||||||
|
|
||||||
|
public WondersController(AppDbContext context, ILogger<WondersController> logger)
|
||||||
|
{
|
||||||
|
_context = context;
|
||||||
|
_logger = logger;
|
||||||
|
}
|
||||||
|
|
||||||
|
[HttpGet]
|
||||||
|
public async Task<IActionResult> GetAll()
|
||||||
|
{
|
||||||
|
var wonders = await _context.Wonders.ToListAsync();
|
||||||
|
_logger.LogInformation("Fetched {Count} wonders from database", wonders.Count);
|
||||||
|
return Ok(wonders);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
[HttpGet("{id}")]
|
||||||
|
public async Task<IActionResult> GetById(int id)
|
||||||
|
{
|
||||||
|
var wonder = await _context.Wonders.FindAsync(id);
|
||||||
|
if (wonder == null)
|
||||||
|
{
|
||||||
|
_logger.LogWarning("Wonder with ID {Id} not found", id);
|
||||||
|
return NotFound(new { message = $"Wonder with ID {id} not found" });
|
||||||
|
}
|
||||||
|
|
||||||
|
return Ok(wonder);
|
||||||
|
}
|
||||||
|
|
||||||
|
[HttpPost]
|
||||||
|
public async Task<IActionResult> Create(Wonder wonder)
|
||||||
|
{
|
||||||
|
_context.Wonders.Add(wonder);
|
||||||
|
await _context.SaveChangesAsync();
|
||||||
|
_logger.LogInformation("Created new wonder: {Name}", wonder.Name);
|
||||||
|
return CreatedAtAction(nameof(GetById), new { id = wonder.Id }, wonder);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
[HttpPut("{id}")]
|
||||||
|
public async Task<IActionResult> Update(int id, Wonder updatedWonder)
|
||||||
|
{
|
||||||
|
var existing = await _context.Wonders.FindAsync(id);
|
||||||
|
if (existing == null)
|
||||||
|
{
|
||||||
|
_logger.LogWarning("Update failed: Wonder with ID {Id} not found", id);
|
||||||
|
return NotFound();
|
||||||
|
}
|
||||||
|
|
||||||
|
existing.Name = updatedWonder.Name;
|
||||||
|
existing.Country = updatedWonder.Country;
|
||||||
|
existing.Era = updatedWonder.Era;
|
||||||
|
existing.Type = updatedWonder.Type;
|
||||||
|
existing.Description = updatedWonder.Description;
|
||||||
|
existing.DiscoveryYear = updatedWonder.DiscoveryYear;
|
||||||
|
|
||||||
|
await _context.SaveChangesAsync();
|
||||||
|
_logger.LogInformation("Updated wonder with ID {Id}", id);
|
||||||
|
return NoContent();
|
||||||
|
}
|
||||||
|
|
||||||
|
[HttpDelete("{id}")]
|
||||||
|
public async Task<IActionResult> Delete(int id)
|
||||||
|
{
|
||||||
|
var wonder = await _context.Wonders.FindAsync(id);
|
||||||
|
if (wonder == null)
|
||||||
|
{
|
||||||
|
_logger.LogWarning("Delete failed: Wonder with ID {Id} not found", id);
|
||||||
|
return NotFound();
|
||||||
|
}
|
||||||
|
|
||||||
|
_context.Wonders.Remove(wonder);
|
||||||
|
await _context.SaveChangesAsync();
|
||||||
|
_logger.LogInformation("Deleted wonder with ID {Id}", id);
|
||||||
|
return NoContent();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
[HttpGet("random")]
|
||||||
|
public async Task<IActionResult> GetRandom()
|
||||||
|
{
|
||||||
|
var wonders = await _context.Wonders.ToListAsync();
|
||||||
|
if (!wonders.Any())
|
||||||
|
return NotFound();
|
||||||
|
|
||||||
|
var random = wonders[new Random().Next(wonders.Count)];
|
||||||
|
_logger.LogInformation("Returned random wonder: {Name}", random.Name);
|
||||||
|
return Ok(random);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
12
Data/AppDbContext.cs
Normal file
12
Data/AppDbContext.cs
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
using Microsoft.EntityFrameworkCore;
|
||||||
|
using WondersAPI.Models;
|
||||||
|
|
||||||
|
namespace WondersAPI.Data
|
||||||
|
{
|
||||||
|
public class AppDbContext : DbContext
|
||||||
|
{
|
||||||
|
public DbSet<Wonder> Wonders => Set<Wonder>();
|
||||||
|
|
||||||
|
public AppDbContext(DbContextOptions<AppDbContext> options) : base(options) { }
|
||||||
|
}
|
||||||
|
}
|
22
Data/DataSeedingApplication.cs
Normal file
22
Data/DataSeedingApplication.cs
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
using System.Text.Json;
|
||||||
|
using WondersAPI.Models;
|
||||||
|
|
||||||
|
namespace WondersAPI.Data
|
||||||
|
{
|
||||||
|
public static class DataSeedingApplication
|
||||||
|
{
|
||||||
|
public static List<Wonder> SeedWonders(string filePath)
|
||||||
|
{
|
||||||
|
if (!File.Exists(filePath))
|
||||||
|
throw new FileNotFoundException($"Seed data file not found: {filePath}");
|
||||||
|
|
||||||
|
var json = File.ReadAllText(filePath);
|
||||||
|
var wonders = JsonSerializer.Deserialize<List<Wonder>>(json, new JsonSerializerOptions
|
||||||
|
{
|
||||||
|
PropertyNameCaseInsensitive = true
|
||||||
|
});
|
||||||
|
|
||||||
|
return wonders ?? new List<Wonder>();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
19
Ghaymah.WondersAPI.csproj
Normal file
19
Ghaymah.WondersAPI.csproj
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
<Project Sdk="Microsoft.NET.Sdk.Web">
|
||||||
|
|
||||||
|
<PropertyGroup>
|
||||||
|
<TargetFramework>net8.0</TargetFramework>
|
||||||
|
<Nullable>enable</Nullable>
|
||||||
|
<ImplicitUsings>enable</ImplicitUsings>
|
||||||
|
</PropertyGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="9.0.9" />
|
||||||
|
<PackageReference Include="Microsoft.EntityFrameworkCore.InMemory" Version="9.0.9" />
|
||||||
|
<PackageReference Include="Microsoft.Extensions.Logging.Console" Version="9.0.9" />
|
||||||
|
<PackageReference Include="Serilog.AspNetCore" Version="8.0.3" />
|
||||||
|
<PackageReference Include="Serilog.Sinks.File" Version="7.0.0" />
|
||||||
|
<PackageReference Include="Swashbuckle.AspNetCore" Version="6.6.2" />
|
||||||
|
<PackageReference Include="System.Text.Json" Version="9.0.9" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
|
</Project>
|
3
Ghaymah.WondersAPI.slnx
Normal file
3
Ghaymah.WondersAPI.slnx
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
<Solution>
|
||||||
|
<Project Path="Ghaymah.WondersAPI.csproj" />
|
||||||
|
</Solution>
|
194
Logs/app-log2025100520251005.json
Normal file
194
Logs/app-log2025100520251005.json
Normal file
@@ -0,0 +1,194 @@
|
|||||||
|
{"Timestamp":"2025-10-05T19:36:02.8531416+03:00","Level":"Information","MessageTemplate":"Saved {count} entities to in-memory store.","Properties":{"count":6,"EventId":{"Id":30100,"Name":"Microsoft.EntityFrameworkCore.Update.ChangesSaved"},"SourceContext":"Microsoft.EntityFrameworkCore.Update"}}
|
||||||
|
{"Timestamp":"2025-10-05T19:36:02.8899875+03:00","Level":"Information","MessageTemplate":"🚀 Wonders API application started successfully at {time}","Properties":{"time":"2025-10-05T19:36:02.8884430+03:00","SourceContext":"Program"}}
|
||||||
|
{"Timestamp":"2025-10-05T19:36:02.9889100+03:00","Level":"Information","MessageTemplate":"Now listening on: {address}","Properties":{"address":"https://localhost:7247","EventId":{"Id":14,"Name":"ListeningOnAddress"},"SourceContext":"Microsoft.Hosting.Lifetime"}}
|
||||||
|
{"Timestamp":"2025-10-05T19:36:02.9940832+03:00","Level":"Information","MessageTemplate":"Now listening on: {address}","Properties":{"address":"http://localhost:5004","EventId":{"Id":14,"Name":"ListeningOnAddress"},"SourceContext":"Microsoft.Hosting.Lifetime"}}
|
||||||
|
{"Timestamp":"2025-10-05T19:36:03.0286517+03:00","Level":"Information","MessageTemplate":"Application started. Press Ctrl+C to shut down.","Properties":{"SourceContext":"Microsoft.Hosting.Lifetime"}}
|
||||||
|
{"Timestamp":"2025-10-05T19:36:03.0318673+03:00","Level":"Information","MessageTemplate":"Hosting environment: {EnvName}","Properties":{"EnvName":"Development","SourceContext":"Microsoft.Hosting.Lifetime"}}
|
||||||
|
{"Timestamp":"2025-10-05T19:36:03.0334687+03:00","Level":"Information","MessageTemplate":"Content root path: {ContentRoot}","Properties":{"ContentRoot":"D:\\WebApplication1","SourceContext":"Microsoft.Hosting.Lifetime"}}
|
||||||
|
{"Timestamp":"2025-10-05T19:36:03.2423042+03:00","Level":"Information","MessageTemplate":"Request starting {Protocol} {Method} {Scheme}://{Host}{PathBase}{Path}{QueryString} - {ContentType} {ContentLength}","TraceId":"35acc1a7ef7105acd31f33a3ac8a348d","SpanId":"5e9a885cea878872","Properties":{"Protocol":"HTTP/2","Method":"GET","ContentType":null,"ContentLength":null,"Scheme":"https","Host":"localhost:7247","PathBase":"","Path":"/swagger/index.html","QueryString":"","EventId":{"Id":1},"SourceContext":"Microsoft.AspNetCore.Hosting.Diagnostics","RequestId":"0HNG45L33UCSH:00000001","RequestPath":"/swagger/index.html","ConnectionId":"0HNG45L33UCSH"}}
|
||||||
|
{"Timestamp":"2025-10-05T19:36:03.3415286+03:00","Level":"Information","MessageTemplate":"Request finished {Protocol} {Method} {Scheme}://{Host}{PathBase}{Path}{QueryString} - {StatusCode} {ContentLength} {ContentType} {ElapsedMilliseconds}ms","TraceId":"35acc1a7ef7105acd31f33a3ac8a348d","SpanId":"5e9a885cea878872","Properties":{"ElapsedMilliseconds":100.0974,"StatusCode":200,"ContentType":"text/html;charset=utf-8","ContentLength":null,"Protocol":"HTTP/2","Method":"GET","Scheme":"https","Host":"localhost:7247","PathBase":"","Path":"/swagger/index.html","QueryString":"","EventId":{"Id":2},"SourceContext":"Microsoft.AspNetCore.Hosting.Diagnostics","RequestId":"0HNG45L33UCSH:00000001","RequestPath":"/swagger/index.html","ConnectionId":"0HNG45L33UCSH"}}
|
||||||
|
{"Timestamp":"2025-10-05T19:36:03.4167446+03:00","Level":"Information","MessageTemplate":"Request starting {Protocol} {Method} {Scheme}://{Host}{PathBase}{Path}{QueryString} - {ContentType} {ContentLength}","TraceId":"f974586b42c12b04caf14a86b44c1560","SpanId":"e80f1c35b260a8e4","Properties":{"Protocol":"HTTP/2","Method":"GET","ContentType":null,"ContentLength":null,"Scheme":"https","Host":"localhost:7247","PathBase":"","Path":"/_framework/aspnetcore-browser-refresh.js","QueryString":"","EventId":{"Id":1},"SourceContext":"Microsoft.AspNetCore.Hosting.Diagnostics","RequestId":"0HNG45L33UCSH:00000003","RequestPath":"/_framework/aspnetcore-browser-refresh.js","ConnectionId":"0HNG45L33UCSH"}}
|
||||||
|
{"Timestamp":"2025-10-05T19:36:03.4260460+03:00","Level":"Information","MessageTemplate":"Request finished {Protocol} {Method} {Scheme}://{Host}{PathBase}{Path}{QueryString} - {StatusCode} {ContentLength} {ContentType} {ElapsedMilliseconds}ms","TraceId":"f974586b42c12b04caf14a86b44c1560","SpanId":"e80f1c35b260a8e4","Properties":{"ElapsedMilliseconds":9.2519,"StatusCode":200,"ContentType":"application/javascript; charset=utf-8","ContentLength":16515,"Protocol":"HTTP/2","Method":"GET","Scheme":"https","Host":"localhost:7247","PathBase":"","Path":"/_framework/aspnetcore-browser-refresh.js","QueryString":"","EventId":{"Id":2},"SourceContext":"Microsoft.AspNetCore.Hosting.Diagnostics","RequestId":"0HNG45L33UCSH:00000003","RequestPath":"/_framework/aspnetcore-browser-refresh.js","ConnectionId":"0HNG45L33UCSH"}}
|
||||||
|
{"Timestamp":"2025-10-05T19:36:03.5236031+03:00","Level":"Information","MessageTemplate":"Request starting {Protocol} {Method} {Scheme}://{Host}{PathBase}{Path}{QueryString} - {ContentType} {ContentLength}","TraceId":"5020635b40c563bb6a73ead50af0198a","SpanId":"d1f11f315eeae498","Properties":{"Protocol":"HTTP/2","Method":"GET","ContentType":null,"ContentLength":null,"Scheme":"https","Host":"localhost:7247","PathBase":"","Path":"/_vs/browserLink","QueryString":"","EventId":{"Id":1},"SourceContext":"Microsoft.AspNetCore.Hosting.Diagnostics","RequestId":"0HNG45L33UCSH:00000005","RequestPath":"/_vs/browserLink","ConnectionId":"0HNG45L33UCSH"}}
|
||||||
|
{"Timestamp":"2025-10-05T19:36:03.5492992+03:00","Level":"Information","MessageTemplate":"Request finished {Protocol} {Method} {Scheme}://{Host}{PathBase}{Path}{QueryString} - {StatusCode} {ContentLength} {ContentType} {ElapsedMilliseconds}ms","TraceId":"5020635b40c563bb6a73ead50af0198a","SpanId":"d1f11f315eeae498","Properties":{"ElapsedMilliseconds":25.7293,"StatusCode":200,"ContentType":"text/javascript; charset=UTF-8","ContentLength":null,"Protocol":"HTTP/2","Method":"GET","Scheme":"https","Host":"localhost:7247","PathBase":"","Path":"/_vs/browserLink","QueryString":"","EventId":{"Id":2},"SourceContext":"Microsoft.AspNetCore.Hosting.Diagnostics","RequestId":"0HNG45L33UCSH:00000005","RequestPath":"/_vs/browserLink","ConnectionId":"0HNG45L33UCSH"}}
|
||||||
|
{"Timestamp":"2025-10-05T19:36:03.9302775+03:00","Level":"Information","MessageTemplate":"Request starting {Protocol} {Method} {Scheme}://{Host}{PathBase}{Path}{QueryString} - {ContentType} {ContentLength}","TraceId":"913161755c6cb00fef169c71c09f3cdc","SpanId":"bdedd551d06649bc","Properties":{"Protocol":"HTTP/2","Method":"GET","ContentType":null,"ContentLength":null,"Scheme":"https","Host":"localhost:7247","PathBase":"","Path":"/swagger/v1/swagger.json","QueryString":"","EventId":{"Id":1},"SourceContext":"Microsoft.AspNetCore.Hosting.Diagnostics","RequestId":"0HNG45L33UCSH:00000007","RequestPath":"/swagger/v1/swagger.json","ConnectionId":"0HNG45L33UCSH"}}
|
||||||
|
{"Timestamp":"2025-10-05T19:36:03.9408565+03:00","Level":"Information","MessageTemplate":"Request finished {Protocol} {Method} {Scheme}://{Host}{PathBase}{Path}{QueryString} - {StatusCode} {ContentLength} {ContentType} {ElapsedMilliseconds}ms","TraceId":"913161755c6cb00fef169c71c09f3cdc","SpanId":"bdedd551d06649bc","Properties":{"ElapsedMilliseconds":10.5719,"StatusCode":200,"ContentType":"application/json;charset=utf-8","ContentLength":null,"Protocol":"HTTP/2","Method":"GET","Scheme":"https","Host":"localhost:7247","PathBase":"","Path":"/swagger/v1/swagger.json","QueryString":"","EventId":{"Id":2},"SourceContext":"Microsoft.AspNetCore.Hosting.Diagnostics","RequestId":"0HNG45L33UCSH:00000007","RequestPath":"/swagger/v1/swagger.json","ConnectionId":"0HNG45L33UCSH"}}
|
||||||
|
{"Timestamp":"2025-10-05T19:36:07.9317520+03:00","Level":"Information","MessageTemplate":"Request starting {Protocol} {Method} {Scheme}://{Host}{PathBase}{Path}{QueryString} - {ContentType} {ContentLength}","TraceId":"c5fa6182c934d92df2d96e1ef32effc1","SpanId":"1bd29727ef663f91","Properties":{"Protocol":"HTTP/2","Method":"GET","ContentType":null,"ContentLength":null,"Scheme":"https","Host":"localhost:7247","PathBase":"","Path":"/swagger/index.html","QueryString":"","EventId":{"Id":1},"SourceContext":"Microsoft.AspNetCore.Hosting.Diagnostics","RequestId":"0HNG45L33UCSH:00000009","RequestPath":"/swagger/index.html","ConnectionId":"0HNG45L33UCSH"}}
|
||||||
|
{"Timestamp":"2025-10-05T19:36:07.9454296+03:00","Level":"Information","MessageTemplate":"Request finished {Protocol} {Method} {Scheme}://{Host}{PathBase}{Path}{QueryString} - {StatusCode} {ContentLength} {ContentType} {ElapsedMilliseconds}ms","TraceId":"c5fa6182c934d92df2d96e1ef32effc1","SpanId":"1bd29727ef663f91","Properties":{"ElapsedMilliseconds":13.5054,"StatusCode":200,"ContentType":"text/html;charset=utf-8","ContentLength":null,"Protocol":"HTTP/2","Method":"GET","Scheme":"https","Host":"localhost:7247","PathBase":"","Path":"/swagger/index.html","QueryString":"","EventId":{"Id":2},"SourceContext":"Microsoft.AspNetCore.Hosting.Diagnostics","RequestId":"0HNG45L33UCSH:00000009","RequestPath":"/swagger/index.html","ConnectionId":"0HNG45L33UCSH"}}
|
||||||
|
{"Timestamp":"2025-10-05T19:36:07.9978445+03:00","Level":"Information","MessageTemplate":"Request starting {Protocol} {Method} {Scheme}://{Host}{PathBase}{Path}{QueryString} - {ContentType} {ContentLength}","TraceId":"2152647d28f968bbf9ba6599ebf01cac","SpanId":"cfe1c3ee84759618","Properties":{"Protocol":"HTTP/2","Method":"GET","ContentType":null,"ContentLength":null,"Scheme":"https","Host":"localhost:7247","PathBase":"","Path":"/_framework/aspnetcore-browser-refresh.js","QueryString":"","EventId":{"Id":1},"SourceContext":"Microsoft.AspNetCore.Hosting.Diagnostics","RequestId":"0HNG45L33UCSH:0000000B","RequestPath":"/_framework/aspnetcore-browser-refresh.js","ConnectionId":"0HNG45L33UCSH"}}
|
||||||
|
{"Timestamp":"2025-10-05T19:36:07.9979310+03:00","Level":"Information","MessageTemplate":"Request starting {Protocol} {Method} {Scheme}://{Host}{PathBase}{Path}{QueryString} - {ContentType} {ContentLength}","TraceId":"7181bcf37c68b2dfb4105c595a5ae52b","SpanId":"ebf00b338f32a89f","Properties":{"Protocol":"HTTP/2","Method":"GET","ContentType":null,"ContentLength":null,"Scheme":"https","Host":"localhost:7247","PathBase":"","Path":"/_vs/browserLink","QueryString":"","EventId":{"Id":1},"SourceContext":"Microsoft.AspNetCore.Hosting.Diagnostics","RequestId":"0HNG45L33UCSH:0000000D","RequestPath":"/_vs/browserLink","ConnectionId":"0HNG45L33UCSH"}}
|
||||||
|
{"Timestamp":"2025-10-05T19:36:08.0033851+03:00","Level":"Information","MessageTemplate":"Request finished {Protocol} {Method} {Scheme}://{Host}{PathBase}{Path}{QueryString} - {StatusCode} {ContentLength} {ContentType} {ElapsedMilliseconds}ms","TraceId":"2152647d28f968bbf9ba6599ebf01cac","SpanId":"cfe1c3ee84759618","Properties":{"ElapsedMilliseconds":5.5171,"StatusCode":200,"ContentType":"application/javascript; charset=utf-8","ContentLength":16515,"Protocol":"HTTP/2","Method":"GET","Scheme":"https","Host":"localhost:7247","PathBase":"","Path":"/_framework/aspnetcore-browser-refresh.js","QueryString":"","EventId":{"Id":2},"SourceContext":"Microsoft.AspNetCore.Hosting.Diagnostics","RequestId":"0HNG45L33UCSH:0000000B","RequestPath":"/_framework/aspnetcore-browser-refresh.js","ConnectionId":"0HNG45L33UCSH"}}
|
||||||
|
{"Timestamp":"2025-10-05T19:36:08.0203502+03:00","Level":"Information","MessageTemplate":"Request finished {Protocol} {Method} {Scheme}://{Host}{PathBase}{Path}{QueryString} - {StatusCode} {ContentLength} {ContentType} {ElapsedMilliseconds}ms","TraceId":"7181bcf37c68b2dfb4105c595a5ae52b","SpanId":"ebf00b338f32a89f","Properties":{"ElapsedMilliseconds":22.376,"StatusCode":200,"ContentType":"text/javascript; charset=UTF-8","ContentLength":null,"Protocol":"HTTP/2","Method":"GET","Scheme":"https","Host":"localhost:7247","PathBase":"","Path":"/_vs/browserLink","QueryString":"","EventId":{"Id":2},"SourceContext":"Microsoft.AspNetCore.Hosting.Diagnostics","RequestId":"0HNG45L33UCSH:0000000D","RequestPath":"/_vs/browserLink","ConnectionId":"0HNG45L33UCSH"}}
|
||||||
|
{"Timestamp":"2025-10-05T19:36:08.3130585+03:00","Level":"Information","MessageTemplate":"Request starting {Protocol} {Method} {Scheme}://{Host}{PathBase}{Path}{QueryString} - {ContentType} {ContentLength}","TraceId":"7e87e8608159f56dd2aaf6b09115ba52","SpanId":"1f71e2289690feea","Properties":{"Protocol":"HTTP/2","Method":"GET","ContentType":null,"ContentLength":null,"Scheme":"https","Host":"localhost:7247","PathBase":"","Path":"/swagger/v1/swagger.json","QueryString":"","EventId":{"Id":1},"SourceContext":"Microsoft.AspNetCore.Hosting.Diagnostics","RequestId":"0HNG45L33UCSH:0000000F","RequestPath":"/swagger/v1/swagger.json","ConnectionId":"0HNG45L33UCSH"}}
|
||||||
|
{"Timestamp":"2025-10-05T19:36:08.3374898+03:00","Level":"Information","MessageTemplate":"Request finished {Protocol} {Method} {Scheme}://{Host}{PathBase}{Path}{QueryString} - {StatusCode} {ContentLength} {ContentType} {ElapsedMilliseconds}ms","TraceId":"7e87e8608159f56dd2aaf6b09115ba52","SpanId":"1f71e2289690feea","Properties":{"ElapsedMilliseconds":24.3464,"StatusCode":200,"ContentType":"application/json;charset=utf-8","ContentLength":null,"Protocol":"HTTP/2","Method":"GET","Scheme":"https","Host":"localhost:7247","PathBase":"","Path":"/swagger/v1/swagger.json","QueryString":"","EventId":{"Id":2},"SourceContext":"Microsoft.AspNetCore.Hosting.Diagnostics","RequestId":"0HNG45L33UCSH:0000000F","RequestPath":"/swagger/v1/swagger.json","ConnectionId":"0HNG45L33UCSH"}}
|
||||||
|
{"Timestamp":"2025-10-05T19:39:16.0418357+03:00","Level":"Information","MessageTemplate":"Saved {count} entities to in-memory store.","Properties":{"count":6,"EventId":{"Id":30100,"Name":"Microsoft.EntityFrameworkCore.Update.ChangesSaved"},"SourceContext":"Microsoft.EntityFrameworkCore.Update"}}
|
||||||
|
{"Timestamp":"2025-10-05T19:39:16.0877228+03:00","Level":"Information","MessageTemplate":"🚀 Wonders API application started successfully at {time}","Properties":{"time":"2025-10-05T19:39:16.0848639+03:00","SourceContext":"Program"}}
|
||||||
|
{"Timestamp":"2025-10-05T19:39:16.1893656+03:00","Level":"Information","MessageTemplate":"Now listening on: {address}","Properties":{"address":"https://localhost:7247","EventId":{"Id":14,"Name":"ListeningOnAddress"},"SourceContext":"Microsoft.Hosting.Lifetime"}}
|
||||||
|
{"Timestamp":"2025-10-05T19:39:16.1903794+03:00","Level":"Information","MessageTemplate":"Now listening on: {address}","Properties":{"address":"http://localhost:5004","EventId":{"Id":14,"Name":"ListeningOnAddress"},"SourceContext":"Microsoft.Hosting.Lifetime"}}
|
||||||
|
{"Timestamp":"2025-10-05T19:39:16.2194975+03:00","Level":"Information","MessageTemplate":"Application started. Press Ctrl+C to shut down.","Properties":{"SourceContext":"Microsoft.Hosting.Lifetime"}}
|
||||||
|
{"Timestamp":"2025-10-05T19:39:16.2217609+03:00","Level":"Information","MessageTemplate":"Hosting environment: {EnvName}","Properties":{"EnvName":"Development","SourceContext":"Microsoft.Hosting.Lifetime"}}
|
||||||
|
{"Timestamp":"2025-10-05T19:39:16.2225178+03:00","Level":"Information","MessageTemplate":"Content root path: {ContentRoot}","Properties":{"ContentRoot":"D:\\WebApplication1","SourceContext":"Microsoft.Hosting.Lifetime"}}
|
||||||
|
{"Timestamp":"2025-10-05T19:39:38.5306752+03:00","Level":"Information","MessageTemplate":"Saved {count} entities to in-memory store.","Properties":{"count":6,"EventId":{"Id":30100,"Name":"Microsoft.EntityFrameworkCore.Update.ChangesSaved"},"SourceContext":"Microsoft.EntityFrameworkCore.Update"}}
|
||||||
|
{"Timestamp":"2025-10-05T19:39:38.5595008+03:00","Level":"Information","MessageTemplate":"🚀 Wonders API application started successfully at {time}","Properties":{"time":"2025-10-05T19:39:38.5579514+03:00","SourceContext":"Program"}}
|
||||||
|
{"Timestamp":"2025-10-05T19:39:38.6616158+03:00","Level":"Information","MessageTemplate":"Now listening on: {address}","Properties":{"address":"https://localhost:7247","EventId":{"Id":14,"Name":"ListeningOnAddress"},"SourceContext":"Microsoft.Hosting.Lifetime"}}
|
||||||
|
{"Timestamp":"2025-10-05T19:39:38.6632466+03:00","Level":"Information","MessageTemplate":"Now listening on: {address}","Properties":{"address":"http://localhost:5004","EventId":{"Id":14,"Name":"ListeningOnAddress"},"SourceContext":"Microsoft.Hosting.Lifetime"}}
|
||||||
|
{"Timestamp":"2025-10-05T19:39:38.6897776+03:00","Level":"Information","MessageTemplate":"Application started. Press Ctrl+C to shut down.","Properties":{"SourceContext":"Microsoft.Hosting.Lifetime"}}
|
||||||
|
{"Timestamp":"2025-10-05T19:39:38.6921689+03:00","Level":"Information","MessageTemplate":"Hosting environment: {EnvName}","Properties":{"EnvName":"Development","SourceContext":"Microsoft.Hosting.Lifetime"}}
|
||||||
|
{"Timestamp":"2025-10-05T19:39:38.6927100+03:00","Level":"Information","MessageTemplate":"Content root path: {ContentRoot}","Properties":{"ContentRoot":"D:\\WebApplication1","SourceContext":"Microsoft.Hosting.Lifetime"}}
|
||||||
|
{"Timestamp":"2025-10-05T19:39:39.2954029+03:00","Level":"Information","MessageTemplate":"Request starting {Protocol} {Method} {Scheme}://{Host}{PathBase}{Path}{QueryString} - {ContentType} {ContentLength}","TraceId":"5e8113cd010a28949f738c64b5b50110","SpanId":"220bfcc6fa1488d1","Properties":{"Protocol":"HTTP/2","Method":"GET","ContentType":null,"ContentLength":null,"Scheme":"https","Host":"localhost:7247","PathBase":"","Path":"/swagger/index.html","QueryString":"","EventId":{"Id":1},"SourceContext":"Microsoft.AspNetCore.Hosting.Diagnostics","RequestId":"0HNG45N3EQM0P:00000001","RequestPath":"/swagger/index.html","ConnectionId":"0HNG45N3EQM0P"}}
|
||||||
|
{"Timestamp":"2025-10-05T19:39:39.4190454+03:00","Level":"Information","MessageTemplate":"Request finished {Protocol} {Method} {Scheme}://{Host}{PathBase}{Path}{QueryString} - {StatusCode} {ContentLength} {ContentType} {ElapsedMilliseconds}ms","TraceId":"5e8113cd010a28949f738c64b5b50110","SpanId":"220bfcc6fa1488d1","Properties":{"ElapsedMilliseconds":124.533,"StatusCode":200,"ContentType":"text/html;charset=utf-8","ContentLength":null,"Protocol":"HTTP/2","Method":"GET","Scheme":"https","Host":"localhost:7247","PathBase":"","Path":"/swagger/index.html","QueryString":"","EventId":{"Id":2},"SourceContext":"Microsoft.AspNetCore.Hosting.Diagnostics","RequestId":"0HNG45N3EQM0P:00000001","RequestPath":"/swagger/index.html","ConnectionId":"0HNG45N3EQM0P"}}
|
||||||
|
{"Timestamp":"2025-10-05T19:39:39.4413620+03:00","Level":"Information","MessageTemplate":"Request starting {Protocol} {Method} {Scheme}://{Host}{PathBase}{Path}{QueryString} - {ContentType} {ContentLength}","TraceId":"8eaf7f2b538f04a546a16b5399f4bb50","SpanId":"6bb67786d1fd727e","Properties":{"Protocol":"HTTP/2","Method":"GET","ContentType":null,"ContentLength":null,"Scheme":"https","Host":"localhost:7247","PathBase":"","Path":"/_framework/aspnetcore-browser-refresh.js","QueryString":"","EventId":{"Id":1},"SourceContext":"Microsoft.AspNetCore.Hosting.Diagnostics","RequestId":"0HNG45N3EQM0P:00000003","RequestPath":"/_framework/aspnetcore-browser-refresh.js","ConnectionId":"0HNG45N3EQM0P"}}
|
||||||
|
{"Timestamp":"2025-10-05T19:39:39.4462100+03:00","Level":"Information","MessageTemplate":"Request finished {Protocol} {Method} {Scheme}://{Host}{PathBase}{Path}{QueryString} - {StatusCode} {ContentLength} {ContentType} {ElapsedMilliseconds}ms","TraceId":"8eaf7f2b538f04a546a16b5399f4bb50","SpanId":"6bb67786d1fd727e","Properties":{"ElapsedMilliseconds":4.8007,"StatusCode":200,"ContentType":"application/javascript; charset=utf-8","ContentLength":16515,"Protocol":"HTTP/2","Method":"GET","Scheme":"https","Host":"localhost:7247","PathBase":"","Path":"/_framework/aspnetcore-browser-refresh.js","QueryString":"","EventId":{"Id":2},"SourceContext":"Microsoft.AspNetCore.Hosting.Diagnostics","RequestId":"0HNG45N3EQM0P:00000003","RequestPath":"/_framework/aspnetcore-browser-refresh.js","ConnectionId":"0HNG45N3EQM0P"}}
|
||||||
|
{"Timestamp":"2025-10-05T19:39:39.5617184+03:00","Level":"Information","MessageTemplate":"Request starting {Protocol} {Method} {Scheme}://{Host}{PathBase}{Path}{QueryString} - {ContentType} {ContentLength}","TraceId":"52ce03b6f3ba4eeb28e9f3089d5b4968","SpanId":"4e7a1df8ab058393","Properties":{"Protocol":"HTTP/2","Method":"GET","ContentType":null,"ContentLength":null,"Scheme":"https","Host":"localhost:7247","PathBase":"","Path":"/_vs/browserLink","QueryString":"","EventId":{"Id":1},"SourceContext":"Microsoft.AspNetCore.Hosting.Diagnostics","RequestId":"0HNG45N3EQM0P:00000005","RequestPath":"/_vs/browserLink","ConnectionId":"0HNG45N3EQM0P"}}
|
||||||
|
{"Timestamp":"2025-10-05T19:39:39.5832424+03:00","Level":"Information","MessageTemplate":"Request finished {Protocol} {Method} {Scheme}://{Host}{PathBase}{Path}{QueryString} - {StatusCode} {ContentLength} {ContentType} {ElapsedMilliseconds}ms","TraceId":"52ce03b6f3ba4eeb28e9f3089d5b4968","SpanId":"4e7a1df8ab058393","Properties":{"ElapsedMilliseconds":21.559,"StatusCode":200,"ContentType":"text/javascript; charset=UTF-8","ContentLength":null,"Protocol":"HTTP/2","Method":"GET","Scheme":"https","Host":"localhost:7247","PathBase":"","Path":"/_vs/browserLink","QueryString":"","EventId":{"Id":2},"SourceContext":"Microsoft.AspNetCore.Hosting.Diagnostics","RequestId":"0HNG45N3EQM0P:00000005","RequestPath":"/_vs/browserLink","ConnectionId":"0HNG45N3EQM0P"}}
|
||||||
|
{"Timestamp":"2025-10-05T19:39:39.8503324+03:00","Level":"Information","MessageTemplate":"Request starting {Protocol} {Method} {Scheme}://{Host}{PathBase}{Path}{QueryString} - {ContentType} {ContentLength}","TraceId":"35a723ae4bcc4bd5cdfbecdb706d1c47","SpanId":"53180b4a51e96bae","Properties":{"Protocol":"HTTP/2","Method":"GET","ContentType":null,"ContentLength":null,"Scheme":"https","Host":"localhost:7247","PathBase":"","Path":"/swagger/v1/swagger.json","QueryString":"","EventId":{"Id":1},"SourceContext":"Microsoft.AspNetCore.Hosting.Diagnostics","RequestId":"0HNG45N3EQM0P:00000007","RequestPath":"/swagger/v1/swagger.json","ConnectionId":"0HNG45N3EQM0P"}}
|
||||||
|
{"Timestamp":"2025-10-05T19:39:39.8605925+03:00","Level":"Information","MessageTemplate":"Request finished {Protocol} {Method} {Scheme}://{Host}{PathBase}{Path}{QueryString} - {StatusCode} {ContentLength} {ContentType} {ElapsedMilliseconds}ms","TraceId":"35a723ae4bcc4bd5cdfbecdb706d1c47","SpanId":"53180b4a51e96bae","Properties":{"ElapsedMilliseconds":10.2206,"StatusCode":200,"ContentType":"application/json;charset=utf-8","ContentLength":null,"Protocol":"HTTP/2","Method":"GET","Scheme":"https","Host":"localhost:7247","PathBase":"","Path":"/swagger/v1/swagger.json","QueryString":"","EventId":{"Id":2},"SourceContext":"Microsoft.AspNetCore.Hosting.Diagnostics","RequestId":"0HNG45N3EQM0P:00000007","RequestPath":"/swagger/v1/swagger.json","ConnectionId":"0HNG45N3EQM0P"}}
|
||||||
|
{"Timestamp":"2025-10-05T19:40:38.4210839+03:00","Level":"Information","MessageTemplate":"Request starting {Protocol} {Method} {Scheme}://{Host}{PathBase}{Path}{QueryString} - {ContentType} {ContentLength}","TraceId":"3c27fb2b1e9c25361fd0fa0e04d93e00","SpanId":"73142fde40525b16","Properties":{"Protocol":"HTTP/2","Method":"POST","ContentType":"application/json","ContentLength":144,"Scheme":"https","Host":"localhost:7247","PathBase":"","Path":"/api/Wonders","QueryString":"","EventId":{"Id":1},"SourceContext":"Microsoft.AspNetCore.Hosting.Diagnostics","RequestId":"0HNG45N3EQM0Q:00000001","RequestPath":"/api/Wonders","ConnectionId":"0HNG45N3EQM0Q"}}
|
||||||
|
{"Timestamp":"2025-10-05T19:40:38.4331216+03:00","Level":"Information","MessageTemplate":"Executing endpoint '{EndpointName}'","TraceId":"3c27fb2b1e9c25361fd0fa0e04d93e00","SpanId":"73142fde40525b16","Properties":{"EndpointName":"Ghaymah.WondersAPI.Controllers.WondersController.Create (Ghaymah.WondersAPI)","EventId":{"Name":"ExecutingEndpoint"},"SourceContext":"Microsoft.AspNetCore.Routing.EndpointMiddleware","RequestId":"0HNG45N3EQM0Q:00000001","RequestPath":"/api/Wonders","ConnectionId":"0HNG45N3EQM0Q"}}
|
||||||
|
{"Timestamp":"2025-10-05T19:40:38.4706216+03:00","Level":"Information","MessageTemplate":"Route matched with {RouteData}. Executing controller action with signature {MethodInfo} on controller {Controller} ({AssemblyName}).","TraceId":"3c27fb2b1e9c25361fd0fa0e04d93e00","SpanId":"73142fde40525b16","Properties":{"RouteData":"{action = \"Create\", controller = \"Wonders\"}","MethodInfo":"System.Threading.Tasks.Task`1[Microsoft.AspNetCore.Mvc.IActionResult] Create(WondersAPI.Models.Wonder)","Controller":"Ghaymah.WondersAPI.Controllers.WondersController","AssemblyName":"Ghaymah.WondersAPI","EventId":{"Id":102,"Name":"ControllerActionExecuting"},"SourceContext":"Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker","ActionId":"2142c2bf-8f44-4e73-89a2-642039a2910c","ActionName":"Ghaymah.WondersAPI.Controllers.WondersController.Create (Ghaymah.WondersAPI)","RequestId":"0HNG45N3EQM0Q:00000001","RequestPath":"/api/Wonders","ConnectionId":"0HNG45N3EQM0Q"}}
|
||||||
|
{"Timestamp":"2025-10-05T19:40:38.5773338+03:00","Level":"Information","MessageTemplate":"Saved {count} entities to in-memory store.","TraceId":"3c27fb2b1e9c25361fd0fa0e04d93e00","SpanId":"73142fde40525b16","Properties":{"count":1,"EventId":{"Id":30100,"Name":"Microsoft.EntityFrameworkCore.Update.ChangesSaved"},"SourceContext":"Microsoft.EntityFrameworkCore.Update","ActionId":"2142c2bf-8f44-4e73-89a2-642039a2910c","ActionName":"Ghaymah.WondersAPI.Controllers.WondersController.Create (Ghaymah.WondersAPI)","RequestId":"0HNG45N3EQM0Q:00000001","RequestPath":"/api/Wonders","ConnectionId":"0HNG45N3EQM0Q"}}
|
||||||
|
{"Timestamp":"2025-10-05T19:40:38.5811225+03:00","Level":"Information","MessageTemplate":"Created new wonder: {Name}","TraceId":"3c27fb2b1e9c25361fd0fa0e04d93e00","SpanId":"73142fde40525b16","Properties":{"Name":"string","SourceContext":"Ghaymah.WondersAPI.Controllers.WondersController","ActionId":"2142c2bf-8f44-4e73-89a2-642039a2910c","ActionName":"Ghaymah.WondersAPI.Controllers.WondersController.Create (Ghaymah.WondersAPI)","RequestId":"0HNG45N3EQM0Q:00000001","RequestPath":"/api/Wonders","ConnectionId":"0HNG45N3EQM0Q"}}
|
||||||
|
{"Timestamp":"2025-10-05T19:40:38.5936754+03:00","Level":"Information","MessageTemplate":"Executing {ObjectResultType}, writing value of type '{Type}'.","TraceId":"3c27fb2b1e9c25361fd0fa0e04d93e00","SpanId":"73142fde40525b16","Properties":{"ObjectResultType":"CreatedAtActionResult","Type":"WondersAPI.Models.Wonder","EventId":{"Id":1,"Name":"ObjectResultExecuting"},"SourceContext":"Microsoft.AspNetCore.Mvc.Infrastructure.ObjectResultExecutor","ActionId":"2142c2bf-8f44-4e73-89a2-642039a2910c","ActionName":"Ghaymah.WondersAPI.Controllers.WondersController.Create (Ghaymah.WondersAPI)","RequestId":"0HNG45N3EQM0Q:00000001","RequestPath":"/api/Wonders","ConnectionId":"0HNG45N3EQM0Q"}}
|
||||||
|
{"Timestamp":"2025-10-05T19:40:38.6257517+03:00","Level":"Information","MessageTemplate":"Executed action {ActionName} in {ElapsedMilliseconds}ms","TraceId":"3c27fb2b1e9c25361fd0fa0e04d93e00","SpanId":"73142fde40525b16","Properties":{"ActionName":"Ghaymah.WondersAPI.Controllers.WondersController.Create (Ghaymah.WondersAPI)","ElapsedMilliseconds":145.8778,"EventId":{"Id":105,"Name":"ActionExecuted"},"SourceContext":"Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker","RequestId":"0HNG45N3EQM0Q:00000001","RequestPath":"/api/Wonders","ConnectionId":"0HNG45N3EQM0Q"}}
|
||||||
|
{"Timestamp":"2025-10-05T19:40:38.6278114+03:00","Level":"Information","MessageTemplate":"Executed endpoint '{EndpointName}'","TraceId":"3c27fb2b1e9c25361fd0fa0e04d93e00","SpanId":"73142fde40525b16","Properties":{"EndpointName":"Ghaymah.WondersAPI.Controllers.WondersController.Create (Ghaymah.WondersAPI)","EventId":{"Id":1,"Name":"ExecutedEndpoint"},"SourceContext":"Microsoft.AspNetCore.Routing.EndpointMiddleware","RequestId":"0HNG45N3EQM0Q:00000001","RequestPath":"/api/Wonders","ConnectionId":"0HNG45N3EQM0Q"}}
|
||||||
|
{"Timestamp":"2025-10-05T19:40:38.6313907+03:00","Level":"Information","MessageTemplate":"Request finished {Protocol} {Method} {Scheme}://{Host}{PathBase}{Path}{QueryString} - {StatusCode} {ContentLength} {ContentType} {ElapsedMilliseconds}ms","TraceId":"3c27fb2b1e9c25361fd0fa0e04d93e00","SpanId":"73142fde40525b16","Properties":{"ElapsedMilliseconds":210.2131,"StatusCode":201,"ContentType":"application/json; charset=utf-8","ContentLength":null,"Protocol":"HTTP/2","Method":"POST","Scheme":"https","Host":"localhost:7247","PathBase":"","Path":"/api/Wonders","QueryString":"","EventId":{"Id":2},"SourceContext":"Microsoft.AspNetCore.Hosting.Diagnostics","RequestId":"0HNG45N3EQM0Q:00000001","RequestPath":"/api/Wonders","ConnectionId":"0HNG45N3EQM0Q"}}
|
||||||
|
{"Timestamp":"2025-10-05T19:50:55.7254068+03:00","Level":"Information","MessageTemplate":"Saved {count} entities to in-memory store.","Properties":{"count":6,"EventId":{"Id":30100,"Name":"Microsoft.EntityFrameworkCore.Update.ChangesSaved"},"SourceContext":"Microsoft.EntityFrameworkCore.Update"}}
|
||||||
|
{"Timestamp":"2025-10-05T19:50:55.7531725+03:00","Level":"Information","MessageTemplate":"🚀 Wonders API application started successfully at {time}","Properties":{"time":"2025-10-05T19:50:55.7512086+03:00","SourceContext":"Program"}}
|
||||||
|
{"Timestamp":"2025-10-05T19:50:55.8512403+03:00","Level":"Information","MessageTemplate":"Now listening on: {address}","Properties":{"address":"https://localhost:7247","EventId":{"Id":14,"Name":"ListeningOnAddress"},"SourceContext":"Microsoft.Hosting.Lifetime"}}
|
||||||
|
{"Timestamp":"2025-10-05T19:50:55.8524598+03:00","Level":"Information","MessageTemplate":"Now listening on: {address}","Properties":{"address":"http://localhost:5004","EventId":{"Id":14,"Name":"ListeningOnAddress"},"SourceContext":"Microsoft.Hosting.Lifetime"}}
|
||||||
|
{"Timestamp":"2025-10-05T19:50:55.8824534+03:00","Level":"Information","MessageTemplate":"Application started. Press Ctrl+C to shut down.","Properties":{"SourceContext":"Microsoft.Hosting.Lifetime"}}
|
||||||
|
{"Timestamp":"2025-10-05T19:50:55.8838682+03:00","Level":"Information","MessageTemplate":"Hosting environment: {EnvName}","Properties":{"EnvName":"Development","SourceContext":"Microsoft.Hosting.Lifetime"}}
|
||||||
|
{"Timestamp":"2025-10-05T19:50:55.8853919+03:00","Level":"Information","MessageTemplate":"Content root path: {ContentRoot}","Properties":{"ContentRoot":"D:\\WebApplication1","SourceContext":"Microsoft.Hosting.Lifetime"}}
|
||||||
|
{"Timestamp":"2025-10-05T19:50:56.3630120+03:00","Level":"Information","MessageTemplate":"Request starting {Protocol} {Method} {Scheme}://{Host}{PathBase}{Path}{QueryString} - {ContentType} {ContentLength}","TraceId":"de985a92991dbf4a2d13f6ff1ccd516c","SpanId":"9297a7568e08111e","Properties":{"Protocol":"HTTP/2","Method":"GET","ContentType":null,"ContentLength":null,"Scheme":"https","Host":"localhost:7247","PathBase":"","Path":"/swagger/index.html","QueryString":"","EventId":{"Id":1},"SourceContext":"Microsoft.AspNetCore.Hosting.Diagnostics","RequestId":"0HNG45TD92DHJ:00000001","RequestPath":"/swagger/index.html","ConnectionId":"0HNG45TD92DHJ"}}
|
||||||
|
{"Timestamp":"2025-10-05T19:50:56.4593005+03:00","Level":"Information","MessageTemplate":"Request finished {Protocol} {Method} {Scheme}://{Host}{PathBase}{Path}{QueryString} - {StatusCode} {ContentLength} {ContentType} {ElapsedMilliseconds}ms","TraceId":"de985a92991dbf4a2d13f6ff1ccd516c","SpanId":"9297a7568e08111e","Properties":{"ElapsedMilliseconds":97.0439,"StatusCode":200,"ContentType":"text/html;charset=utf-8","ContentLength":null,"Protocol":"HTTP/2","Method":"GET","Scheme":"https","Host":"localhost:7247","PathBase":"","Path":"/swagger/index.html","QueryString":"","EventId":{"Id":2},"SourceContext":"Microsoft.AspNetCore.Hosting.Diagnostics","RequestId":"0HNG45TD92DHJ:00000001","RequestPath":"/swagger/index.html","ConnectionId":"0HNG45TD92DHJ"}}
|
||||||
|
{"Timestamp":"2025-10-05T19:50:56.5263219+03:00","Level":"Information","MessageTemplate":"Request starting {Protocol} {Method} {Scheme}://{Host}{PathBase}{Path}{QueryString} - {ContentType} {ContentLength}","TraceId":"64800a976505ccb7cdbd352c4028e692","SpanId":"f6716086ff62e4a2","Properties":{"Protocol":"HTTP/2","Method":"GET","ContentType":null,"ContentLength":null,"Scheme":"https","Host":"localhost:7247","PathBase":"","Path":"/_framework/aspnetcore-browser-refresh.js","QueryString":"","EventId":{"Id":1},"SourceContext":"Microsoft.AspNetCore.Hosting.Diagnostics","RequestId":"0HNG45TD92DHJ:00000003","RequestPath":"/_framework/aspnetcore-browser-refresh.js","ConnectionId":"0HNG45TD92DHJ"}}
|
||||||
|
{"Timestamp":"2025-10-05T19:50:56.5326333+03:00","Level":"Information","MessageTemplate":"Request finished {Protocol} {Method} {Scheme}://{Host}{PathBase}{Path}{QueryString} - {StatusCode} {ContentLength} {ContentType} {ElapsedMilliseconds}ms","TraceId":"64800a976505ccb7cdbd352c4028e692","SpanId":"f6716086ff62e4a2","Properties":{"ElapsedMilliseconds":6.3228,"StatusCode":200,"ContentType":"application/javascript; charset=utf-8","ContentLength":16515,"Protocol":"HTTP/2","Method":"GET","Scheme":"https","Host":"localhost:7247","PathBase":"","Path":"/_framework/aspnetcore-browser-refresh.js","QueryString":"","EventId":{"Id":2},"SourceContext":"Microsoft.AspNetCore.Hosting.Diagnostics","RequestId":"0HNG45TD92DHJ:00000003","RequestPath":"/_framework/aspnetcore-browser-refresh.js","ConnectionId":"0HNG45TD92DHJ"}}
|
||||||
|
{"Timestamp":"2025-10-05T19:50:56.6929290+03:00","Level":"Information","MessageTemplate":"Request starting {Protocol} {Method} {Scheme}://{Host}{PathBase}{Path}{QueryString} - {ContentType} {ContentLength}","TraceId":"4febeb2c845c5b1f3f7beecdd67c2759","SpanId":"fcdc5e6e4fa5f0cd","Properties":{"Protocol":"HTTP/2","Method":"GET","ContentType":null,"ContentLength":null,"Scheme":"https","Host":"localhost:7247","PathBase":"","Path":"/_vs/browserLink","QueryString":"","EventId":{"Id":1},"SourceContext":"Microsoft.AspNetCore.Hosting.Diagnostics","RequestId":"0HNG45TD92DHJ:00000005","RequestPath":"/_vs/browserLink","ConnectionId":"0HNG45TD92DHJ"}}
|
||||||
|
{"Timestamp":"2025-10-05T19:50:56.7265512+03:00","Level":"Information","MessageTemplate":"Request finished {Protocol} {Method} {Scheme}://{Host}{PathBase}{Path}{QueryString} - {StatusCode} {ContentLength} {ContentType} {ElapsedMilliseconds}ms","TraceId":"4febeb2c845c5b1f3f7beecdd67c2759","SpanId":"fcdc5e6e4fa5f0cd","Properties":{"ElapsedMilliseconds":33.6411,"StatusCode":200,"ContentType":"text/javascript; charset=UTF-8","ContentLength":null,"Protocol":"HTTP/2","Method":"GET","Scheme":"https","Host":"localhost:7247","PathBase":"","Path":"/_vs/browserLink","QueryString":"","EventId":{"Id":2},"SourceContext":"Microsoft.AspNetCore.Hosting.Diagnostics","RequestId":"0HNG45TD92DHJ:00000005","RequestPath":"/_vs/browserLink","ConnectionId":"0HNG45TD92DHJ"}}
|
||||||
|
{"Timestamp":"2025-10-05T19:50:57.1165500+03:00","Level":"Information","MessageTemplate":"Request starting {Protocol} {Method} {Scheme}://{Host}{PathBase}{Path}{QueryString} - {ContentType} {ContentLength}","TraceId":"551e5d06e79152c2ce53ce7de19df0ee","SpanId":"4e10773be917c6d9","Properties":{"Protocol":"HTTP/2","Method":"GET","ContentType":null,"ContentLength":null,"Scheme":"https","Host":"localhost:7247","PathBase":"","Path":"/swagger/v1/swagger.json","QueryString":"","EventId":{"Id":1},"SourceContext":"Microsoft.AspNetCore.Hosting.Diagnostics","RequestId":"0HNG45TD92DHJ:00000007","RequestPath":"/swagger/v1/swagger.json","ConnectionId":"0HNG45TD92DHJ"}}
|
||||||
|
{"Timestamp":"2025-10-05T19:50:57.1292564+03:00","Level":"Information","MessageTemplate":"Request finished {Protocol} {Method} {Scheme}://{Host}{PathBase}{Path}{QueryString} - {StatusCode} {ContentLength} {ContentType} {ElapsedMilliseconds}ms","TraceId":"551e5d06e79152c2ce53ce7de19df0ee","SpanId":"4e10773be917c6d9","Properties":{"ElapsedMilliseconds":12.6858,"StatusCode":200,"ContentType":"application/json;charset=utf-8","ContentLength":null,"Protocol":"HTTP/2","Method":"GET","Scheme":"https","Host":"localhost:7247","PathBase":"","Path":"/swagger/v1/swagger.json","QueryString":"","EventId":{"Id":2},"SourceContext":"Microsoft.AspNetCore.Hosting.Diagnostics","RequestId":"0HNG45TD92DHJ:00000007","RequestPath":"/swagger/v1/swagger.json","ConnectionId":"0HNG45TD92DHJ"}}
|
||||||
|
{"Timestamp":"2025-10-05T19:51:06.6320119+03:00","Level":"Information","MessageTemplate":"Request starting {Protocol} {Method} {Scheme}://{Host}{PathBase}{Path}{QueryString} - {ContentType} {ContentLength}","TraceId":"2fb69ebdda814f75ce993cf6346bcdbe","SpanId":"0fe9c1af05fc759b","Properties":{"Protocol":"HTTP/2","Method":"GET","ContentType":null,"ContentLength":null,"Scheme":"https","Host":"localhost:7247","PathBase":"","Path":"/api/Wonders/2","QueryString":"","EventId":{"Id":1},"SourceContext":"Microsoft.AspNetCore.Hosting.Diagnostics","RequestId":"0HNG45TD92DHJ:00000009","RequestPath":"/api/Wonders/2","ConnectionId":"0HNG45TD92DHJ"}}
|
||||||
|
{"Timestamp":"2025-10-05T19:51:06.6425318+03:00","Level":"Information","MessageTemplate":"Executing endpoint '{EndpointName}'","TraceId":"2fb69ebdda814f75ce993cf6346bcdbe","SpanId":"0fe9c1af05fc759b","Properties":{"EndpointName":"Ghaymah.WondersAPI.Controllers.WondersController.GetById (Ghaymah.WondersAPI)","EventId":{"Name":"ExecutingEndpoint"},"SourceContext":"Microsoft.AspNetCore.Routing.EndpointMiddleware","RequestId":"0HNG45TD92DHJ:00000009","RequestPath":"/api/Wonders/2","ConnectionId":"0HNG45TD92DHJ"}}
|
||||||
|
{"Timestamp":"2025-10-05T19:51:06.6627862+03:00","Level":"Information","MessageTemplate":"Route matched with {RouteData}. Executing controller action with signature {MethodInfo} on controller {Controller} ({AssemblyName}).","TraceId":"2fb69ebdda814f75ce993cf6346bcdbe","SpanId":"0fe9c1af05fc759b","Properties":{"RouteData":"{action = \"GetById\", controller = \"Wonders\"}","MethodInfo":"System.Threading.Tasks.Task`1[Microsoft.AspNetCore.Mvc.IActionResult] GetById(Int32)","Controller":"Ghaymah.WondersAPI.Controllers.WondersController","AssemblyName":"Ghaymah.WondersAPI","EventId":{"Id":102,"Name":"ControllerActionExecuting"},"SourceContext":"Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker","ActionId":"025dffb0-6990-4224-885f-e2b7b2e738d6","ActionName":"Ghaymah.WondersAPI.Controllers.WondersController.GetById (Ghaymah.WondersAPI)","RequestId":"0HNG45TD92DHJ:00000009","RequestPath":"/api/Wonders/2","ConnectionId":"0HNG45TD92DHJ"}}
|
||||||
|
{"Timestamp":"2025-10-05T19:51:06.7411656+03:00","Level":"Information","MessageTemplate":"Executing {ObjectResultType}, writing value of type '{Type}'.","TraceId":"2fb69ebdda814f75ce993cf6346bcdbe","SpanId":"0fe9c1af05fc759b","Properties":{"ObjectResultType":"OkObjectResult","Type":"WondersAPI.Models.Wonder","EventId":{"Id":1,"Name":"ObjectResultExecuting"},"SourceContext":"Microsoft.AspNetCore.Mvc.Infrastructure.ObjectResultExecutor","ActionId":"025dffb0-6990-4224-885f-e2b7b2e738d6","ActionName":"Ghaymah.WondersAPI.Controllers.WondersController.GetById (Ghaymah.WondersAPI)","RequestId":"0HNG45TD92DHJ:00000009","RequestPath":"/api/Wonders/2","ConnectionId":"0HNG45TD92DHJ"}}
|
||||||
|
{"Timestamp":"2025-10-05T19:51:06.7495287+03:00","Level":"Information","MessageTemplate":"Executed action {ActionName} in {ElapsedMilliseconds}ms","TraceId":"2fb69ebdda814f75ce993cf6346bcdbe","SpanId":"0fe9c1af05fc759b","Properties":{"ActionName":"Ghaymah.WondersAPI.Controllers.WondersController.GetById (Ghaymah.WondersAPI)","ElapsedMilliseconds":80.9158,"EventId":{"Id":105,"Name":"ActionExecuted"},"SourceContext":"Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker","RequestId":"0HNG45TD92DHJ:00000009","RequestPath":"/api/Wonders/2","ConnectionId":"0HNG45TD92DHJ"}}
|
||||||
|
{"Timestamp":"2025-10-05T19:51:06.7539471+03:00","Level":"Information","MessageTemplate":"Executed endpoint '{EndpointName}'","TraceId":"2fb69ebdda814f75ce993cf6346bcdbe","SpanId":"0fe9c1af05fc759b","Properties":{"EndpointName":"Ghaymah.WondersAPI.Controllers.WondersController.GetById (Ghaymah.WondersAPI)","EventId":{"Id":1,"Name":"ExecutedEndpoint"},"SourceContext":"Microsoft.AspNetCore.Routing.EndpointMiddleware","RequestId":"0HNG45TD92DHJ:00000009","RequestPath":"/api/Wonders/2","ConnectionId":"0HNG45TD92DHJ"}}
|
||||||
|
{"Timestamp":"2025-10-05T19:51:06.7571622+03:00","Level":"Information","MessageTemplate":"Request finished {Protocol} {Method} {Scheme}://{Host}{PathBase}{Path}{QueryString} - {StatusCode} {ContentLength} {ContentType} {ElapsedMilliseconds}ms","TraceId":"2fb69ebdda814f75ce993cf6346bcdbe","SpanId":"0fe9c1af05fc759b","Properties":{"ElapsedMilliseconds":125.1382,"StatusCode":200,"ContentType":"application/json; charset=utf-8","ContentLength":null,"Protocol":"HTTP/2","Method":"GET","Scheme":"https","Host":"localhost:7247","PathBase":"","Path":"/api/Wonders/2","QueryString":"","EventId":{"Id":2},"SourceContext":"Microsoft.AspNetCore.Hosting.Diagnostics","RequestId":"0HNG45TD92DHJ:00000009","RequestPath":"/api/Wonders/2","ConnectionId":"0HNG45TD92DHJ"}}
|
||||||
|
{"Timestamp":"2025-10-05T19:51:16.3963187+03:00","Level":"Information","MessageTemplate":"Request starting {Protocol} {Method} {Scheme}://{Host}{PathBase}{Path}{QueryString} - {ContentType} {ContentLength}","TraceId":"7e9d2a3af379d2e624d2f546c534f91a","SpanId":"4b97b047295cff7c","Properties":{"Protocol":"HTTP/2","Method":"GET","ContentType":null,"ContentLength":null,"Scheme":"https","Host":"localhost:7247","PathBase":"","Path":"/api/Wonders","QueryString":"","EventId":{"Id":1},"SourceContext":"Microsoft.AspNetCore.Hosting.Diagnostics","RequestId":"0HNG45TD92DHJ:0000000B","RequestPath":"/api/Wonders","ConnectionId":"0HNG45TD92DHJ"}}
|
||||||
|
{"Timestamp":"2025-10-05T19:51:16.4189329+03:00","Level":"Information","MessageTemplate":"Executing endpoint '{EndpointName}'","TraceId":"7e9d2a3af379d2e624d2f546c534f91a","SpanId":"4b97b047295cff7c","Properties":{"EndpointName":"Ghaymah.WondersAPI.Controllers.WondersController.GetAll (Ghaymah.WondersAPI)","EventId":{"Name":"ExecutingEndpoint"},"SourceContext":"Microsoft.AspNetCore.Routing.EndpointMiddleware","RequestId":"0HNG45TD92DHJ:0000000B","RequestPath":"/api/Wonders","ConnectionId":"0HNG45TD92DHJ"}}
|
||||||
|
{"Timestamp":"2025-10-05T19:51:16.4276808+03:00","Level":"Information","MessageTemplate":"Route matched with {RouteData}. Executing controller action with signature {MethodInfo} on controller {Controller} ({AssemblyName}).","TraceId":"7e9d2a3af379d2e624d2f546c534f91a","SpanId":"4b97b047295cff7c","Properties":{"RouteData":"{action = \"GetAll\", controller = \"Wonders\"}","MethodInfo":"System.Threading.Tasks.Task`1[Microsoft.AspNetCore.Mvc.IActionResult] GetAll()","Controller":"Ghaymah.WondersAPI.Controllers.WondersController","AssemblyName":"Ghaymah.WondersAPI","EventId":{"Id":102,"Name":"ControllerActionExecuting"},"SourceContext":"Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker","ActionId":"d14fea2a-5264-41aa-8bd5-e7a00bf7e7b6","ActionName":"Ghaymah.WondersAPI.Controllers.WondersController.GetAll (Ghaymah.WondersAPI)","RequestId":"0HNG45TD92DHJ:0000000B","RequestPath":"/api/Wonders","ConnectionId":"0HNG45TD92DHJ"}}
|
||||||
|
{"Timestamp":"2025-10-05T19:51:16.4491385+03:00","Level":"Information","MessageTemplate":"Fetched {Count} wonders from database","TraceId":"7e9d2a3af379d2e624d2f546c534f91a","SpanId":"4b97b047295cff7c","Properties":{"Count":6,"SourceContext":"Ghaymah.WondersAPI.Controllers.WondersController","ActionId":"d14fea2a-5264-41aa-8bd5-e7a00bf7e7b6","ActionName":"Ghaymah.WondersAPI.Controllers.WondersController.GetAll (Ghaymah.WondersAPI)","RequestId":"0HNG45TD92DHJ:0000000B","RequestPath":"/api/Wonders","ConnectionId":"0HNG45TD92DHJ"}}
|
||||||
|
{"Timestamp":"2025-10-05T19:51:16.4545480+03:00","Level":"Information","MessageTemplate":"Executing {ObjectResultType}, writing value of type '{Type}'.","TraceId":"7e9d2a3af379d2e624d2f546c534f91a","SpanId":"4b97b047295cff7c","Properties":{"ObjectResultType":"OkObjectResult","Type":"System.Collections.Generic.List`1[[WondersAPI.Models.Wonder, Ghaymah.WondersAPI, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]","EventId":{"Id":1,"Name":"ObjectResultExecuting"},"SourceContext":"Microsoft.AspNetCore.Mvc.Infrastructure.ObjectResultExecutor","ActionId":"d14fea2a-5264-41aa-8bd5-e7a00bf7e7b6","ActionName":"Ghaymah.WondersAPI.Controllers.WondersController.GetAll (Ghaymah.WondersAPI)","RequestId":"0HNG45TD92DHJ:0000000B","RequestPath":"/api/Wonders","ConnectionId":"0HNG45TD92DHJ"}}
|
||||||
|
{"Timestamp":"2025-10-05T19:51:16.4579135+03:00","Level":"Information","MessageTemplate":"Executed action {ActionName} in {ElapsedMilliseconds}ms","TraceId":"7e9d2a3af379d2e624d2f546c534f91a","SpanId":"4b97b047295cff7c","Properties":{"ActionName":"Ghaymah.WondersAPI.Controllers.WondersController.GetAll (Ghaymah.WondersAPI)","ElapsedMilliseconds":25.1811,"EventId":{"Id":105,"Name":"ActionExecuted"},"SourceContext":"Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker","RequestId":"0HNG45TD92DHJ:0000000B","RequestPath":"/api/Wonders","ConnectionId":"0HNG45TD92DHJ"}}
|
||||||
|
{"Timestamp":"2025-10-05T19:51:16.4596651+03:00","Level":"Information","MessageTemplate":"Executed endpoint '{EndpointName}'","TraceId":"7e9d2a3af379d2e624d2f546c534f91a","SpanId":"4b97b047295cff7c","Properties":{"EndpointName":"Ghaymah.WondersAPI.Controllers.WondersController.GetAll (Ghaymah.WondersAPI)","EventId":{"Id":1,"Name":"ExecutedEndpoint"},"SourceContext":"Microsoft.AspNetCore.Routing.EndpointMiddleware","RequestId":"0HNG45TD92DHJ:0000000B","RequestPath":"/api/Wonders","ConnectionId":"0HNG45TD92DHJ"}}
|
||||||
|
{"Timestamp":"2025-10-05T19:51:16.4611486+03:00","Level":"Information","MessageTemplate":"Request finished {Protocol} {Method} {Scheme}://{Host}{PathBase}{Path}{QueryString} - {StatusCode} {ContentLength} {ContentType} {ElapsedMilliseconds}ms","TraceId":"7e9d2a3af379d2e624d2f546c534f91a","SpanId":"4b97b047295cff7c","Properties":{"ElapsedMilliseconds":64.912,"StatusCode":200,"ContentType":"application/json; charset=utf-8","ContentLength":null,"Protocol":"HTTP/2","Method":"GET","Scheme":"https","Host":"localhost:7247","PathBase":"","Path":"/api/Wonders","QueryString":"","EventId":{"Id":2},"SourceContext":"Microsoft.AspNetCore.Hosting.Diagnostics","RequestId":"0HNG45TD92DHJ:0000000B","RequestPath":"/api/Wonders","ConnectionId":"0HNG45TD92DHJ"}}
|
||||||
|
{"Timestamp":"2025-10-05T20:57:56.8768179+03:00","Level":"Information","MessageTemplate":"Saved {count} entities to in-memory store.","Properties":{"count":6,"EventId":{"Id":30100,"Name":"Microsoft.EntityFrameworkCore.Update.ChangesSaved"},"SourceContext":"Microsoft.EntityFrameworkCore.Update"}}
|
||||||
|
{"Timestamp":"2025-10-05T20:57:56.9059217+03:00","Level":"Information","MessageTemplate":"🚀 Wonders API application started successfully at {time}","Properties":{"time":"2025-10-05T20:57:56.9042125+03:00","SourceContext":"Program"}}
|
||||||
|
{"Timestamp":"2025-10-05T20:57:57.0107787+03:00","Level":"Information","MessageTemplate":"Now listening on: {address}","Properties":{"address":"https://localhost:7247","EventId":{"Id":14,"Name":"ListeningOnAddress"},"SourceContext":"Microsoft.Hosting.Lifetime"}}
|
||||||
|
{"Timestamp":"2025-10-05T20:57:57.0121180+03:00","Level":"Information","MessageTemplate":"Now listening on: {address}","Properties":{"address":"http://localhost:5004","EventId":{"Id":14,"Name":"ListeningOnAddress"},"SourceContext":"Microsoft.Hosting.Lifetime"}}
|
||||||
|
{"Timestamp":"2025-10-05T20:57:57.0421029+03:00","Level":"Information","MessageTemplate":"Application started. Press Ctrl+C to shut down.","Properties":{"SourceContext":"Microsoft.Hosting.Lifetime"}}
|
||||||
|
{"Timestamp":"2025-10-05T20:57:57.0432514+03:00","Level":"Information","MessageTemplate":"Hosting environment: {EnvName}","Properties":{"EnvName":"Development","SourceContext":"Microsoft.Hosting.Lifetime"}}
|
||||||
|
{"Timestamp":"2025-10-05T20:57:57.0438703+03:00","Level":"Information","MessageTemplate":"Content root path: {ContentRoot}","Properties":{"ContentRoot":"D:\\WebApplication1","SourceContext":"Microsoft.Hosting.Lifetime"}}
|
||||||
|
{"Timestamp":"2025-10-05T20:57:58.8927082+03:00","Level":"Information","MessageTemplate":"Request starting {Protocol} {Method} {Scheme}://{Host}{PathBase}{Path}{QueryString} - {ContentType} {ContentLength}","TraceId":"ef0eb24d7ecbaf022f06a7dc03734f53","SpanId":"fffa660c8d93465b","Properties":{"Protocol":"HTTP/2","Method":"GET","ContentType":null,"ContentLength":null,"Scheme":"https","Host":"localhost:7247","PathBase":"","Path":"/_framework/aspnetcore-browser-refresh.js","QueryString":"","EventId":{"Id":1},"SourceContext":"Microsoft.AspNetCore.Hosting.Diagnostics","RequestId":"0HNG472RKMSK8:00000003","RequestPath":"/_framework/aspnetcore-browser-refresh.js","ConnectionId":"0HNG472RKMSK8"}}
|
||||||
|
{"Timestamp":"2025-10-05T20:57:58.8927137+03:00","Level":"Information","MessageTemplate":"Request starting {Protocol} {Method} {Scheme}://{Host}{PathBase}{Path}{QueryString} - {ContentType} {ContentLength}","TraceId":"2b4770c82fa3ba366b3a3b2d93cd37d5","SpanId":"8941253a39bcceed","Properties":{"Protocol":"HTTP/2","Method":"GET","ContentType":null,"ContentLength":null,"Scheme":"https","Host":"localhost:7247","PathBase":"","Path":"/swagger/index.html","QueryString":"","EventId":{"Id":1},"SourceContext":"Microsoft.AspNetCore.Hosting.Diagnostics","RequestId":"0HNG472RKMSK8:00000001","RequestPath":"/swagger/index.html","ConnectionId":"0HNG472RKMSK8"}}
|
||||||
|
{"Timestamp":"2025-10-05T20:57:58.9136786+03:00","Level":"Information","MessageTemplate":"Request finished {Protocol} {Method} {Scheme}://{Host}{PathBase}{Path}{QueryString} - {StatusCode} {ContentLength} {ContentType} {ElapsedMilliseconds}ms","TraceId":"ef0eb24d7ecbaf022f06a7dc03734f53","SpanId":"fffa660c8d93465b","Properties":{"ElapsedMilliseconds":22.7483,"StatusCode":200,"ContentType":"application/javascript; charset=utf-8","ContentLength":16520,"Protocol":"HTTP/2","Method":"GET","Scheme":"https","Host":"localhost:7247","PathBase":"","Path":"/_framework/aspnetcore-browser-refresh.js","QueryString":"","EventId":{"Id":2},"SourceContext":"Microsoft.AspNetCore.Hosting.Diagnostics","RequestId":"0HNG472RKMSK8:00000003","RequestPath":"/_framework/aspnetcore-browser-refresh.js","ConnectionId":"0HNG472RKMSK8"}}
|
||||||
|
{"Timestamp":"2025-10-05T20:57:59.0745837+03:00","Level":"Information","MessageTemplate":"Request finished {Protocol} {Method} {Scheme}://{Host}{PathBase}{Path}{QueryString} - {StatusCode} {ContentLength} {ContentType} {ElapsedMilliseconds}ms","TraceId":"2b4770c82fa3ba366b3a3b2d93cd37d5","SpanId":"8941253a39bcceed","Properties":{"ElapsedMilliseconds":183.9379,"StatusCode":200,"ContentType":"text/html;charset=utf-8","ContentLength":null,"Protocol":"HTTP/2","Method":"GET","Scheme":"https","Host":"localhost:7247","PathBase":"","Path":"/swagger/index.html","QueryString":"","EventId":{"Id":2},"SourceContext":"Microsoft.AspNetCore.Hosting.Diagnostics","RequestId":"0HNG472RKMSK8:00000001","RequestPath":"/swagger/index.html","ConnectionId":"0HNG472RKMSK8"}}
|
||||||
|
{"Timestamp":"2025-10-05T20:57:59.6538204+03:00","Level":"Information","MessageTemplate":"Request starting {Protocol} {Method} {Scheme}://{Host}{PathBase}{Path}{QueryString} - {ContentType} {ContentLength}","TraceId":"2a0c74eb6a2640a92773a2433074ae29","SpanId":"639a3ca9f38ebc1e","Properties":{"Protocol":"HTTP/2","Method":"GET","ContentType":null,"ContentLength":null,"Scheme":"https","Host":"localhost:7247","PathBase":"","Path":"/swagger/v1/swagger.json","QueryString":"","EventId":{"Id":1},"SourceContext":"Microsoft.AspNetCore.Hosting.Diagnostics","RequestId":"0HNG472RKMSK9:00000001","RequestPath":"/swagger/v1/swagger.json","ConnectionId":"0HNG472RKMSK9"}}
|
||||||
|
{"Timestamp":"2025-10-05T20:57:59.6694415+03:00","Level":"Information","MessageTemplate":"Request finished {Protocol} {Method} {Scheme}://{Host}{PathBase}{Path}{QueryString} - {StatusCode} {ContentLength} {ContentType} {ElapsedMilliseconds}ms","TraceId":"2a0c74eb6a2640a92773a2433074ae29","SpanId":"639a3ca9f38ebc1e","Properties":{"ElapsedMilliseconds":15.5896,"StatusCode":200,"ContentType":"application/json;charset=utf-8","ContentLength":null,"Protocol":"HTTP/2","Method":"GET","Scheme":"https","Host":"localhost:7247","PathBase":"","Path":"/swagger/v1/swagger.json","QueryString":"","EventId":{"Id":2},"SourceContext":"Microsoft.AspNetCore.Hosting.Diagnostics","RequestId":"0HNG472RKMSK9:00000001","RequestPath":"/swagger/v1/swagger.json","ConnectionId":"0HNG472RKMSK9"}}
|
||||||
|
{"Timestamp":"2025-10-05T20:58:00.1467834+03:00","Level":"Information","MessageTemplate":"Request starting {Protocol} {Method} {Scheme}://{Host}{PathBase}{Path}{QueryString} - {ContentType} {ContentLength}","TraceId":"27e763f7db10abfa56f29102f8d549f6","SpanId":"a79795d31197bbee","Properties":{"Protocol":"HTTP/2","Method":"GET","ContentType":null,"ContentLength":null,"Scheme":"https","Host":"localhost:7247","PathBase":"","Path":"/_framework/aspnetcore-browser-refresh.js","QueryString":"","EventId":{"Id":1},"SourceContext":"Microsoft.AspNetCore.Hosting.Diagnostics","RequestId":"0HNG472RKMSK9:00000003","RequestPath":"/_framework/aspnetcore-browser-refresh.js","ConnectionId":"0HNG472RKMSK9"}}
|
||||||
|
{"Timestamp":"2025-10-05T20:58:00.1532243+03:00","Level":"Information","MessageTemplate":"Request finished {Protocol} {Method} {Scheme}://{Host}{PathBase}{Path}{QueryString} - {StatusCode} {ContentLength} {ContentType} {ElapsedMilliseconds}ms","TraceId":"27e763f7db10abfa56f29102f8d549f6","SpanId":"a79795d31197bbee","Properties":{"ElapsedMilliseconds":6.4271,"StatusCode":200,"ContentType":"application/javascript; charset=utf-8","ContentLength":16520,"Protocol":"HTTP/2","Method":"GET","Scheme":"https","Host":"localhost:7247","PathBase":"","Path":"/_framework/aspnetcore-browser-refresh.js","QueryString":"","EventId":{"Id":2},"SourceContext":"Microsoft.AspNetCore.Hosting.Diagnostics","RequestId":"0HNG472RKMSK9:00000003","RequestPath":"/_framework/aspnetcore-browser-refresh.js","ConnectionId":"0HNG472RKMSK9"}}
|
||||||
|
{"Timestamp":"2025-10-05T20:58:00.1934549+03:00","Level":"Information","MessageTemplate":"Request starting {Protocol} {Method} {Scheme}://{Host}{PathBase}{Path}{QueryString} - {ContentType} {ContentLength}","TraceId":"8c8140c6f4bd0f92574e998fc93e5302","SpanId":"1289f948140ddaa8","Properties":{"Protocol":"HTTP/2","Method":"GET","ContentType":null,"ContentLength":null,"Scheme":"https","Host":"localhost:7247","PathBase":"","Path":"/_vs/browserLink","QueryString":"","EventId":{"Id":1},"SourceContext":"Microsoft.AspNetCore.Hosting.Diagnostics","RequestId":"0HNG472RKMSK9:00000005","RequestPath":"/_vs/browserLink","ConnectionId":"0HNG472RKMSK9"}}
|
||||||
|
{"Timestamp":"2025-10-05T20:58:00.2550806+03:00","Level":"Information","MessageTemplate":"Request finished {Protocol} {Method} {Scheme}://{Host}{PathBase}{Path}{QueryString} - {StatusCode} {ContentLength} {ContentType} {ElapsedMilliseconds}ms","TraceId":"8c8140c6f4bd0f92574e998fc93e5302","SpanId":"1289f948140ddaa8","Properties":{"ElapsedMilliseconds":61.5956,"StatusCode":200,"ContentType":"text/javascript; charset=UTF-8","ContentLength":null,"Protocol":"HTTP/2","Method":"GET","Scheme":"https","Host":"localhost:7247","PathBase":"","Path":"/_vs/browserLink","QueryString":"","EventId":{"Id":2},"SourceContext":"Microsoft.AspNetCore.Hosting.Diagnostics","RequestId":"0HNG472RKMSK9:00000005","RequestPath":"/_vs/browserLink","ConnectionId":"0HNG472RKMSK9"}}
|
||||||
|
{"Timestamp":"2025-10-05T20:58:00.4354110+03:00","Level":"Information","MessageTemplate":"Request starting {Protocol} {Method} {Scheme}://{Host}{PathBase}{Path}{QueryString} - {ContentType} {ContentLength}","TraceId":"fc2b51692ee4b42e11add08e4b1b5cc0","SpanId":"faa89d5a4d26aa9a","Properties":{"Protocol":"HTTP/2","Method":"GET","ContentType":null,"ContentLength":null,"Scheme":"https","Host":"localhost:7247","PathBase":"","Path":"/swagger/v1/swagger.json","QueryString":"","EventId":{"Id":1},"SourceContext":"Microsoft.AspNetCore.Hosting.Diagnostics","RequestId":"0HNG472RKMSK9:00000007","RequestPath":"/swagger/v1/swagger.json","ConnectionId":"0HNG472RKMSK9"}}
|
||||||
|
{"Timestamp":"2025-10-05T20:58:00.4454492+03:00","Level":"Information","MessageTemplate":"Request finished {Protocol} {Method} {Scheme}://{Host}{PathBase}{Path}{QueryString} - {StatusCode} {ContentLength} {ContentType} {ElapsedMilliseconds}ms","TraceId":"fc2b51692ee4b42e11add08e4b1b5cc0","SpanId":"faa89d5a4d26aa9a","Properties":{"ElapsedMilliseconds":10.031,"StatusCode":200,"ContentType":"application/json;charset=utf-8","ContentLength":null,"Protocol":"HTTP/2","Method":"GET","Scheme":"https","Host":"localhost:7247","PathBase":"","Path":"/swagger/v1/swagger.json","QueryString":"","EventId":{"Id":2},"SourceContext":"Microsoft.AspNetCore.Hosting.Diagnostics","RequestId":"0HNG472RKMSK9:00000007","RequestPath":"/swagger/v1/swagger.json","ConnectionId":"0HNG472RKMSK9"}}
|
||||||
|
{"Timestamp":"2025-10-05T20:58:15.7497395+03:00","Level":"Information","MessageTemplate":"Request starting {Protocol} {Method} {Scheme}://{Host}{PathBase}{Path}{QueryString} - {ContentType} {ContentLength}","TraceId":"b0cc022f4f78f6ce562e021d03a0bf87","SpanId":"e0836188dcb6f657","Properties":{"Protocol":"HTTP/2","Method":"POST","ContentType":"application/json","ContentLength":144,"Scheme":"https","Host":"localhost:7247","PathBase":"","Path":"/api/Wonders","QueryString":"","EventId":{"Id":1},"SourceContext":"Microsoft.AspNetCore.Hosting.Diagnostics","RequestId":"0HNG472RKMSKA:00000001","RequestPath":"/api/Wonders","ConnectionId":"0HNG472RKMSKA"}}
|
||||||
|
{"Timestamp":"2025-10-05T20:58:15.7626160+03:00","Level":"Information","MessageTemplate":"Executing endpoint '{EndpointName}'","TraceId":"b0cc022f4f78f6ce562e021d03a0bf87","SpanId":"e0836188dcb6f657","Properties":{"EndpointName":"Ghaymah.WondersAPI.Controllers.WondersController.Create (Ghaymah.WondersAPI)","EventId":{"Name":"ExecutingEndpoint"},"SourceContext":"Microsoft.AspNetCore.Routing.EndpointMiddleware","RequestId":"0HNG472RKMSKA:00000001","RequestPath":"/api/Wonders","ConnectionId":"0HNG472RKMSKA"}}
|
||||||
|
{"Timestamp":"2025-10-05T20:58:15.8060136+03:00","Level":"Information","MessageTemplate":"Route matched with {RouteData}. Executing controller action with signature {MethodInfo} on controller {Controller} ({AssemblyName}).","TraceId":"b0cc022f4f78f6ce562e021d03a0bf87","SpanId":"e0836188dcb6f657","Properties":{"RouteData":"{action = \"Create\", controller = \"Wonders\"}","MethodInfo":"System.Threading.Tasks.Task`1[Microsoft.AspNetCore.Mvc.IActionResult] Create(WondersAPI.Models.Wonder)","Controller":"Ghaymah.WondersAPI.Controllers.WondersController","AssemblyName":"Ghaymah.WondersAPI","EventId":{"Id":102,"Name":"ControllerActionExecuting"},"SourceContext":"Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker","ActionId":"46b80cec-c179-42ac-81a8-5b9949a8ad32","ActionName":"Ghaymah.WondersAPI.Controllers.WondersController.Create (Ghaymah.WondersAPI)","RequestId":"0HNG472RKMSKA:00000001","RequestPath":"/api/Wonders","ConnectionId":"0HNG472RKMSKA"}}
|
||||||
|
{"Timestamp":"2025-10-05T20:58:15.9178715+03:00","Level":"Information","MessageTemplate":"Saved {count} entities to in-memory store.","TraceId":"b0cc022f4f78f6ce562e021d03a0bf87","SpanId":"e0836188dcb6f657","Properties":{"count":1,"EventId":{"Id":30100,"Name":"Microsoft.EntityFrameworkCore.Update.ChangesSaved"},"SourceContext":"Microsoft.EntityFrameworkCore.Update","ActionId":"46b80cec-c179-42ac-81a8-5b9949a8ad32","ActionName":"Ghaymah.WondersAPI.Controllers.WondersController.Create (Ghaymah.WondersAPI)","RequestId":"0HNG472RKMSKA:00000001","RequestPath":"/api/Wonders","ConnectionId":"0HNG472RKMSKA"}}
|
||||||
|
{"Timestamp":"2025-10-05T20:58:15.9251025+03:00","Level":"Information","MessageTemplate":"Created new wonder: {Name}","TraceId":"b0cc022f4f78f6ce562e021d03a0bf87","SpanId":"e0836188dcb6f657","Properties":{"Name":"string","SourceContext":"Ghaymah.WondersAPI.Controllers.WondersController","ActionId":"46b80cec-c179-42ac-81a8-5b9949a8ad32","ActionName":"Ghaymah.WondersAPI.Controllers.WondersController.Create (Ghaymah.WondersAPI)","RequestId":"0HNG472RKMSKA:00000001","RequestPath":"/api/Wonders","ConnectionId":"0HNG472RKMSKA"}}
|
||||||
|
{"Timestamp":"2025-10-05T20:58:15.9359447+03:00","Level":"Information","MessageTemplate":"Executing {ObjectResultType}, writing value of type '{Type}'.","TraceId":"b0cc022f4f78f6ce562e021d03a0bf87","SpanId":"e0836188dcb6f657","Properties":{"ObjectResultType":"CreatedAtActionResult","Type":"WondersAPI.Models.Wonder","EventId":{"Id":1,"Name":"ObjectResultExecuting"},"SourceContext":"Microsoft.AspNetCore.Mvc.Infrastructure.ObjectResultExecutor","ActionId":"46b80cec-c179-42ac-81a8-5b9949a8ad32","ActionName":"Ghaymah.WondersAPI.Controllers.WondersController.Create (Ghaymah.WondersAPI)","RequestId":"0HNG472RKMSKA:00000001","RequestPath":"/api/Wonders","ConnectionId":"0HNG472RKMSKA"}}
|
||||||
|
{"Timestamp":"2025-10-05T20:58:15.9686961+03:00","Level":"Information","MessageTemplate":"Executed action {ActionName} in {ElapsedMilliseconds}ms","TraceId":"b0cc022f4f78f6ce562e021d03a0bf87","SpanId":"e0836188dcb6f657","Properties":{"ActionName":"Ghaymah.WondersAPI.Controllers.WondersController.Create (Ghaymah.WondersAPI)","ElapsedMilliseconds":149.5859,"EventId":{"Id":105,"Name":"ActionExecuted"},"SourceContext":"Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker","RequestId":"0HNG472RKMSKA:00000001","RequestPath":"/api/Wonders","ConnectionId":"0HNG472RKMSKA"}}
|
||||||
|
{"Timestamp":"2025-10-05T20:58:15.9721406+03:00","Level":"Information","MessageTemplate":"Executed endpoint '{EndpointName}'","TraceId":"b0cc022f4f78f6ce562e021d03a0bf87","SpanId":"e0836188dcb6f657","Properties":{"EndpointName":"Ghaymah.WondersAPI.Controllers.WondersController.Create (Ghaymah.WondersAPI)","EventId":{"Id":1,"Name":"ExecutedEndpoint"},"SourceContext":"Microsoft.AspNetCore.Routing.EndpointMiddleware","RequestId":"0HNG472RKMSKA:00000001","RequestPath":"/api/Wonders","ConnectionId":"0HNG472RKMSKA"}}
|
||||||
|
{"Timestamp":"2025-10-05T20:58:15.9767099+03:00","Level":"Information","MessageTemplate":"Request finished {Protocol} {Method} {Scheme}://{Host}{PathBase}{Path}{QueryString} - {StatusCode} {ContentLength} {ContentType} {ElapsedMilliseconds}ms","TraceId":"b0cc022f4f78f6ce562e021d03a0bf87","SpanId":"e0836188dcb6f657","Properties":{"ElapsedMilliseconds":226.953,"StatusCode":201,"ContentType":"application/json; charset=utf-8","ContentLength":null,"Protocol":"HTTP/2","Method":"POST","Scheme":"https","Host":"localhost:7247","PathBase":"","Path":"/api/Wonders","QueryString":"","EventId":{"Id":2},"SourceContext":"Microsoft.AspNetCore.Hosting.Diagnostics","RequestId":"0HNG472RKMSKA:00000001","RequestPath":"/api/Wonders","ConnectionId":"0HNG472RKMSKA"}}
|
||||||
|
{"Timestamp":"2025-10-05T20:58:23.0598520+03:00","Level":"Information","MessageTemplate":"Request starting {Protocol} {Method} {Scheme}://{Host}{PathBase}{Path}{QueryString} - {ContentType} {ContentLength}","TraceId":"ec8eacb4e23eaaef5789b3ec092fec17","SpanId":"8022e7df11e746b6","Properties":{"Protocol":"HTTP/2","Method":"GET","ContentType":null,"ContentLength":null,"Scheme":"https","Host":"localhost:7247","PathBase":"","Path":"/api/Wonders","QueryString":"","EventId":{"Id":1},"SourceContext":"Microsoft.AspNetCore.Hosting.Diagnostics","RequestId":"0HNG472RKMSKA:00000003","RequestPath":"/api/Wonders","ConnectionId":"0HNG472RKMSKA"}}
|
||||||
|
{"Timestamp":"2025-10-05T20:58:23.0660602+03:00","Level":"Information","MessageTemplate":"Executing endpoint '{EndpointName}'","TraceId":"ec8eacb4e23eaaef5789b3ec092fec17","SpanId":"8022e7df11e746b6","Properties":{"EndpointName":"Ghaymah.WondersAPI.Controllers.WondersController.GetAll (Ghaymah.WondersAPI)","EventId":{"Name":"ExecutingEndpoint"},"SourceContext":"Microsoft.AspNetCore.Routing.EndpointMiddleware","RequestId":"0HNG472RKMSKA:00000003","RequestPath":"/api/Wonders","ConnectionId":"0HNG472RKMSKA"}}
|
||||||
|
{"Timestamp":"2025-10-05T20:58:23.0799717+03:00","Level":"Information","MessageTemplate":"Route matched with {RouteData}. Executing controller action with signature {MethodInfo} on controller {Controller} ({AssemblyName}).","TraceId":"ec8eacb4e23eaaef5789b3ec092fec17","SpanId":"8022e7df11e746b6","Properties":{"RouteData":"{action = \"GetAll\", controller = \"Wonders\"}","MethodInfo":"System.Threading.Tasks.Task`1[Microsoft.AspNetCore.Mvc.IActionResult] GetAll()","Controller":"Ghaymah.WondersAPI.Controllers.WondersController","AssemblyName":"Ghaymah.WondersAPI","EventId":{"Id":102,"Name":"ControllerActionExecuting"},"SourceContext":"Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker","ActionId":"237a4b08-a318-462a-b195-9a62d87c6a8e","ActionName":"Ghaymah.WondersAPI.Controllers.WondersController.GetAll (Ghaymah.WondersAPI)","RequestId":"0HNG472RKMSKA:00000003","RequestPath":"/api/Wonders","ConnectionId":"0HNG472RKMSKA"}}
|
||||||
|
{"Timestamp":"2025-10-05T20:58:23.1722557+03:00","Level":"Information","MessageTemplate":"Fetched {Count} wonders from database","TraceId":"ec8eacb4e23eaaef5789b3ec092fec17","SpanId":"8022e7df11e746b6","Properties":{"Count":7,"SourceContext":"Ghaymah.WondersAPI.Controllers.WondersController","ActionId":"237a4b08-a318-462a-b195-9a62d87c6a8e","ActionName":"Ghaymah.WondersAPI.Controllers.WondersController.GetAll (Ghaymah.WondersAPI)","RequestId":"0HNG472RKMSKA:00000003","RequestPath":"/api/Wonders","ConnectionId":"0HNG472RKMSKA"}}
|
||||||
|
{"Timestamp":"2025-10-05T20:58:23.1771367+03:00","Level":"Information","MessageTemplate":"Executing {ObjectResultType}, writing value of type '{Type}'.","TraceId":"ec8eacb4e23eaaef5789b3ec092fec17","SpanId":"8022e7df11e746b6","Properties":{"ObjectResultType":"OkObjectResult","Type":"System.Collections.Generic.List`1[[WondersAPI.Models.Wonder, Ghaymah.WondersAPI, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]","EventId":{"Id":1,"Name":"ObjectResultExecuting"},"SourceContext":"Microsoft.AspNetCore.Mvc.Infrastructure.ObjectResultExecutor","ActionId":"237a4b08-a318-462a-b195-9a62d87c6a8e","ActionName":"Ghaymah.WondersAPI.Controllers.WondersController.GetAll (Ghaymah.WondersAPI)","RequestId":"0HNG472RKMSKA:00000003","RequestPath":"/api/Wonders","ConnectionId":"0HNG472RKMSKA"}}
|
||||||
|
{"Timestamp":"2025-10-05T20:58:23.1837986+03:00","Level":"Information","MessageTemplate":"Executed action {ActionName} in {ElapsedMilliseconds}ms","TraceId":"ec8eacb4e23eaaef5789b3ec092fec17","SpanId":"8022e7df11e746b6","Properties":{"ActionName":"Ghaymah.WondersAPI.Controllers.WondersController.GetAll (Ghaymah.WondersAPI)","ElapsedMilliseconds":98.0374,"EventId":{"Id":105,"Name":"ActionExecuted"},"SourceContext":"Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker","RequestId":"0HNG472RKMSKA:00000003","RequestPath":"/api/Wonders","ConnectionId":"0HNG472RKMSKA"}}
|
||||||
|
{"Timestamp":"2025-10-05T20:58:23.1870072+03:00","Level":"Information","MessageTemplate":"Executed endpoint '{EndpointName}'","TraceId":"ec8eacb4e23eaaef5789b3ec092fec17","SpanId":"8022e7df11e746b6","Properties":{"EndpointName":"Ghaymah.WondersAPI.Controllers.WondersController.GetAll (Ghaymah.WondersAPI)","EventId":{"Id":1,"Name":"ExecutedEndpoint"},"SourceContext":"Microsoft.AspNetCore.Routing.EndpointMiddleware","RequestId":"0HNG472RKMSKA:00000003","RequestPath":"/api/Wonders","ConnectionId":"0HNG472RKMSKA"}}
|
||||||
|
{"Timestamp":"2025-10-05T20:58:23.1897868+03:00","Level":"Information","MessageTemplate":"Request finished {Protocol} {Method} {Scheme}://{Host}{PathBase}{Path}{QueryString} - {StatusCode} {ContentLength} {ContentType} {ElapsedMilliseconds}ms","TraceId":"ec8eacb4e23eaaef5789b3ec092fec17","SpanId":"8022e7df11e746b6","Properties":{"ElapsedMilliseconds":129.9384,"StatusCode":200,"ContentType":"application/json; charset=utf-8","ContentLength":null,"Protocol":"HTTP/2","Method":"GET","Scheme":"https","Host":"localhost:7247","PathBase":"","Path":"/api/Wonders","QueryString":"","EventId":{"Id":2},"SourceContext":"Microsoft.AspNetCore.Hosting.Diagnostics","RequestId":"0HNG472RKMSKA:00000003","RequestPath":"/api/Wonders","ConnectionId":"0HNG472RKMSKA"}}
|
||||||
|
{"Timestamp":"2025-10-05T20:59:40.7956704+03:00","Level":"Information","MessageTemplate":"Saved {count} entities to in-memory store.","Properties":{"count":6,"EventId":{"Id":30100,"Name":"Microsoft.EntityFrameworkCore.Update.ChangesSaved"},"SourceContext":"Microsoft.EntityFrameworkCore.Update"}}
|
||||||
|
{"Timestamp":"2025-10-05T20:59:40.8476347+03:00","Level":"Information","MessageTemplate":"🚀 Wonders API application started successfully at {time}","Properties":{"time":"2025-10-05T20:59:40.8437441+03:00","SourceContext":"Program"}}
|
||||||
|
{"Timestamp":"2025-10-05T20:59:41.0744490+03:00","Level":"Information","MessageTemplate":"Now listening on: {address}","Properties":{"address":"https://localhost:7247","EventId":{"Id":14,"Name":"ListeningOnAddress"},"SourceContext":"Microsoft.Hosting.Lifetime"}}
|
||||||
|
{"Timestamp":"2025-10-05T20:59:41.0768196+03:00","Level":"Information","MessageTemplate":"Now listening on: {address}","Properties":{"address":"http://localhost:5004","EventId":{"Id":14,"Name":"ListeningOnAddress"},"SourceContext":"Microsoft.Hosting.Lifetime"}}
|
||||||
|
{"Timestamp":"2025-10-05T20:59:41.1361984+03:00","Level":"Information","MessageTemplate":"Application started. Press Ctrl+C to shut down.","Properties":{"SourceContext":"Microsoft.Hosting.Lifetime"}}
|
||||||
|
{"Timestamp":"2025-10-05T20:59:41.1379225+03:00","Level":"Information","MessageTemplate":"Hosting environment: {EnvName}","Properties":{"EnvName":"Development","SourceContext":"Microsoft.Hosting.Lifetime"}}
|
||||||
|
{"Timestamp":"2025-10-05T20:59:41.1391378+03:00","Level":"Information","MessageTemplate":"Content root path: {ContentRoot}","Properties":{"ContentRoot":"D:\\WebApplication1","SourceContext":"Microsoft.Hosting.Lifetime"}}
|
||||||
|
{"Timestamp":"2025-10-05T21:00:27.9545814+03:00","Level":"Information","MessageTemplate":"Request starting {Protocol} {Method} {Scheme}://{Host}{PathBase}{Path}{QueryString} - {ContentType} {ContentLength}","TraceId":"4ec8ffa8cce1959bc0a202fd897c24dd","SpanId":"99dacb25b930bc8c","Properties":{"Protocol":"HTTP/2","Method":"GET","ContentType":null,"ContentLength":null,"Scheme":"https","Host":"localhost:7247","PathBase":"","Path":"/swagger/index.html","QueryString":"","EventId":{"Id":1},"SourceContext":"Microsoft.AspNetCore.Hosting.Diagnostics","RequestId":"0HNG473QJG7AA:00000001","RequestPath":"/swagger/index.html","ConnectionId":"0HNG473QJG7AA"}}
|
||||||
|
{"Timestamp":"2025-10-05T21:00:28.1107950+03:00","Level":"Information","MessageTemplate":"Request finished {Protocol} {Method} {Scheme}://{Host}{PathBase}{Path}{QueryString} - {StatusCode} {ContentLength} {ContentType} {ElapsedMilliseconds}ms","TraceId":"4ec8ffa8cce1959bc0a202fd897c24dd","SpanId":"99dacb25b930bc8c","Properties":{"ElapsedMilliseconds":157.4442,"StatusCode":200,"ContentType":"text/html;charset=utf-8","ContentLength":null,"Protocol":"HTTP/2","Method":"GET","Scheme":"https","Host":"localhost:7247","PathBase":"","Path":"/swagger/index.html","QueryString":"","EventId":{"Id":2},"SourceContext":"Microsoft.AspNetCore.Hosting.Diagnostics","RequestId":"0HNG473QJG7AA:00000001","RequestPath":"/swagger/index.html","ConnectionId":"0HNG473QJG7AA"}}
|
||||||
|
{"Timestamp":"2025-10-05T21:00:28.1295786+03:00","Level":"Information","MessageTemplate":"Request starting {Protocol} {Method} {Scheme}://{Host}{PathBase}{Path}{QueryString} - {ContentType} {ContentLength}","TraceId":"e091e102487e1985cf1e1c6387cf310d","SpanId":"e55551716a0c4914","Properties":{"Protocol":"HTTP/2","Method":"GET","ContentType":null,"ContentLength":null,"Scheme":"https","Host":"localhost:7247","PathBase":"","Path":"/_framework/aspnetcore-browser-refresh.js","QueryString":"","EventId":{"Id":1},"SourceContext":"Microsoft.AspNetCore.Hosting.Diagnostics","RequestId":"0HNG473QJG7AA:00000003","RequestPath":"/_framework/aspnetcore-browser-refresh.js","ConnectionId":"0HNG473QJG7AA"}}
|
||||||
|
{"Timestamp":"2025-10-05T21:00:28.1373056+03:00","Level":"Information","MessageTemplate":"Request finished {Protocol} {Method} {Scheme}://{Host}{PathBase}{Path}{QueryString} - {StatusCode} {ContentLength} {ContentType} {ElapsedMilliseconds}ms","TraceId":"e091e102487e1985cf1e1c6387cf310d","SpanId":"e55551716a0c4914","Properties":{"ElapsedMilliseconds":7.6582,"StatusCode":200,"ContentType":"application/javascript; charset=utf-8","ContentLength":16520,"Protocol":"HTTP/2","Method":"GET","Scheme":"https","Host":"localhost:7247","PathBase":"","Path":"/_framework/aspnetcore-browser-refresh.js","QueryString":"","EventId":{"Id":2},"SourceContext":"Microsoft.AspNetCore.Hosting.Diagnostics","RequestId":"0HNG473QJG7AA:00000003","RequestPath":"/_framework/aspnetcore-browser-refresh.js","ConnectionId":"0HNG473QJG7AA"}}
|
||||||
|
{"Timestamp":"2025-10-05T21:00:28.1893202+03:00","Level":"Information","MessageTemplate":"Request starting {Protocol} {Method} {Scheme}://{Host}{PathBase}{Path}{QueryString} - {ContentType} {ContentLength}","TraceId":"11a6cfb8f53dde8255dc9463cabad4b6","SpanId":"1ca8b8037fb28535","Properties":{"Protocol":"HTTP/2","Method":"GET","ContentType":null,"ContentLength":null,"Scheme":"https","Host":"localhost:7247","PathBase":"","Path":"/_vs/browserLink","QueryString":"","EventId":{"Id":1},"SourceContext":"Microsoft.AspNetCore.Hosting.Diagnostics","RequestId":"0HNG473QJG7AA:00000005","RequestPath":"/_vs/browserLink","ConnectionId":"0HNG473QJG7AA"}}
|
||||||
|
{"Timestamp":"2025-10-05T21:00:28.2283635+03:00","Level":"Information","MessageTemplate":"Request finished {Protocol} {Method} {Scheme}://{Host}{PathBase}{Path}{QueryString} - {StatusCode} {ContentLength} {ContentType} {ElapsedMilliseconds}ms","TraceId":"11a6cfb8f53dde8255dc9463cabad4b6","SpanId":"1ca8b8037fb28535","Properties":{"ElapsedMilliseconds":39.0265,"StatusCode":200,"ContentType":"text/javascript; charset=UTF-8","ContentLength":null,"Protocol":"HTTP/2","Method":"GET","Scheme":"https","Host":"localhost:7247","PathBase":"","Path":"/_vs/browserLink","QueryString":"","EventId":{"Id":2},"SourceContext":"Microsoft.AspNetCore.Hosting.Diagnostics","RequestId":"0HNG473QJG7AA:00000005","RequestPath":"/_vs/browserLink","ConnectionId":"0HNG473QJG7AA"}}
|
||||||
|
{"Timestamp":"2025-10-05T21:00:28.3716234+03:00","Level":"Information","MessageTemplate":"Request starting {Protocol} {Method} {Scheme}://{Host}{PathBase}{Path}{QueryString} - {ContentType} {ContentLength}","TraceId":"b65192778f6fc182e59eaba5f4055fd2","SpanId":"8495f5327cdad262","Properties":{"Protocol":"HTTP/2","Method":"GET","ContentType":null,"ContentLength":null,"Scheme":"https","Host":"localhost:7247","PathBase":"","Path":"/swagger/v1/swagger.json","QueryString":"","EventId":{"Id":1},"SourceContext":"Microsoft.AspNetCore.Hosting.Diagnostics","RequestId":"0HNG473QJG7AA:00000007","RequestPath":"/swagger/v1/swagger.json","ConnectionId":"0HNG473QJG7AA"}}
|
||||||
|
{"Timestamp":"2025-10-05T21:00:28.3915291+03:00","Level":"Information","MessageTemplate":"Request finished {Protocol} {Method} {Scheme}://{Host}{PathBase}{Path}{QueryString} - {StatusCode} {ContentLength} {ContentType} {ElapsedMilliseconds}ms","TraceId":"b65192778f6fc182e59eaba5f4055fd2","SpanId":"8495f5327cdad262","Properties":{"ElapsedMilliseconds":19.8827,"StatusCode":200,"ContentType":"application/json;charset=utf-8","ContentLength":null,"Protocol":"HTTP/2","Method":"GET","Scheme":"https","Host":"localhost:7247","PathBase":"","Path":"/swagger/v1/swagger.json","QueryString":"","EventId":{"Id":2},"SourceContext":"Microsoft.AspNetCore.Hosting.Diagnostics","RequestId":"0HNG473QJG7AA:00000007","RequestPath":"/swagger/v1/swagger.json","ConnectionId":"0HNG473QJG7AA"}}
|
||||||
|
{"Timestamp":"2025-10-05T21:00:44.5882577+03:00","Level":"Information","MessageTemplate":"Request starting {Protocol} {Method} {Scheme}://{Host}{PathBase}{Path}{QueryString} - {ContentType} {ContentLength}","TraceId":"d4826a4a8d0b64cedb0d257d7873d1cf","SpanId":"1eb35172550fa9c9","Properties":{"Protocol":"HTTP/2","Method":"GET","ContentType":null,"ContentLength":null,"Scheme":"https","Host":"localhost:7247","PathBase":"","Path":"/api/Wonders","QueryString":"","EventId":{"Id":1},"SourceContext":"Microsoft.AspNetCore.Hosting.Diagnostics","RequestId":"0HNG473QJG7AA:00000009","RequestPath":"/api/Wonders","ConnectionId":"0HNG473QJG7AA"}}
|
||||||
|
{"Timestamp":"2025-10-05T21:00:44.6013384+03:00","Level":"Information","MessageTemplate":"Executing endpoint '{EndpointName}'","TraceId":"d4826a4a8d0b64cedb0d257d7873d1cf","SpanId":"1eb35172550fa9c9","Properties":{"EndpointName":"Ghaymah.WondersAPI.Controllers.WondersController.GetAll (Ghaymah.WondersAPI)","EventId":{"Name":"ExecutingEndpoint"},"SourceContext":"Microsoft.AspNetCore.Routing.EndpointMiddleware","RequestId":"0HNG473QJG7AA:00000009","RequestPath":"/api/Wonders","ConnectionId":"0HNG473QJG7AA"}}
|
||||||
|
{"Timestamp":"2025-10-05T21:00:44.6198501+03:00","Level":"Information","MessageTemplate":"Route matched with {RouteData}. Executing controller action with signature {MethodInfo} on controller {Controller} ({AssemblyName}).","TraceId":"d4826a4a8d0b64cedb0d257d7873d1cf","SpanId":"1eb35172550fa9c9","Properties":{"RouteData":"{action = \"GetAll\", controller = \"Wonders\"}","MethodInfo":"System.Threading.Tasks.Task`1[Microsoft.AspNetCore.Mvc.IActionResult] GetAll()","Controller":"Ghaymah.WondersAPI.Controllers.WondersController","AssemblyName":"Ghaymah.WondersAPI","EventId":{"Id":102,"Name":"ControllerActionExecuting"},"SourceContext":"Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker","ActionId":"e5649039-ffd3-46d6-b2b3-97007b8e5d9c","ActionName":"Ghaymah.WondersAPI.Controllers.WondersController.GetAll (Ghaymah.WondersAPI)","RequestId":"0HNG473QJG7AA:00000009","RequestPath":"/api/Wonders","ConnectionId":"0HNG473QJG7AA"}}
|
||||||
|
{"Timestamp":"2025-10-05T21:00:44.7288992+03:00","Level":"Information","MessageTemplate":"Fetched {Count} wonders from database","TraceId":"d4826a4a8d0b64cedb0d257d7873d1cf","SpanId":"1eb35172550fa9c9","Properties":{"Count":6,"SourceContext":"Ghaymah.WondersAPI.Controllers.WondersController","ActionId":"e5649039-ffd3-46d6-b2b3-97007b8e5d9c","ActionName":"Ghaymah.WondersAPI.Controllers.WondersController.GetAll (Ghaymah.WondersAPI)","RequestId":"0HNG473QJG7AA:00000009","RequestPath":"/api/Wonders","ConnectionId":"0HNG473QJG7AA"}}
|
||||||
|
{"Timestamp":"2025-10-05T21:00:44.7411351+03:00","Level":"Information","MessageTemplate":"Executing {ObjectResultType}, writing value of type '{Type}'.","TraceId":"d4826a4a8d0b64cedb0d257d7873d1cf","SpanId":"1eb35172550fa9c9","Properties":{"ObjectResultType":"OkObjectResult","Type":"System.Collections.Generic.List`1[[WondersAPI.Models.Wonder, Ghaymah.WondersAPI, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]","EventId":{"Id":1,"Name":"ObjectResultExecuting"},"SourceContext":"Microsoft.AspNetCore.Mvc.Infrastructure.ObjectResultExecutor","ActionId":"e5649039-ffd3-46d6-b2b3-97007b8e5d9c","ActionName":"Ghaymah.WondersAPI.Controllers.WondersController.GetAll (Ghaymah.WondersAPI)","RequestId":"0HNG473QJG7AA:00000009","RequestPath":"/api/Wonders","ConnectionId":"0HNG473QJG7AA"}}
|
||||||
|
{"Timestamp":"2025-10-05T21:00:44.7587123+03:00","Level":"Information","MessageTemplate":"Executed action {ActionName} in {ElapsedMilliseconds}ms","TraceId":"d4826a4a8d0b64cedb0d257d7873d1cf","SpanId":"1eb35172550fa9c9","Properties":{"ActionName":"Ghaymah.WondersAPI.Controllers.WondersController.GetAll (Ghaymah.WondersAPI)","ElapsedMilliseconds":130.6212,"EventId":{"Id":105,"Name":"ActionExecuted"},"SourceContext":"Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker","RequestId":"0HNG473QJG7AA:00000009","RequestPath":"/api/Wonders","ConnectionId":"0HNG473QJG7AA"}}
|
||||||
|
{"Timestamp":"2025-10-05T21:00:44.7649075+03:00","Level":"Information","MessageTemplate":"Executed endpoint '{EndpointName}'","TraceId":"d4826a4a8d0b64cedb0d257d7873d1cf","SpanId":"1eb35172550fa9c9","Properties":{"EndpointName":"Ghaymah.WondersAPI.Controllers.WondersController.GetAll (Ghaymah.WondersAPI)","EventId":{"Id":1,"Name":"ExecutedEndpoint"},"SourceContext":"Microsoft.AspNetCore.Routing.EndpointMiddleware","RequestId":"0HNG473QJG7AA:00000009","RequestPath":"/api/Wonders","ConnectionId":"0HNG473QJG7AA"}}
|
||||||
|
{"Timestamp":"2025-10-05T21:00:44.7742250+03:00","Level":"Information","MessageTemplate":"Request finished {Protocol} {Method} {Scheme}://{Host}{PathBase}{Path}{QueryString} - {StatusCode} {ContentLength} {ContentType} {ElapsedMilliseconds}ms","TraceId":"d4826a4a8d0b64cedb0d257d7873d1cf","SpanId":"1eb35172550fa9c9","Properties":{"ElapsedMilliseconds":185.9149,"StatusCode":200,"ContentType":"application/json; charset=utf-8","ContentLength":null,"Protocol":"HTTP/2","Method":"GET","Scheme":"https","Host":"localhost:7247","PathBase":"","Path":"/api/Wonders","QueryString":"","EventId":{"Id":2},"SourceContext":"Microsoft.AspNetCore.Hosting.Diagnostics","RequestId":"0HNG473QJG7AA:00000009","RequestPath":"/api/Wonders","ConnectionId":"0HNG473QJG7AA"}}
|
||||||
|
{"Timestamp":"2025-10-05T21:01:11.1392013+03:00","Level":"Information","MessageTemplate":"Request starting {Protocol} {Method} {Scheme}://{Host}{PathBase}{Path}{QueryString} - {ContentType} {ContentLength}","TraceId":"f6c60b2db401843ed02131a6ef85956a","SpanId":"79203bc503890871","Properties":{"Protocol":"HTTP/2","Method":"POST","ContentType":"application/json","ContentLength":144,"Scheme":"https","Host":"localhost:7247","PathBase":"","Path":"/api/Wonders","QueryString":"","EventId":{"Id":1},"SourceContext":"Microsoft.AspNetCore.Hosting.Diagnostics","RequestId":"0HNG473QJG7AA:0000000B","RequestPath":"/api/Wonders","ConnectionId":"0HNG473QJG7AA"}}
|
||||||
|
{"Timestamp":"2025-10-05T21:01:11.1508342+03:00","Level":"Information","MessageTemplate":"Executing endpoint '{EndpointName}'","TraceId":"f6c60b2db401843ed02131a6ef85956a","SpanId":"79203bc503890871","Properties":{"EndpointName":"Ghaymah.WondersAPI.Controllers.WondersController.Create (Ghaymah.WondersAPI)","EventId":{"Name":"ExecutingEndpoint"},"SourceContext":"Microsoft.AspNetCore.Routing.EndpointMiddleware","RequestId":"0HNG473QJG7AA:0000000B","RequestPath":"/api/Wonders","ConnectionId":"0HNG473QJG7AA"}}
|
||||||
|
{"Timestamp":"2025-10-05T21:01:11.1656030+03:00","Level":"Information","MessageTemplate":"Route matched with {RouteData}. Executing controller action with signature {MethodInfo} on controller {Controller} ({AssemblyName}).","TraceId":"f6c60b2db401843ed02131a6ef85956a","SpanId":"79203bc503890871","Properties":{"RouteData":"{action = \"Create\", controller = \"Wonders\"}","MethodInfo":"System.Threading.Tasks.Task`1[Microsoft.AspNetCore.Mvc.IActionResult] Create(WondersAPI.Models.Wonder)","Controller":"Ghaymah.WondersAPI.Controllers.WondersController","AssemblyName":"Ghaymah.WondersAPI","EventId":{"Id":102,"Name":"ControllerActionExecuting"},"SourceContext":"Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker","ActionId":"b416f871-295f-4949-897f-73a28da9d202","ActionName":"Ghaymah.WondersAPI.Controllers.WondersController.Create (Ghaymah.WondersAPI)","RequestId":"0HNG473QJG7AA:0000000B","RequestPath":"/api/Wonders","ConnectionId":"0HNG473QJG7AA"}}
|
||||||
|
{"Timestamp":"2025-10-05T21:01:11.2686836+03:00","Level":"Information","MessageTemplate":"Saved {count} entities to in-memory store.","TraceId":"f6c60b2db401843ed02131a6ef85956a","SpanId":"79203bc503890871","Properties":{"count":1,"EventId":{"Id":30100,"Name":"Microsoft.EntityFrameworkCore.Update.ChangesSaved"},"SourceContext":"Microsoft.EntityFrameworkCore.Update","ActionId":"b416f871-295f-4949-897f-73a28da9d202","ActionName":"Ghaymah.WondersAPI.Controllers.WondersController.Create (Ghaymah.WondersAPI)","RequestId":"0HNG473QJG7AA:0000000B","RequestPath":"/api/Wonders","ConnectionId":"0HNG473QJG7AA"}}
|
||||||
|
{"Timestamp":"2025-10-05T21:01:11.2757308+03:00","Level":"Information","MessageTemplate":"Created new wonder: {Name}","TraceId":"f6c60b2db401843ed02131a6ef85956a","SpanId":"79203bc503890871","Properties":{"Name":"string","SourceContext":"Ghaymah.WondersAPI.Controllers.WondersController","ActionId":"b416f871-295f-4949-897f-73a28da9d202","ActionName":"Ghaymah.WondersAPI.Controllers.WondersController.Create (Ghaymah.WondersAPI)","RequestId":"0HNG473QJG7AA:0000000B","RequestPath":"/api/Wonders","ConnectionId":"0HNG473QJG7AA"}}
|
||||||
|
{"Timestamp":"2025-10-05T21:01:11.2834768+03:00","Level":"Information","MessageTemplate":"Executing {ObjectResultType}, writing value of type '{Type}'.","TraceId":"f6c60b2db401843ed02131a6ef85956a","SpanId":"79203bc503890871","Properties":{"ObjectResultType":"CreatedAtActionResult","Type":"WondersAPI.Models.Wonder","EventId":{"Id":1,"Name":"ObjectResultExecuting"},"SourceContext":"Microsoft.AspNetCore.Mvc.Infrastructure.ObjectResultExecutor","ActionId":"b416f871-295f-4949-897f-73a28da9d202","ActionName":"Ghaymah.WondersAPI.Controllers.WondersController.Create (Ghaymah.WondersAPI)","RequestId":"0HNG473QJG7AA:0000000B","RequestPath":"/api/Wonders","ConnectionId":"0HNG473QJG7AA"}}
|
||||||
|
{"Timestamp":"2025-10-05T21:01:11.3107925+03:00","Level":"Information","MessageTemplate":"Executed action {ActionName} in {ElapsedMilliseconds}ms","TraceId":"f6c60b2db401843ed02131a6ef85956a","SpanId":"79203bc503890871","Properties":{"ActionName":"Ghaymah.WondersAPI.Controllers.WondersController.Create (Ghaymah.WondersAPI)","ElapsedMilliseconds":123.3948,"EventId":{"Id":105,"Name":"ActionExecuted"},"SourceContext":"Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker","RequestId":"0HNG473QJG7AA:0000000B","RequestPath":"/api/Wonders","ConnectionId":"0HNG473QJG7AA"}}
|
||||||
|
{"Timestamp":"2025-10-05T21:01:11.3239564+03:00","Level":"Information","MessageTemplate":"Executed endpoint '{EndpointName}'","TraceId":"f6c60b2db401843ed02131a6ef85956a","SpanId":"79203bc503890871","Properties":{"EndpointName":"Ghaymah.WondersAPI.Controllers.WondersController.Create (Ghaymah.WondersAPI)","EventId":{"Id":1,"Name":"ExecutedEndpoint"},"SourceContext":"Microsoft.AspNetCore.Routing.EndpointMiddleware","RequestId":"0HNG473QJG7AA:0000000B","RequestPath":"/api/Wonders","ConnectionId":"0HNG473QJG7AA"}}
|
||||||
|
{"Timestamp":"2025-10-05T21:01:11.3309465+03:00","Level":"Information","MessageTemplate":"Request finished {Protocol} {Method} {Scheme}://{Host}{PathBase}{Path}{QueryString} - {StatusCode} {ContentLength} {ContentType} {ElapsedMilliseconds}ms","TraceId":"f6c60b2db401843ed02131a6ef85956a","SpanId":"79203bc503890871","Properties":{"ElapsedMilliseconds":191.7228,"StatusCode":201,"ContentType":"application/json; charset=utf-8","ContentLength":null,"Protocol":"HTTP/2","Method":"POST","Scheme":"https","Host":"localhost:7247","PathBase":"","Path":"/api/Wonders","QueryString":"","EventId":{"Id":2},"SourceContext":"Microsoft.AspNetCore.Hosting.Diagnostics","RequestId":"0HNG473QJG7AA:0000000B","RequestPath":"/api/Wonders","ConnectionId":"0HNG473QJG7AA"}}
|
||||||
|
{"Timestamp":"2025-10-05T21:01:16.1024702+03:00","Level":"Information","MessageTemplate":"Request starting {Protocol} {Method} {Scheme}://{Host}{PathBase}{Path}{QueryString} - {ContentType} {ContentLength}","TraceId":"ce42f6fc4ad4b5391519dd321493e31b","SpanId":"cfc41d8d15871841","Properties":{"Protocol":"HTTP/2","Method":"POST","ContentType":"application/json","ContentLength":144,"Scheme":"https","Host":"localhost:7247","PathBase":"","Path":"/api/Wonders","QueryString":"","EventId":{"Id":1},"SourceContext":"Microsoft.AspNetCore.Hosting.Diagnostics","RequestId":"0HNG473QJG7AA:0000000D","RequestPath":"/api/Wonders","ConnectionId":"0HNG473QJG7AA"}}
|
||||||
|
{"Timestamp":"2025-10-05T21:01:16.1082817+03:00","Level":"Information","MessageTemplate":"Executing endpoint '{EndpointName}'","TraceId":"ce42f6fc4ad4b5391519dd321493e31b","SpanId":"cfc41d8d15871841","Properties":{"EndpointName":"Ghaymah.WondersAPI.Controllers.WondersController.Create (Ghaymah.WondersAPI)","EventId":{"Name":"ExecutingEndpoint"},"SourceContext":"Microsoft.AspNetCore.Routing.EndpointMiddleware","RequestId":"0HNG473QJG7AA:0000000D","RequestPath":"/api/Wonders","ConnectionId":"0HNG473QJG7AA"}}
|
||||||
|
{"Timestamp":"2025-10-05T21:01:16.1103586+03:00","Level":"Information","MessageTemplate":"Route matched with {RouteData}. Executing controller action with signature {MethodInfo} on controller {Controller} ({AssemblyName}).","TraceId":"ce42f6fc4ad4b5391519dd321493e31b","SpanId":"cfc41d8d15871841","Properties":{"RouteData":"{action = \"Create\", controller = \"Wonders\"}","MethodInfo":"System.Threading.Tasks.Task`1[Microsoft.AspNetCore.Mvc.IActionResult] Create(WondersAPI.Models.Wonder)","Controller":"Ghaymah.WondersAPI.Controllers.WondersController","AssemblyName":"Ghaymah.WondersAPI","EventId":{"Id":102,"Name":"ControllerActionExecuting"},"SourceContext":"Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker","ActionId":"b416f871-295f-4949-897f-73a28da9d202","ActionName":"Ghaymah.WondersAPI.Controllers.WondersController.Create (Ghaymah.WondersAPI)","RequestId":"0HNG473QJG7AA:0000000D","RequestPath":"/api/Wonders","ConnectionId":"0HNG473QJG7AA"}}
|
||||||
|
{"Timestamp":"2025-10-05T21:01:16.1454135+03:00","Level":"Error","MessageTemplate":"An exception occurred in the database while saving changes for context type '{contextType}'.{newline}{error}","TraceId":"ce42f6fc4ad4b5391519dd321493e31b","SpanId":"cfc41d8d15871841","Exception":"System.ArgumentException: An item with the same key has already been added. Key: 7\r\n at System.Collections.Generic.Dictionary`2.TryInsert(TKey key, TValue value, InsertionBehavior behavior)\r\n at System.Collections.Generic.Dictionary`2.Add(TKey key, TValue value)\r\n at Microsoft.EntityFrameworkCore.InMemory.Storage.Internal.InMemoryTable`1.Create(IUpdateEntry entry, IDiagnosticsLogger`1 updateLogger)\r\n at Microsoft.EntityFrameworkCore.InMemory.Storage.Internal.InMemoryStore.ExecuteTransaction(IList`1 entries, IDiagnosticsLogger`1 updateLogger)\r\n at Microsoft.EntityFrameworkCore.InMemory.Storage.Internal.InMemoryDatabase.SaveChangesAsync(IList`1 entries, CancellationToken cancellationToken)\r\n at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.SaveChangesAsync(IList`1 entriesToSave, CancellationToken cancellationToken)\r\n at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.SaveChangesAsync(StateManager stateManager, Boolean acceptAllChangesOnSuccess, CancellationToken cancellationToken)\r\n at Microsoft.EntityFrameworkCore.DbContext.SaveChangesAsync(Boolean acceptAllChangesOnSuccess, CancellationToken cancellationToken)","Properties":{"contextType":"WondersAPI.Data.AppDbContext","newline":"\r\n","error":"System.ArgumentException: An item with the same key has already been added. Key: 7\r\n at System.Collections.Generic.Dictionary`2.TryInsert(TKey key, TValue value, InsertionBehavior behavior)\r\n at System.Collections.Generic.Dictionary`2.Add(TKey key, TValue value)\r\n at Microsoft.EntityFrameworkCore.InMemory.Storage.Internal.InMemoryTable`1.Create(IUpdateEntry entry, IDiagnosticsLogger`1 updateLogger)\r\n at Microsoft.EntityFrameworkCore.InMemory.Storage.Internal.InMemoryStore.ExecuteTransaction(IList`1 entries, IDiagnosticsLogger`1 updateLogger)\r\n at Microsoft.EntityFrameworkCore.InMemory.Storage.Internal.InMemoryDatabase.SaveChangesAsync(IList`1 entries, CancellationToken cancellationToken)\r\n at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.SaveChangesAsync(IList`1 entriesToSave, CancellationToken cancellationToken)\r\n at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.SaveChangesAsync(StateManager stateManager, Boolean acceptAllChangesOnSuccess, CancellationToken cancellationToken)\r\n at Microsoft.EntityFrameworkCore.DbContext.SaveChangesAsync(Boolean acceptAllChangesOnSuccess, CancellationToken cancellationToken)","EventId":{"Id":10000,"Name":"Microsoft.EntityFrameworkCore.Update.SaveChangesFailed"},"SourceContext":"Microsoft.EntityFrameworkCore.Update","ActionId":"b416f871-295f-4949-897f-73a28da9d202","ActionName":"Ghaymah.WondersAPI.Controllers.WondersController.Create (Ghaymah.WondersAPI)","RequestId":"0HNG473QJG7AA:0000000D","RequestPath":"/api/Wonders","ConnectionId":"0HNG473QJG7AA"}}
|
||||||
|
{"Timestamp":"2025-10-05T21:01:16.1580676+03:00","Level":"Information","MessageTemplate":"Executed action {ActionName} in {ElapsedMilliseconds}ms","TraceId":"ce42f6fc4ad4b5391519dd321493e31b","SpanId":"cfc41d8d15871841","Properties":{"ActionName":"Ghaymah.WondersAPI.Controllers.WondersController.Create (Ghaymah.WondersAPI)","ElapsedMilliseconds":43.9989,"EventId":{"Id":105,"Name":"ActionExecuted"},"SourceContext":"Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker","RequestId":"0HNG473QJG7AA:0000000D","RequestPath":"/api/Wonders","ConnectionId":"0HNG473QJG7AA"}}
|
||||||
|
{"Timestamp":"2025-10-05T21:01:16.1613150+03:00","Level":"Information","MessageTemplate":"Executed endpoint '{EndpointName}'","TraceId":"ce42f6fc4ad4b5391519dd321493e31b","SpanId":"cfc41d8d15871841","Properties":{"EndpointName":"Ghaymah.WondersAPI.Controllers.WondersController.Create (Ghaymah.WondersAPI)","EventId":{"Id":1,"Name":"ExecutedEndpoint"},"SourceContext":"Microsoft.AspNetCore.Routing.EndpointMiddleware","RequestId":"0HNG473QJG7AA:0000000D","RequestPath":"/api/Wonders","ConnectionId":"0HNG473QJG7AA"}}
|
||||||
|
{"Timestamp":"2025-10-05T21:01:16.1657554+03:00","Level":"Error","MessageTemplate":"An unhandled exception has occurred while executing the request.","TraceId":"ce42f6fc4ad4b5391519dd321493e31b","SpanId":"cfc41d8d15871841","Exception":"System.ArgumentException: An item with the same key has already been added. Key: 7\r\n at System.Collections.Generic.Dictionary`2.TryInsert(TKey key, TValue value, InsertionBehavior behavior)\r\n at System.Collections.Generic.Dictionary`2.Add(TKey key, TValue value)\r\n at Microsoft.EntityFrameworkCore.InMemory.Storage.Internal.InMemoryTable`1.Create(IUpdateEntry entry, IDiagnosticsLogger`1 updateLogger)\r\n at Microsoft.EntityFrameworkCore.InMemory.Storage.Internal.InMemoryStore.ExecuteTransaction(IList`1 entries, IDiagnosticsLogger`1 updateLogger)\r\n at Microsoft.EntityFrameworkCore.InMemory.Storage.Internal.InMemoryDatabase.SaveChangesAsync(IList`1 entries, CancellationToken cancellationToken)\r\n at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.SaveChangesAsync(IList`1 entriesToSave, CancellationToken cancellationToken)\r\n at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.SaveChangesAsync(StateManager stateManager, Boolean acceptAllChangesOnSuccess, CancellationToken cancellationToken)\r\n at Microsoft.EntityFrameworkCore.DbContext.SaveChangesAsync(Boolean acceptAllChangesOnSuccess, CancellationToken cancellationToken)\r\n at Microsoft.EntityFrameworkCore.DbContext.SaveChangesAsync(Boolean acceptAllChangesOnSuccess, CancellationToken cancellationToken)\r\n at Ghaymah.WondersAPI.Controllers.WondersController.Create(Wonder wonder) in D:\\WebApplication1\\Controllers\\WondersController.cs:line 48\r\n at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.TaskOfIActionResultExecutor.Execute(ActionContext actionContext, IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)\r\n at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeActionMethodAsync>g__Awaited|12_0(ControllerActionInvoker invoker, ValueTask`1 actionResultValueTask)\r\n at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeNextActionFilterAsync>g__Awaited|10_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)\r\n at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)\r\n at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)\r\n at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeInnerFilterAsync()\r\n--- End of stack trace from previous location ---\r\n at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeFilterPipelineAsync>g__Awaited|20_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)\r\n at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Logged|17_1(ResourceInvoker invoker)\r\n at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Logged|17_1(ResourceInvoker invoker)\r\n at Microsoft.AspNetCore.Routing.EndpointMiddleware.<Invoke>g__AwaitRequestTask|7_0(Endpoint endpoint, Task requestTask, ILogger logger)\r\n at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)\r\n at Swashbuckle.AspNetCore.SwaggerUI.SwaggerUIMiddleware.Invoke(HttpContext httpContext)\r\n at Swashbuckle.AspNetCore.Swagger.SwaggerMiddleware.Invoke(HttpContext httpContext, ISwaggerProvider swaggerProvider)\r\n at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)\r\n at Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddlewareImpl.Invoke(HttpContext context)","Properties":{"EventId":{"Id":1,"Name":"UnhandledException"},"SourceContext":"Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware","RequestId":"0HNG473QJG7AA:0000000D","RequestPath":"/api/Wonders","ConnectionId":"0HNG473QJG7AA"}}
|
||||||
|
{"Timestamp":"2025-10-05T21:01:16.2057327+03:00","Level":"Information","MessageTemplate":"Request finished {Protocol} {Method} {Scheme}://{Host}{PathBase}{Path}{QueryString} - {StatusCode} {ContentLength} {ContentType} {ElapsedMilliseconds}ms","TraceId":"ce42f6fc4ad4b5391519dd321493e31b","SpanId":"cfc41d8d15871841","Properties":{"ElapsedMilliseconds":103.2548,"StatusCode":500,"ContentType":"text/plain; charset=utf-8","ContentLength":null,"Protocol":"HTTP/2","Method":"POST","Scheme":"https","Host":"localhost:7247","PathBase":"","Path":"/api/Wonders","QueryString":"","EventId":{"Id":2},"SourceContext":"Microsoft.AspNetCore.Hosting.Diagnostics","RequestId":"0HNG473QJG7AA:0000000D","RequestPath":"/api/Wonders","ConnectionId":"0HNG473QJG7AA"}}
|
||||||
|
{"Timestamp":"2025-10-05T21:01:37.8453900+03:00","Level":"Information","MessageTemplate":"Request starting {Protocol} {Method} {Scheme}://{Host}{PathBase}{Path}{QueryString} - {ContentType} {ContentLength}","TraceId":"57e63c1823f8ed4afb0037c0f1de724f","SpanId":"7643fe61c05efc89","Properties":{"Protocol":"HTTP/2","Method":"POST","ContentType":"application/json","ContentLength":144,"Scheme":"https","Host":"localhost:7247","PathBase":"","Path":"/api/Wonders","QueryString":"","EventId":{"Id":1},"SourceContext":"Microsoft.AspNetCore.Hosting.Diagnostics","RequestId":"0HNG473QJG7AA:0000000F","RequestPath":"/api/Wonders","ConnectionId":"0HNG473QJG7AA"}}
|
||||||
|
{"Timestamp":"2025-10-05T21:01:37.8527952+03:00","Level":"Information","MessageTemplate":"Executing endpoint '{EndpointName}'","TraceId":"57e63c1823f8ed4afb0037c0f1de724f","SpanId":"7643fe61c05efc89","Properties":{"EndpointName":"Ghaymah.WondersAPI.Controllers.WondersController.Create (Ghaymah.WondersAPI)","EventId":{"Name":"ExecutingEndpoint"},"SourceContext":"Microsoft.AspNetCore.Routing.EndpointMiddleware","RequestId":"0HNG473QJG7AA:0000000F","RequestPath":"/api/Wonders","ConnectionId":"0HNG473QJG7AA"}}
|
||||||
|
{"Timestamp":"2025-10-05T21:01:37.8552276+03:00","Level":"Information","MessageTemplate":"Route matched with {RouteData}. Executing controller action with signature {MethodInfo} on controller {Controller} ({AssemblyName}).","TraceId":"57e63c1823f8ed4afb0037c0f1de724f","SpanId":"7643fe61c05efc89","Properties":{"RouteData":"{action = \"Create\", controller = \"Wonders\"}","MethodInfo":"System.Threading.Tasks.Task`1[Microsoft.AspNetCore.Mvc.IActionResult] Create(WondersAPI.Models.Wonder)","Controller":"Ghaymah.WondersAPI.Controllers.WondersController","AssemblyName":"Ghaymah.WondersAPI","EventId":{"Id":102,"Name":"ControllerActionExecuting"},"SourceContext":"Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker","ActionId":"b416f871-295f-4949-897f-73a28da9d202","ActionName":"Ghaymah.WondersAPI.Controllers.WondersController.Create (Ghaymah.WondersAPI)","RequestId":"0HNG473QJG7AA:0000000F","RequestPath":"/api/Wonders","ConnectionId":"0HNG473QJG7AA"}}
|
||||||
|
{"Timestamp":"2025-10-05T21:01:37.8624653+03:00","Level":"Information","MessageTemplate":"Saved {count} entities to in-memory store.","TraceId":"57e63c1823f8ed4afb0037c0f1de724f","SpanId":"7643fe61c05efc89","Properties":{"count":1,"EventId":{"Id":30100,"Name":"Microsoft.EntityFrameworkCore.Update.ChangesSaved"},"SourceContext":"Microsoft.EntityFrameworkCore.Update","ActionId":"b416f871-295f-4949-897f-73a28da9d202","ActionName":"Ghaymah.WondersAPI.Controllers.WondersController.Create (Ghaymah.WondersAPI)","RequestId":"0HNG473QJG7AA:0000000F","RequestPath":"/api/Wonders","ConnectionId":"0HNG473QJG7AA"}}
|
||||||
|
{"Timestamp":"2025-10-05T21:01:37.8689369+03:00","Level":"Information","MessageTemplate":"Created new wonder: {Name}","TraceId":"57e63c1823f8ed4afb0037c0f1de724f","SpanId":"7643fe61c05efc89","Properties":{"Name":"string","SourceContext":"Ghaymah.WondersAPI.Controllers.WondersController","ActionId":"b416f871-295f-4949-897f-73a28da9d202","ActionName":"Ghaymah.WondersAPI.Controllers.WondersController.Create (Ghaymah.WondersAPI)","RequestId":"0HNG473QJG7AA:0000000F","RequestPath":"/api/Wonders","ConnectionId":"0HNG473QJG7AA"}}
|
||||||
|
{"Timestamp":"2025-10-05T21:01:37.8714147+03:00","Level":"Information","MessageTemplate":"Executing {ObjectResultType}, writing value of type '{Type}'.","TraceId":"57e63c1823f8ed4afb0037c0f1de724f","SpanId":"7643fe61c05efc89","Properties":{"ObjectResultType":"CreatedAtActionResult","Type":"WondersAPI.Models.Wonder","EventId":{"Id":1,"Name":"ObjectResultExecuting"},"SourceContext":"Microsoft.AspNetCore.Mvc.Infrastructure.ObjectResultExecutor","ActionId":"b416f871-295f-4949-897f-73a28da9d202","ActionName":"Ghaymah.WondersAPI.Controllers.WondersController.Create (Ghaymah.WondersAPI)","RequestId":"0HNG473QJG7AA:0000000F","RequestPath":"/api/Wonders","ConnectionId":"0HNG473QJG7AA"}}
|
||||||
|
{"Timestamp":"2025-10-05T21:01:37.8773574+03:00","Level":"Information","MessageTemplate":"Executed action {ActionName} in {ElapsedMilliseconds}ms","TraceId":"57e63c1823f8ed4afb0037c0f1de724f","SpanId":"7643fe61c05efc89","Properties":{"ActionName":"Ghaymah.WondersAPI.Controllers.WondersController.Create (Ghaymah.WondersAPI)","ElapsedMilliseconds":15.6178,"EventId":{"Id":105,"Name":"ActionExecuted"},"SourceContext":"Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker","RequestId":"0HNG473QJG7AA:0000000F","RequestPath":"/api/Wonders","ConnectionId":"0HNG473QJG7AA"}}
|
||||||
|
{"Timestamp":"2025-10-05T21:01:37.8821295+03:00","Level":"Information","MessageTemplate":"Executed endpoint '{EndpointName}'","TraceId":"57e63c1823f8ed4afb0037c0f1de724f","SpanId":"7643fe61c05efc89","Properties":{"EndpointName":"Ghaymah.WondersAPI.Controllers.WondersController.Create (Ghaymah.WondersAPI)","EventId":{"Id":1,"Name":"ExecutedEndpoint"},"SourceContext":"Microsoft.AspNetCore.Routing.EndpointMiddleware","RequestId":"0HNG473QJG7AA:0000000F","RequestPath":"/api/Wonders","ConnectionId":"0HNG473QJG7AA"}}
|
||||||
|
{"Timestamp":"2025-10-05T21:01:37.8873911+03:00","Level":"Information","MessageTemplate":"Request finished {Protocol} {Method} {Scheme}://{Host}{PathBase}{Path}{QueryString} - {StatusCode} {ContentLength} {ContentType} {ElapsedMilliseconds}ms","TraceId":"57e63c1823f8ed4afb0037c0f1de724f","SpanId":"7643fe61c05efc89","Properties":{"ElapsedMilliseconds":41.9692,"StatusCode":201,"ContentType":"application/json; charset=utf-8","ContentLength":null,"Protocol":"HTTP/2","Method":"POST","Scheme":"https","Host":"localhost:7247","PathBase":"","Path":"/api/Wonders","QueryString":"","EventId":{"Id":2},"SourceContext":"Microsoft.AspNetCore.Hosting.Diagnostics","RequestId":"0HNG473QJG7AA:0000000F","RequestPath":"/api/Wonders","ConnectionId":"0HNG473QJG7AA"}}
|
||||||
|
{"Timestamp":"2025-10-05T21:01:43.6647773+03:00","Level":"Information","MessageTemplate":"Request starting {Protocol} {Method} {Scheme}://{Host}{PathBase}{Path}{QueryString} - {ContentType} {ContentLength}","TraceId":"d8be60b5c779a912db141c0ff3e4813e","SpanId":"d09bb3bf5f7e0ee3","Properties":{"Protocol":"HTTP/2","Method":"POST","ContentType":"application/json","ContentLength":144,"Scheme":"https","Host":"localhost:7247","PathBase":"","Path":"/api/Wonders","QueryString":"","EventId":{"Id":1},"SourceContext":"Microsoft.AspNetCore.Hosting.Diagnostics","RequestId":"0HNG473QJG7AA:00000011","RequestPath":"/api/Wonders","ConnectionId":"0HNG473QJG7AA"}}
|
||||||
|
{"Timestamp":"2025-10-05T21:01:43.6750739+03:00","Level":"Information","MessageTemplate":"Executing endpoint '{EndpointName}'","TraceId":"d8be60b5c779a912db141c0ff3e4813e","SpanId":"d09bb3bf5f7e0ee3","Properties":{"EndpointName":"Ghaymah.WondersAPI.Controllers.WondersController.Create (Ghaymah.WondersAPI)","EventId":{"Name":"ExecutingEndpoint"},"SourceContext":"Microsoft.AspNetCore.Routing.EndpointMiddleware","RequestId":"0HNG473QJG7AA:00000011","RequestPath":"/api/Wonders","ConnectionId":"0HNG473QJG7AA"}}
|
||||||
|
{"Timestamp":"2025-10-05T21:01:43.6779267+03:00","Level":"Information","MessageTemplate":"Route matched with {RouteData}. Executing controller action with signature {MethodInfo} on controller {Controller} ({AssemblyName}).","TraceId":"d8be60b5c779a912db141c0ff3e4813e","SpanId":"d09bb3bf5f7e0ee3","Properties":{"RouteData":"{action = \"Create\", controller = \"Wonders\"}","MethodInfo":"System.Threading.Tasks.Task`1[Microsoft.AspNetCore.Mvc.IActionResult] Create(WondersAPI.Models.Wonder)","Controller":"Ghaymah.WondersAPI.Controllers.WondersController","AssemblyName":"Ghaymah.WondersAPI","EventId":{"Id":102,"Name":"ControllerActionExecuting"},"SourceContext":"Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker","ActionId":"b416f871-295f-4949-897f-73a28da9d202","ActionName":"Ghaymah.WondersAPI.Controllers.WondersController.Create (Ghaymah.WondersAPI)","RequestId":"0HNG473QJG7AA:00000011","RequestPath":"/api/Wonders","ConnectionId":"0HNG473QJG7AA"}}
|
||||||
|
{"Timestamp":"2025-10-05T21:01:43.6832312+03:00","Level":"Error","MessageTemplate":"An exception occurred in the database while saving changes for context type '{contextType}'.{newline}{error}","TraceId":"d8be60b5c779a912db141c0ff3e4813e","SpanId":"d09bb3bf5f7e0ee3","Exception":"System.ArgumentException: An item with the same key has already been added. Key: 8\r\n at System.Collections.Generic.Dictionary`2.TryInsert(TKey key, TValue value, InsertionBehavior behavior)\r\n at System.Collections.Generic.Dictionary`2.Add(TKey key, TValue value)\r\n at Microsoft.EntityFrameworkCore.InMemory.Storage.Internal.InMemoryTable`1.Create(IUpdateEntry entry, IDiagnosticsLogger`1 updateLogger)\r\n at Microsoft.EntityFrameworkCore.InMemory.Storage.Internal.InMemoryStore.ExecuteTransaction(IList`1 entries, IDiagnosticsLogger`1 updateLogger)\r\n at Microsoft.EntityFrameworkCore.InMemory.Storage.Internal.InMemoryDatabase.SaveChangesAsync(IList`1 entries, CancellationToken cancellationToken)\r\n at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.SaveChangesAsync(IList`1 entriesToSave, CancellationToken cancellationToken)\r\n at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.SaveChangesAsync(StateManager stateManager, Boolean acceptAllChangesOnSuccess, CancellationToken cancellationToken)\r\n at Microsoft.EntityFrameworkCore.DbContext.SaveChangesAsync(Boolean acceptAllChangesOnSuccess, CancellationToken cancellationToken)","Properties":{"contextType":"WondersAPI.Data.AppDbContext","newline":"\r\n","error":"System.ArgumentException: An item with the same key has already been added. Key: 8\r\n at System.Collections.Generic.Dictionary`2.TryInsert(TKey key, TValue value, InsertionBehavior behavior)\r\n at System.Collections.Generic.Dictionary`2.Add(TKey key, TValue value)\r\n at Microsoft.EntityFrameworkCore.InMemory.Storage.Internal.InMemoryTable`1.Create(IUpdateEntry entry, IDiagnosticsLogger`1 updateLogger)\r\n at Microsoft.EntityFrameworkCore.InMemory.Storage.Internal.InMemoryStore.ExecuteTransaction(IList`1 entries, IDiagnosticsLogger`1 updateLogger)\r\n at Microsoft.EntityFrameworkCore.InMemory.Storage.Internal.InMemoryDatabase.SaveChangesAsync(IList`1 entries, CancellationToken cancellationToken)\r\n at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.SaveChangesAsync(IList`1 entriesToSave, CancellationToken cancellationToken)\r\n at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.SaveChangesAsync(StateManager stateManager, Boolean acceptAllChangesOnSuccess, CancellationToken cancellationToken)\r\n at Microsoft.EntityFrameworkCore.DbContext.SaveChangesAsync(Boolean acceptAllChangesOnSuccess, CancellationToken cancellationToken)","EventId":{"Id":10000,"Name":"Microsoft.EntityFrameworkCore.Update.SaveChangesFailed"},"SourceContext":"Microsoft.EntityFrameworkCore.Update","ActionId":"b416f871-295f-4949-897f-73a28da9d202","ActionName":"Ghaymah.WondersAPI.Controllers.WondersController.Create (Ghaymah.WondersAPI)","RequestId":"0HNG473QJG7AA:00000011","RequestPath":"/api/Wonders","ConnectionId":"0HNG473QJG7AA"}}
|
||||||
|
{"Timestamp":"2025-10-05T21:01:43.6893276+03:00","Level":"Information","MessageTemplate":"Executed action {ActionName} in {ElapsedMilliseconds}ms","TraceId":"d8be60b5c779a912db141c0ff3e4813e","SpanId":"d09bb3bf5f7e0ee3","Properties":{"ActionName":"Ghaymah.WondersAPI.Controllers.WondersController.Create (Ghaymah.WondersAPI)","ElapsedMilliseconds":7.2606,"EventId":{"Id":105,"Name":"ActionExecuted"},"SourceContext":"Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker","RequestId":"0HNG473QJG7AA:00000011","RequestPath":"/api/Wonders","ConnectionId":"0HNG473QJG7AA"}}
|
||||||
|
{"Timestamp":"2025-10-05T21:01:43.6917256+03:00","Level":"Information","MessageTemplate":"Executed endpoint '{EndpointName}'","TraceId":"d8be60b5c779a912db141c0ff3e4813e","SpanId":"d09bb3bf5f7e0ee3","Properties":{"EndpointName":"Ghaymah.WondersAPI.Controllers.WondersController.Create (Ghaymah.WondersAPI)","EventId":{"Id":1,"Name":"ExecutedEndpoint"},"SourceContext":"Microsoft.AspNetCore.Routing.EndpointMiddleware","RequestId":"0HNG473QJG7AA:00000011","RequestPath":"/api/Wonders","ConnectionId":"0HNG473QJG7AA"}}
|
||||||
|
{"Timestamp":"2025-10-05T21:01:43.6938124+03:00","Level":"Error","MessageTemplate":"An unhandled exception has occurred while executing the request.","TraceId":"d8be60b5c779a912db141c0ff3e4813e","SpanId":"d09bb3bf5f7e0ee3","Exception":"System.ArgumentException: An item with the same key has already been added. Key: 8\r\n at System.Collections.Generic.Dictionary`2.TryInsert(TKey key, TValue value, InsertionBehavior behavior)\r\n at System.Collections.Generic.Dictionary`2.Add(TKey key, TValue value)\r\n at Microsoft.EntityFrameworkCore.InMemory.Storage.Internal.InMemoryTable`1.Create(IUpdateEntry entry, IDiagnosticsLogger`1 updateLogger)\r\n at Microsoft.EntityFrameworkCore.InMemory.Storage.Internal.InMemoryStore.ExecuteTransaction(IList`1 entries, IDiagnosticsLogger`1 updateLogger)\r\n at Microsoft.EntityFrameworkCore.InMemory.Storage.Internal.InMemoryDatabase.SaveChangesAsync(IList`1 entries, CancellationToken cancellationToken)\r\n at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.SaveChangesAsync(IList`1 entriesToSave, CancellationToken cancellationToken)\r\n at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.SaveChangesAsync(StateManager stateManager, Boolean acceptAllChangesOnSuccess, CancellationToken cancellationToken)\r\n at Microsoft.EntityFrameworkCore.DbContext.SaveChangesAsync(Boolean acceptAllChangesOnSuccess, CancellationToken cancellationToken)\r\n at Microsoft.EntityFrameworkCore.DbContext.SaveChangesAsync(Boolean acceptAllChangesOnSuccess, CancellationToken cancellationToken)\r\n at Ghaymah.WondersAPI.Controllers.WondersController.Create(Wonder wonder) in D:\\WebApplication1\\Controllers\\WondersController.cs:line 48\r\n at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.TaskOfIActionResultExecutor.Execute(ActionContext actionContext, IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)\r\n at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeActionMethodAsync>g__Awaited|12_0(ControllerActionInvoker invoker, ValueTask`1 actionResultValueTask)\r\n at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeNextActionFilterAsync>g__Awaited|10_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)\r\n at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)\r\n at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)\r\n at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeInnerFilterAsync()\r\n--- End of stack trace from previous location ---\r\n at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeFilterPipelineAsync>g__Awaited|20_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)\r\n at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Logged|17_1(ResourceInvoker invoker)\r\n at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Logged|17_1(ResourceInvoker invoker)\r\n at Microsoft.AspNetCore.Routing.EndpointMiddleware.<Invoke>g__AwaitRequestTask|7_0(Endpoint endpoint, Task requestTask, ILogger logger)\r\n at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)\r\n at Swashbuckle.AspNetCore.SwaggerUI.SwaggerUIMiddleware.Invoke(HttpContext httpContext)\r\n at Swashbuckle.AspNetCore.Swagger.SwaggerMiddleware.Invoke(HttpContext httpContext, ISwaggerProvider swaggerProvider)\r\n at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)\r\n at Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddlewareImpl.Invoke(HttpContext context)","Properties":{"EventId":{"Id":1,"Name":"UnhandledException"},"SourceContext":"Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware","RequestId":"0HNG473QJG7AA:00000011","RequestPath":"/api/Wonders","ConnectionId":"0HNG473QJG7AA"}}
|
||||||
|
{"Timestamp":"2025-10-05T21:01:43.7049442+03:00","Level":"Information","MessageTemplate":"Request finished {Protocol} {Method} {Scheme}://{Host}{PathBase}{Path}{QueryString} - {StatusCode} {ContentLength} {ContentType} {ElapsedMilliseconds}ms","TraceId":"d8be60b5c779a912db141c0ff3e4813e","SpanId":"d09bb3bf5f7e0ee3","Properties":{"ElapsedMilliseconds":40.152,"StatusCode":500,"ContentType":"text/plain; charset=utf-8","ContentLength":null,"Protocol":"HTTP/2","Method":"POST","Scheme":"https","Host":"localhost:7247","PathBase":"","Path":"/api/Wonders","QueryString":"","EventId":{"Id":2},"SourceContext":"Microsoft.AspNetCore.Hosting.Diagnostics","RequestId":"0HNG473QJG7AA:00000011","RequestPath":"/api/Wonders","ConnectionId":"0HNG473QJG7AA"}}
|
||||||
|
{"Timestamp":"2025-10-05T21:01:50.7734550+03:00","Level":"Information","MessageTemplate":"Request starting {Protocol} {Method} {Scheme}://{Host}{PathBase}{Path}{QueryString} - {ContentType} {ContentLength}","TraceId":"25864c94a4197fc727d63a7e95cfeac9","SpanId":"d223f923d8b85a0d","Properties":{"Protocol":"HTTP/2","Method":"GET","ContentType":null,"ContentLength":null,"Scheme":"https","Host":"localhost:7247","PathBase":"","Path":"/api/Wonders","QueryString":"","EventId":{"Id":1},"SourceContext":"Microsoft.AspNetCore.Hosting.Diagnostics","RequestId":"0HNG473QJG7AA:00000013","RequestPath":"/api/Wonders","ConnectionId":"0HNG473QJG7AA"}}
|
||||||
|
{"Timestamp":"2025-10-05T21:01:50.7780523+03:00","Level":"Information","MessageTemplate":"Executing endpoint '{EndpointName}'","TraceId":"25864c94a4197fc727d63a7e95cfeac9","SpanId":"d223f923d8b85a0d","Properties":{"EndpointName":"Ghaymah.WondersAPI.Controllers.WondersController.GetAll (Ghaymah.WondersAPI)","EventId":{"Name":"ExecutingEndpoint"},"SourceContext":"Microsoft.AspNetCore.Routing.EndpointMiddleware","RequestId":"0HNG473QJG7AA:00000013","RequestPath":"/api/Wonders","ConnectionId":"0HNG473QJG7AA"}}
|
||||||
|
{"Timestamp":"2025-10-05T21:01:50.7798667+03:00","Level":"Information","MessageTemplate":"Route matched with {RouteData}. Executing controller action with signature {MethodInfo} on controller {Controller} ({AssemblyName}).","TraceId":"25864c94a4197fc727d63a7e95cfeac9","SpanId":"d223f923d8b85a0d","Properties":{"RouteData":"{action = \"GetAll\", controller = \"Wonders\"}","MethodInfo":"System.Threading.Tasks.Task`1[Microsoft.AspNetCore.Mvc.IActionResult] GetAll()","Controller":"Ghaymah.WondersAPI.Controllers.WondersController","AssemblyName":"Ghaymah.WondersAPI","EventId":{"Id":102,"Name":"ControllerActionExecuting"},"SourceContext":"Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker","ActionId":"e5649039-ffd3-46d6-b2b3-97007b8e5d9c","ActionName":"Ghaymah.WondersAPI.Controllers.WondersController.GetAll (Ghaymah.WondersAPI)","RequestId":"0HNG473QJG7AA:00000013","RequestPath":"/api/Wonders","ConnectionId":"0HNG473QJG7AA"}}
|
||||||
|
{"Timestamp":"2025-10-05T21:01:50.7876686+03:00","Level":"Information","MessageTemplate":"Fetched {Count} wonders from database","TraceId":"25864c94a4197fc727d63a7e95cfeac9","SpanId":"d223f923d8b85a0d","Properties":{"Count":8,"SourceContext":"Ghaymah.WondersAPI.Controllers.WondersController","ActionId":"e5649039-ffd3-46d6-b2b3-97007b8e5d9c","ActionName":"Ghaymah.WondersAPI.Controllers.WondersController.GetAll (Ghaymah.WondersAPI)","RequestId":"0HNG473QJG7AA:00000013","RequestPath":"/api/Wonders","ConnectionId":"0HNG473QJG7AA"}}
|
||||||
|
{"Timestamp":"2025-10-05T21:01:50.7902925+03:00","Level":"Information","MessageTemplate":"Executing {ObjectResultType}, writing value of type '{Type}'.","TraceId":"25864c94a4197fc727d63a7e95cfeac9","SpanId":"d223f923d8b85a0d","Properties":{"ObjectResultType":"OkObjectResult","Type":"System.Collections.Generic.List`1[[WondersAPI.Models.Wonder, Ghaymah.WondersAPI, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]","EventId":{"Id":1,"Name":"ObjectResultExecuting"},"SourceContext":"Microsoft.AspNetCore.Mvc.Infrastructure.ObjectResultExecutor","ActionId":"e5649039-ffd3-46d6-b2b3-97007b8e5d9c","ActionName":"Ghaymah.WondersAPI.Controllers.WondersController.GetAll (Ghaymah.WondersAPI)","RequestId":"0HNG473QJG7AA:00000013","RequestPath":"/api/Wonders","ConnectionId":"0HNG473QJG7AA"}}
|
||||||
|
{"Timestamp":"2025-10-05T21:01:50.7925284+03:00","Level":"Information","MessageTemplate":"Executed action {ActionName} in {ElapsedMilliseconds}ms","TraceId":"25864c94a4197fc727d63a7e95cfeac9","SpanId":"d223f923d8b85a0d","Properties":{"ActionName":"Ghaymah.WondersAPI.Controllers.WondersController.GetAll (Ghaymah.WondersAPI)","ElapsedMilliseconds":9.9947,"EventId":{"Id":105,"Name":"ActionExecuted"},"SourceContext":"Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker","RequestId":"0HNG473QJG7AA:00000013","RequestPath":"/api/Wonders","ConnectionId":"0HNG473QJG7AA"}}
|
||||||
|
{"Timestamp":"2025-10-05T21:01:50.7949020+03:00","Level":"Information","MessageTemplate":"Executed endpoint '{EndpointName}'","TraceId":"25864c94a4197fc727d63a7e95cfeac9","SpanId":"d223f923d8b85a0d","Properties":{"EndpointName":"Ghaymah.WondersAPI.Controllers.WondersController.GetAll (Ghaymah.WondersAPI)","EventId":{"Id":1,"Name":"ExecutedEndpoint"},"SourceContext":"Microsoft.AspNetCore.Routing.EndpointMiddleware","RequestId":"0HNG473QJG7AA:00000013","RequestPath":"/api/Wonders","ConnectionId":"0HNG473QJG7AA"}}
|
||||||
|
{"Timestamp":"2025-10-05T21:01:50.7968049+03:00","Level":"Information","MessageTemplate":"Request finished {Protocol} {Method} {Scheme}://{Host}{PathBase}{Path}{QueryString} - {StatusCode} {ContentLength} {ContentType} {ElapsedMilliseconds}ms","TraceId":"25864c94a4197fc727d63a7e95cfeac9","SpanId":"d223f923d8b85a0d","Properties":{"ElapsedMilliseconds":23.4101,"StatusCode":200,"ContentType":"application/json; charset=utf-8","ContentLength":null,"Protocol":"HTTP/2","Method":"GET","Scheme":"https","Host":"localhost:7247","PathBase":"","Path":"/api/Wonders","QueryString":"","EventId":{"Id":2},"SourceContext":"Microsoft.AspNetCore.Hosting.Diagnostics","RequestId":"0HNG473QJG7AA:00000013","RequestPath":"/api/Wonders","ConnectionId":"0HNG473QJG7AA"}}
|
||||||
|
{"Timestamp":"2025-10-05T21:02:15.2710105+03:00","Level":"Information","MessageTemplate":"Request starting {Protocol} {Method} {Scheme}://{Host}{PathBase}{Path}{QueryString} - {ContentType} {ContentLength}","TraceId":"bc1a1941a3f5665181256569f425d784","SpanId":"c92119d25df98d03","Properties":{"Protocol":"HTTP/2","Method":"POST","ContentType":"application/json","ContentLength":145,"Scheme":"https","Host":"localhost:7247","PathBase":"","Path":"/api/Wonders","QueryString":"","EventId":{"Id":1},"SourceContext":"Microsoft.AspNetCore.Hosting.Diagnostics","RequestId":"0HNG473QJG7AA:00000015","RequestPath":"/api/Wonders","ConnectionId":"0HNG473QJG7AA"}}
|
||||||
|
{"Timestamp":"2025-10-05T21:02:15.2748379+03:00","Level":"Information","MessageTemplate":"Executing endpoint '{EndpointName}'","TraceId":"bc1a1941a3f5665181256569f425d784","SpanId":"c92119d25df98d03","Properties":{"EndpointName":"Ghaymah.WondersAPI.Controllers.WondersController.Create (Ghaymah.WondersAPI)","EventId":{"Name":"ExecutingEndpoint"},"SourceContext":"Microsoft.AspNetCore.Routing.EndpointMiddleware","RequestId":"0HNG473QJG7AA:00000015","RequestPath":"/api/Wonders","ConnectionId":"0HNG473QJG7AA"}}
|
||||||
|
{"Timestamp":"2025-10-05T21:02:15.2758451+03:00","Level":"Information","MessageTemplate":"Route matched with {RouteData}. Executing controller action with signature {MethodInfo} on controller {Controller} ({AssemblyName}).","TraceId":"bc1a1941a3f5665181256569f425d784","SpanId":"c92119d25df98d03","Properties":{"RouteData":"{action = \"Create\", controller = \"Wonders\"}","MethodInfo":"System.Threading.Tasks.Task`1[Microsoft.AspNetCore.Mvc.IActionResult] Create(WondersAPI.Models.Wonder)","Controller":"Ghaymah.WondersAPI.Controllers.WondersController","AssemblyName":"Ghaymah.WondersAPI","EventId":{"Id":102,"Name":"ControllerActionExecuting"},"SourceContext":"Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker","ActionId":"b416f871-295f-4949-897f-73a28da9d202","ActionName":"Ghaymah.WondersAPI.Controllers.WondersController.Create (Ghaymah.WondersAPI)","RequestId":"0HNG473QJG7AA:00000015","RequestPath":"/api/Wonders","ConnectionId":"0HNG473QJG7AA"}}
|
||||||
|
{"Timestamp":"2025-10-05T21:02:15.2788088+03:00","Level":"Information","MessageTemplate":"Saved {count} entities to in-memory store.","TraceId":"bc1a1941a3f5665181256569f425d784","SpanId":"c92119d25df98d03","Properties":{"count":1,"EventId":{"Id":30100,"Name":"Microsoft.EntityFrameworkCore.Update.ChangesSaved"},"SourceContext":"Microsoft.EntityFrameworkCore.Update","ActionId":"b416f871-295f-4949-897f-73a28da9d202","ActionName":"Ghaymah.WondersAPI.Controllers.WondersController.Create (Ghaymah.WondersAPI)","RequestId":"0HNG473QJG7AA:00000015","RequestPath":"/api/Wonders","ConnectionId":"0HNG473QJG7AA"}}
|
||||||
|
{"Timestamp":"2025-10-05T21:02:15.2802682+03:00","Level":"Information","MessageTemplate":"Created new wonder: {Name}","TraceId":"bc1a1941a3f5665181256569f425d784","SpanId":"c92119d25df98d03","Properties":{"Name":"string","SourceContext":"Ghaymah.WondersAPI.Controllers.WondersController","ActionId":"b416f871-295f-4949-897f-73a28da9d202","ActionName":"Ghaymah.WondersAPI.Controllers.WondersController.Create (Ghaymah.WondersAPI)","RequestId":"0HNG473QJG7AA:00000015","RequestPath":"/api/Wonders","ConnectionId":"0HNG473QJG7AA"}}
|
||||||
|
{"Timestamp":"2025-10-05T21:02:15.2816853+03:00","Level":"Information","MessageTemplate":"Executing {ObjectResultType}, writing value of type '{Type}'.","TraceId":"bc1a1941a3f5665181256569f425d784","SpanId":"c92119d25df98d03","Properties":{"ObjectResultType":"CreatedAtActionResult","Type":"WondersAPI.Models.Wonder","EventId":{"Id":1,"Name":"ObjectResultExecuting"},"SourceContext":"Microsoft.AspNetCore.Mvc.Infrastructure.ObjectResultExecutor","ActionId":"b416f871-295f-4949-897f-73a28da9d202","ActionName":"Ghaymah.WondersAPI.Controllers.WondersController.Create (Ghaymah.WondersAPI)","RequestId":"0HNG473QJG7AA:00000015","RequestPath":"/api/Wonders","ConnectionId":"0HNG473QJG7AA"}}
|
||||||
|
{"Timestamp":"2025-10-05T21:02:15.2858617+03:00","Level":"Information","MessageTemplate":"Executed action {ActionName} in {ElapsedMilliseconds}ms","TraceId":"bc1a1941a3f5665181256569f425d784","SpanId":"c92119d25df98d03","Properties":{"ActionName":"Ghaymah.WondersAPI.Controllers.WondersController.Create (Ghaymah.WondersAPI)","ElapsedMilliseconds":7.9125,"EventId":{"Id":105,"Name":"ActionExecuted"},"SourceContext":"Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker","RequestId":"0HNG473QJG7AA:00000015","RequestPath":"/api/Wonders","ConnectionId":"0HNG473QJG7AA"}}
|
||||||
|
{"Timestamp":"2025-10-05T21:02:15.2893868+03:00","Level":"Information","MessageTemplate":"Executed endpoint '{EndpointName}'","TraceId":"bc1a1941a3f5665181256569f425d784","SpanId":"c92119d25df98d03","Properties":{"EndpointName":"Ghaymah.WondersAPI.Controllers.WondersController.Create (Ghaymah.WondersAPI)","EventId":{"Id":1,"Name":"ExecutedEndpoint"},"SourceContext":"Microsoft.AspNetCore.Routing.EndpointMiddleware","RequestId":"0HNG473QJG7AA:00000015","RequestPath":"/api/Wonders","ConnectionId":"0HNG473QJG7AA"}}
|
||||||
|
{"Timestamp":"2025-10-05T21:02:15.2981489+03:00","Level":"Information","MessageTemplate":"Request finished {Protocol} {Method} {Scheme}://{Host}{PathBase}{Path}{QueryString} - {StatusCode} {ContentLength} {ContentType} {ElapsedMilliseconds}ms","TraceId":"bc1a1941a3f5665181256569f425d784","SpanId":"c92119d25df98d03","Properties":{"ElapsedMilliseconds":27.0407,"StatusCode":201,"ContentType":"application/json; charset=utf-8","ContentLength":null,"Protocol":"HTTP/2","Method":"POST","Scheme":"https","Host":"localhost:7247","PathBase":"","Path":"/api/Wonders","QueryString":"","EventId":{"Id":2},"SourceContext":"Microsoft.AspNetCore.Hosting.Diagnostics","RequestId":"0HNG473QJG7AA:00000015","RequestPath":"/api/Wonders","ConnectionId":"0HNG473QJG7AA"}}
|
14
Models/Wonder.cs
Normal file
14
Models/Wonder.cs
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
namespace WondersAPI.Models
|
||||||
|
{
|
||||||
|
public class Wonder
|
||||||
|
{
|
||||||
|
public int Id { get; set; }
|
||||||
|
public string Name { get; set; } = string.Empty;
|
||||||
|
public string Country { get; set; } = string.Empty;
|
||||||
|
public string Era { get; set; } = string.Empty;
|
||||||
|
public string Type { get; set; } = string.Empty;
|
||||||
|
public int DiscoveryYear { get; set; }
|
||||||
|
|
||||||
|
public string Description { get; set; } = string.Empty;
|
||||||
|
}
|
||||||
|
}
|
72
Program.cs
Normal file
72
Program.cs
Normal file
@@ -0,0 +1,72 @@
|
|||||||
|
using Microsoft.EntityFrameworkCore;
|
||||||
|
using WondersAPI.Data;
|
||||||
|
using WondersAPI.Models;
|
||||||
|
using Serilog;
|
||||||
|
using Serilog.Formatting.Json;
|
||||||
|
|
||||||
|
var builder = WebApplication.CreateBuilder(args);
|
||||||
|
|
||||||
|
builder.Logging.ClearProviders();
|
||||||
|
builder.Logging.AddSimpleConsole(options =>
|
||||||
|
{
|
||||||
|
options.IncludeScopes = true;
|
||||||
|
options.SingleLine = true;
|
||||||
|
options.TimestampFormat = "yyyy-MM-dd HH:mm:ss ";
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
var logFilePath = Path.Combine(Directory.GetCurrentDirectory(), "Logs", $"app-log{DateTime.Now:yyyyMMdd}.json");
|
||||||
|
Directory.CreateDirectory(Path.GetDirectoryName(logFilePath)!);
|
||||||
|
|
||||||
|
|
||||||
|
Log.Logger = new LoggerConfiguration()
|
||||||
|
.WriteTo.Console()
|
||||||
|
.WriteTo.File(new JsonFormatter(), logFilePath, rollingInterval: RollingInterval.Day)
|
||||||
|
.CreateLogger();
|
||||||
|
|
||||||
|
builder.Host.UseSerilog();
|
||||||
|
|
||||||
|
builder.Services.AddDbContext<AppDbContext>(options =>
|
||||||
|
options.UseInMemoryDatabase("WondersDb"));
|
||||||
|
|
||||||
|
|
||||||
|
builder.Services.AddControllers();
|
||||||
|
builder.Services.AddEndpointsApiExplorer();
|
||||||
|
builder.Services.AddSwaggerGen();
|
||||||
|
|
||||||
|
var app = builder.Build();
|
||||||
|
|
||||||
|
using (var scope = app.Services.CreateScope())
|
||||||
|
{
|
||||||
|
var db = scope.ServiceProvider.GetRequiredService<AppDbContext>();
|
||||||
|
if (!db.Wonders.Any())
|
||||||
|
{
|
||||||
|
var jsonPath = Path.Combine(Directory.GetCurrentDirectory(), "seed-data.json");
|
||||||
|
if (File.Exists(jsonPath))
|
||||||
|
{
|
||||||
|
var json = File.ReadAllText(jsonPath);
|
||||||
|
var wonders = System.Text.Json.JsonSerializer.Deserialize<List<Wonder>>(json) ?? new();
|
||||||
|
db.Wonders.AddRange(wonders);
|
||||||
|
db.SaveChanges();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Console.WriteLine(" seed-data.json not found. No data was seeded.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
var logger = app.Services.GetRequiredService<ILogger<Program>>();
|
||||||
|
logger.LogInformation(" Wonders API application started successfully at {time}", DateTime.Now);
|
||||||
|
|
||||||
|
if (app.Environment.IsDevelopment())
|
||||||
|
{
|
||||||
|
app.UseSwagger();
|
||||||
|
app.UseSwaggerUI();
|
||||||
|
}
|
||||||
|
|
||||||
|
app.UseHttpsRedirection();
|
||||||
|
app.UseAuthorization();
|
||||||
|
app.MapControllers();
|
||||||
|
|
||||||
|
app.Run();
|
41
Properties/launchSettings.json
Normal file
41
Properties/launchSettings.json
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
{
|
||||||
|
"$schema": "http://json.schemastore.org/launchsettings.json",
|
||||||
|
"iisSettings": {
|
||||||
|
"windowsAuthentication": false,
|
||||||
|
"anonymousAuthentication": true,
|
||||||
|
"iisExpress": {
|
||||||
|
"applicationUrl": "http://localhost:45234",
|
||||||
|
"sslPort": 44341
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"profiles": {
|
||||||
|
"http": {
|
||||||
|
"commandName": "Project",
|
||||||
|
"dotnetRunMessages": true,
|
||||||
|
"launchBrowser": true,
|
||||||
|
"launchUrl": "swagger",
|
||||||
|
"applicationUrl": "http://localhost:5004",
|
||||||
|
"environmentVariables": {
|
||||||
|
"ASPNETCORE_ENVIRONMENT": "Development"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"https": {
|
||||||
|
"commandName": "Project",
|
||||||
|
"dotnetRunMessages": true,
|
||||||
|
"launchBrowser": true,
|
||||||
|
"launchUrl": "swagger",
|
||||||
|
"applicationUrl": "https://localhost:7247;http://localhost:5004",
|
||||||
|
"environmentVariables": {
|
||||||
|
"ASPNETCORE_ENVIRONMENT": "Development"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"IIS Express": {
|
||||||
|
"commandName": "IISExpress",
|
||||||
|
"launchBrowser": true,
|
||||||
|
"launchUrl": "swagger",
|
||||||
|
"environmentVariables": {
|
||||||
|
"ASPNETCORE_ENVIRONMENT": "Development"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
8
appsettings.Development.json
Normal file
8
appsettings.Development.json
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
{
|
||||||
|
"Logging": {
|
||||||
|
"LogLevel": {
|
||||||
|
"Default": "Information",
|
||||||
|
"Microsoft.AspNetCore": "Warning"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
9
appsettings.json
Normal file
9
appsettings.json
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
{
|
||||||
|
"Logging": {
|
||||||
|
"LogLevel": {
|
||||||
|
"Default": "Information",
|
||||||
|
"Microsoft.AspNetCore": "Warning"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"AllowedHosts": "*"
|
||||||
|
}
|
56
seed-data.json
Normal file
56
seed-data.json
Normal file
@@ -0,0 +1,56 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"Id": 1,
|
||||||
|
"Name": "Great Pyramid of Giza",
|
||||||
|
"Country": "Egypt",
|
||||||
|
"Era": "Ancient Egypt",
|
||||||
|
"Type": "Pyramid",
|
||||||
|
"DiscoveryYear": -2560,
|
||||||
|
"Description": "The only surviving wonder of the original Seven Wonders of the Ancient World."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": 2,
|
||||||
|
"Name": "Parthenon",
|
||||||
|
"Country": "Greece",
|
||||||
|
"Era": "Classical Greece",
|
||||||
|
"Type": "Temple",
|
||||||
|
"DiscoveryYear": -447,
|
||||||
|
"Description": "A temple on the Athenian Acropolis dedicated to the goddess Athena."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": 3,
|
||||||
|
"Name": "Colosseum",
|
||||||
|
"Country": "Italy",
|
||||||
|
"Era": "Roman Empire",
|
||||||
|
"Type": "Amphitheater",
|
||||||
|
"DiscoveryYear": 80,
|
||||||
|
"Description": "An iconic amphitheater in Rome used for gladiatorial contests and public spectacles."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": 4,
|
||||||
|
"Name": "Hanging Gardens of Babylon",
|
||||||
|
"Country": "Iraq",
|
||||||
|
"Era": "Mesopotamia",
|
||||||
|
"Type": "Garden",
|
||||||
|
"DiscoveryYear": -600,
|
||||||
|
"Description": "Legendary terraced gardens built in the ancient city of Babylon."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": 5,
|
||||||
|
"Name": "Taj Mahal",
|
||||||
|
"Country": "India",
|
||||||
|
"Era": "Mughal Empire",
|
||||||
|
"Type": "Palace",
|
||||||
|
"DiscoveryYear": 1653,
|
||||||
|
"Description": "A white marble mausoleum built by Emperor Shah Jahan in memory of his wife Mumtaz Mahal."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Id": 6,
|
||||||
|
"Name": "Great Wall of China",
|
||||||
|
"Country": "China",
|
||||||
|
"Era": "Han Dynasty",
|
||||||
|
"Type": "Wall",
|
||||||
|
"DiscoveryYear": -200,
|
||||||
|
"Description": "A vast series of fortifications built to protect China from invasions."
|
||||||
|
}
|
||||||
|
]
|
المرجع في مشكلة جديدة
حظر مستخدم