mirror of
https://github.com/azaion/flights.git
synced 2026-04-22 05:26:32 +00:00
Initial commit
Made-with: Cursor
This commit is contained in:
@@ -0,0 +1,31 @@
|
|||||||
|
using System.Text;
|
||||||
|
using Microsoft.AspNetCore.Authentication.JwtBearer;
|
||||||
|
using Microsoft.IdentityModel.Tokens;
|
||||||
|
|
||||||
|
namespace Azaion.Flights.Auth;
|
||||||
|
|
||||||
|
public static class JwtExtensions
|
||||||
|
{
|
||||||
|
public static IServiceCollection AddJwtAuth(this IServiceCollection services, string jwtSecret)
|
||||||
|
{
|
||||||
|
services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
|
||||||
|
.AddJwtBearer(options =>
|
||||||
|
{
|
||||||
|
options.TokenValidationParameters = new TokenValidationParameters
|
||||||
|
{
|
||||||
|
ValidateIssuerSigningKey = true,
|
||||||
|
IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(jwtSecret)),
|
||||||
|
ValidateIssuer = false,
|
||||||
|
ValidateAudience = false,
|
||||||
|
ValidateLifetime = true,
|
||||||
|
ClockSkew = TimeSpan.FromMinutes(1)
|
||||||
|
};
|
||||||
|
});
|
||||||
|
|
||||||
|
services.AddAuthorizationBuilder()
|
||||||
|
.AddPolicy("FL", p => p.RequireClaim("permissions", "FL"))
|
||||||
|
.AddPolicy("GPS", p => p.RequireClaim("permissions", "GPS"));
|
||||||
|
|
||||||
|
return services;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
<Project Sdk="Microsoft.NET.Sdk.Web">
|
||||||
|
<PropertyGroup>
|
||||||
|
<TargetFramework>net10.0</TargetFramework>
|
||||||
|
<ImplicitUsings>enable</ImplicitUsings>
|
||||||
|
<Nullable>enable</Nullable>
|
||||||
|
</PropertyGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<PackageReference Include="linq2db" Version="6.2.0" />
|
||||||
|
<PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="10.0.5" />
|
||||||
|
<PackageReference Include="Npgsql" Version="10.0.2" />
|
||||||
|
<PackageReference Include="Swashbuckle.AspNetCore" Version="10.1.5" />
|
||||||
|
</ItemGroup>
|
||||||
|
</Project>
|
||||||
@@ -0,0 +1,54 @@
|
|||||||
|
using Microsoft.AspNetCore.Authorization;
|
||||||
|
using Microsoft.AspNetCore.Mvc;
|
||||||
|
using Azaion.Flights.DTOs;
|
||||||
|
using Azaion.Flights.Services;
|
||||||
|
|
||||||
|
namespace Azaion.Flights.Controllers;
|
||||||
|
|
||||||
|
[ApiController]
|
||||||
|
[Route("aircrafts")]
|
||||||
|
[Authorize(Policy = "FL")]
|
||||||
|
public class AircraftsController(AircraftService aircraftService) : ControllerBase
|
||||||
|
{
|
||||||
|
[HttpPost]
|
||||||
|
public async Task<IActionResult> Create([FromBody] CreateAircraftRequest request)
|
||||||
|
{
|
||||||
|
var aircraft = await aircraftService.CreateAircraft(request);
|
||||||
|
return Created($"/aircrafts/{aircraft.Id}", aircraft);
|
||||||
|
}
|
||||||
|
|
||||||
|
[HttpPut("{id:guid}")]
|
||||||
|
public async Task<IActionResult> Update(Guid id, [FromBody] UpdateAircraftRequest request)
|
||||||
|
{
|
||||||
|
var aircraft = await aircraftService.UpdateAircraft(id, request);
|
||||||
|
return Ok(aircraft);
|
||||||
|
}
|
||||||
|
|
||||||
|
[HttpDelete("{id:guid}")]
|
||||||
|
public async Task<IActionResult> Delete(Guid id)
|
||||||
|
{
|
||||||
|
await aircraftService.DeleteAircraft(id);
|
||||||
|
return NoContent();
|
||||||
|
}
|
||||||
|
|
||||||
|
[HttpGet]
|
||||||
|
public async Task<IActionResult> GetAll([FromQuery] GetAircraftsQuery query)
|
||||||
|
{
|
||||||
|
var aircrafts = await aircraftService.GetAircrafts(query);
|
||||||
|
return Ok(aircrafts);
|
||||||
|
}
|
||||||
|
|
||||||
|
[HttpGet("{id:guid}")]
|
||||||
|
public async Task<IActionResult> Get(Guid id)
|
||||||
|
{
|
||||||
|
var aircraft = await aircraftService.GetAircraft(id);
|
||||||
|
return Ok(aircraft);
|
||||||
|
}
|
||||||
|
|
||||||
|
[HttpPatch("{id:guid}/default")]
|
||||||
|
public async Task<IActionResult> SetDefault(Guid id, [FromBody] SetDefaultRequest request)
|
||||||
|
{
|
||||||
|
await aircraftService.SetDefault(id, request);
|
||||||
|
return NoContent();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,75 @@
|
|||||||
|
using Microsoft.AspNetCore.Authorization;
|
||||||
|
using Microsoft.AspNetCore.Mvc;
|
||||||
|
using Azaion.Flights.DTOs;
|
||||||
|
using Azaion.Flights.Services;
|
||||||
|
|
||||||
|
namespace Azaion.Flights.Controllers;
|
||||||
|
|
||||||
|
[ApiController]
|
||||||
|
[Route("flights")]
|
||||||
|
[Authorize(Policy = "FL")]
|
||||||
|
public class FlightsController(FlightService flightService, WaypointService waypointService) : ControllerBase
|
||||||
|
{
|
||||||
|
[HttpPost]
|
||||||
|
public async Task<IActionResult> Create([FromBody] CreateFlightRequest request)
|
||||||
|
{
|
||||||
|
var flight = await flightService.CreateFlight(request);
|
||||||
|
return Created($"/flights/{flight.Id}", flight);
|
||||||
|
}
|
||||||
|
|
||||||
|
[HttpPut("{id:guid}")]
|
||||||
|
public async Task<IActionResult> Update(Guid id, [FromBody] UpdateFlightRequest request)
|
||||||
|
{
|
||||||
|
var flight = await flightService.UpdateFlight(id, request);
|
||||||
|
return Ok(flight);
|
||||||
|
}
|
||||||
|
|
||||||
|
[HttpGet("{id:guid}")]
|
||||||
|
public async Task<IActionResult> Get(Guid id)
|
||||||
|
{
|
||||||
|
var flight = await flightService.GetFlight(id);
|
||||||
|
return Ok(flight);
|
||||||
|
}
|
||||||
|
|
||||||
|
[HttpGet]
|
||||||
|
public async Task<IActionResult> GetAll([FromQuery] GetFlightsQuery query)
|
||||||
|
{
|
||||||
|
var result = await flightService.GetFlights(query);
|
||||||
|
return Ok(result);
|
||||||
|
}
|
||||||
|
|
||||||
|
[HttpDelete("{id:guid}")]
|
||||||
|
public async Task<IActionResult> Delete(Guid id)
|
||||||
|
{
|
||||||
|
await flightService.DeleteFlight(id);
|
||||||
|
return NoContent();
|
||||||
|
}
|
||||||
|
|
||||||
|
[HttpPost("{id:guid}/waypoints")]
|
||||||
|
public async Task<IActionResult> CreateWaypoint(Guid id, [FromBody] CreateWaypointRequest request)
|
||||||
|
{
|
||||||
|
var waypoint = await waypointService.CreateWaypoint(id, request);
|
||||||
|
return Created($"/flights/{id}/waypoints/{waypoint.Id}", waypoint);
|
||||||
|
}
|
||||||
|
|
||||||
|
[HttpPut("{id:guid}/waypoints/{waypointId:guid}")]
|
||||||
|
public async Task<IActionResult> UpdateWaypoint(Guid id, Guid waypointId, [FromBody] UpdateWaypointRequest request)
|
||||||
|
{
|
||||||
|
var waypoint = await waypointService.UpdateWaypoint(id, waypointId, request);
|
||||||
|
return Ok(waypoint);
|
||||||
|
}
|
||||||
|
|
||||||
|
[HttpDelete("{id:guid}/waypoints/{waypointId:guid}")]
|
||||||
|
public async Task<IActionResult> DeleteWaypoint(Guid id, Guid waypointId)
|
||||||
|
{
|
||||||
|
await waypointService.DeleteWaypoint(id, waypointId);
|
||||||
|
return NoContent();
|
||||||
|
}
|
||||||
|
|
||||||
|
[HttpGet("{id:guid}/waypoints")]
|
||||||
|
public async Task<IActionResult> GetWaypoints(Guid id)
|
||||||
|
{
|
||||||
|
var waypoints = await waypointService.GetWaypoints(id);
|
||||||
|
return Ok(waypoints);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
using Azaion.Flights.Enums;
|
||||||
|
|
||||||
|
namespace Azaion.Flights.DTOs;
|
||||||
|
|
||||||
|
public class CreateAircraftRequest
|
||||||
|
{
|
||||||
|
public AircraftType Type { get; set; }
|
||||||
|
public string Model { get; set; } = string.Empty;
|
||||||
|
public string Name { get; set; } = string.Empty;
|
||||||
|
public FuelType FuelType { get; set; }
|
||||||
|
public decimal BatteryCapacity { get; set; }
|
||||||
|
public decimal EngineConsumption { get; set; }
|
||||||
|
public decimal EngineConsumptionIdle { get; set; }
|
||||||
|
public bool IsDefault { get; set; }
|
||||||
|
}
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
namespace Azaion.Flights.DTOs;
|
||||||
|
|
||||||
|
public class CreateFlightRequest
|
||||||
|
{
|
||||||
|
public Guid AircraftId { get; set; }
|
||||||
|
public string Name { get; set; } = string.Empty;
|
||||||
|
public DateTime? CreatedDate { get; set; }
|
||||||
|
}
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
using Azaion.Flights.Enums;
|
||||||
|
|
||||||
|
namespace Azaion.Flights.DTOs;
|
||||||
|
|
||||||
|
public class CreateWaypointRequest
|
||||||
|
{
|
||||||
|
public GeoPoint? GeoPoint { get; set; }
|
||||||
|
public WaypointSource WaypointSource { get; set; }
|
||||||
|
public WaypointObjective WaypointObjective { get; set; }
|
||||||
|
public int OrderNum { get; set; }
|
||||||
|
public decimal Height { get; set; }
|
||||||
|
}
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
namespace Azaion.Flights.DTOs;
|
||||||
|
|
||||||
|
public class ErrorResponse
|
||||||
|
{
|
||||||
|
public int StatusCode { get; set; }
|
||||||
|
public string Message { get; set; } = string.Empty;
|
||||||
|
public List<string>? Errors { get; set; }
|
||||||
|
}
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
namespace Azaion.Flights.DTOs;
|
||||||
|
|
||||||
|
public class GeoPoint
|
||||||
|
{
|
||||||
|
public decimal? Lat { get; set; }
|
||||||
|
public decimal? Lon { get; set; }
|
||||||
|
public string? Mgrs { get; set; }
|
||||||
|
}
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
namespace Azaion.Flights.DTOs;
|
||||||
|
|
||||||
|
public class GetAircraftsQuery
|
||||||
|
{
|
||||||
|
public string? Name { get; set; }
|
||||||
|
public bool? IsDefault { get; set; }
|
||||||
|
}
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
namespace Azaion.Flights.DTOs;
|
||||||
|
|
||||||
|
public class GetFlightsQuery
|
||||||
|
{
|
||||||
|
public string? Name { get; set; }
|
||||||
|
public DateTime? FromDate { get; set; }
|
||||||
|
public DateTime? ToDate { get; set; }
|
||||||
|
public int Page { get; set; } = 1;
|
||||||
|
public int PageSize { get; set; } = 20;
|
||||||
|
}
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
namespace Azaion.Flights.DTOs;
|
||||||
|
|
||||||
|
public class PaginatedResponse<T>
|
||||||
|
{
|
||||||
|
public List<T> Items { get; set; } = [];
|
||||||
|
public int TotalCount { get; set; }
|
||||||
|
public int Page { get; set; }
|
||||||
|
public int PageSize { get; set; }
|
||||||
|
}
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
namespace Azaion.Flights.DTOs;
|
||||||
|
|
||||||
|
public class SetDefaultRequest
|
||||||
|
{
|
||||||
|
public bool IsDefault { get; set; }
|
||||||
|
}
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
using Azaion.Flights.Enums;
|
||||||
|
|
||||||
|
namespace Azaion.Flights.DTOs;
|
||||||
|
|
||||||
|
public class UpdateAircraftRequest
|
||||||
|
{
|
||||||
|
public AircraftType? Type { get; set; }
|
||||||
|
public string? Model { get; set; }
|
||||||
|
public string? Name { get; set; }
|
||||||
|
public FuelType? FuelType { get; set; }
|
||||||
|
public decimal? BatteryCapacity { get; set; }
|
||||||
|
public decimal? EngineConsumption { get; set; }
|
||||||
|
public decimal? EngineConsumptionIdle { get; set; }
|
||||||
|
public bool? IsDefault { get; set; }
|
||||||
|
}
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
namespace Azaion.Flights.DTOs;
|
||||||
|
|
||||||
|
public class UpdateFlightRequest
|
||||||
|
{
|
||||||
|
public string? Name { get; set; }
|
||||||
|
public Guid? AircraftId { get; set; }
|
||||||
|
}
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
using Azaion.Flights.Enums;
|
||||||
|
|
||||||
|
namespace Azaion.Flights.DTOs;
|
||||||
|
|
||||||
|
public class UpdateWaypointRequest
|
||||||
|
{
|
||||||
|
public GeoPoint? GeoPoint { get; set; }
|
||||||
|
public WaypointSource WaypointSource { get; set; }
|
||||||
|
public WaypointObjective WaypointObjective { get; set; }
|
||||||
|
public int OrderNum { get; set; }
|
||||||
|
public decimal Height { get; set; }
|
||||||
|
}
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
using LinqToDB;
|
||||||
|
using LinqToDB.Data;
|
||||||
|
using Azaion.Flights.Database.Entities;
|
||||||
|
|
||||||
|
namespace Azaion.Flights.Database;
|
||||||
|
|
||||||
|
public class AppDataConnection(DataOptions options) : DataConnection(options)
|
||||||
|
{
|
||||||
|
public ITable<Aircraft> Aircrafts => this.GetTable<Aircraft>();
|
||||||
|
public ITable<Flight> Flights => this.GetTable<Flight>();
|
||||||
|
public ITable<Waypoint> Waypoints => this.GetTable<Waypoint>();
|
||||||
|
public ITable<Orthophoto> Orthophotos => this.GetTable<Orthophoto>();
|
||||||
|
public ITable<GpsCorrection> GpsCorrections => this.GetTable<GpsCorrection>();
|
||||||
|
public ITable<MapObject> MapObjects => this.GetTable<MapObject>();
|
||||||
|
public ITable<Media> Media => this.GetTable<Media>();
|
||||||
|
public ITable<Annotation> Annotations => this.GetTable<Annotation>();
|
||||||
|
public ITable<Detection> Detections => this.GetTable<Detection>();
|
||||||
|
}
|
||||||
@@ -0,0 +1,88 @@
|
|||||||
|
using LinqToDB.Data;
|
||||||
|
|
||||||
|
namespace Azaion.Flights.Database;
|
||||||
|
|
||||||
|
public static class DatabaseMigrator
|
||||||
|
{
|
||||||
|
public static void Migrate(AppDataConnection db)
|
||||||
|
{
|
||||||
|
db.Execute(Sql);
|
||||||
|
}
|
||||||
|
|
||||||
|
private const string Sql = """
|
||||||
|
CREATE TABLE IF NOT EXISTS aircrafts (
|
||||||
|
id UUID PRIMARY KEY,
|
||||||
|
type INTEGER NOT NULL DEFAULT 0,
|
||||||
|
model TEXT NOT NULL,
|
||||||
|
name TEXT NOT NULL,
|
||||||
|
fuel_type INTEGER NOT NULL DEFAULT 0,
|
||||||
|
battery_capacity NUMERIC NOT NULL DEFAULT 0,
|
||||||
|
engine_consumption NUMERIC NOT NULL DEFAULT 0,
|
||||||
|
engine_consumption_idle NUMERIC NOT NULL DEFAULT 0,
|
||||||
|
is_default BOOLEAN NOT NULL DEFAULT FALSE
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS flights (
|
||||||
|
id UUID PRIMARY KEY,
|
||||||
|
created_date TIMESTAMP NOT NULL DEFAULT NOW(),
|
||||||
|
name TEXT NOT NULL,
|
||||||
|
aircraft_id UUID NOT NULL REFERENCES aircrafts(id)
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS waypoints (
|
||||||
|
id UUID PRIMARY KEY,
|
||||||
|
flight_id UUID NOT NULL REFERENCES flights(id),
|
||||||
|
lat NUMERIC,
|
||||||
|
lon NUMERIC,
|
||||||
|
mgrs TEXT,
|
||||||
|
waypoint_source INTEGER NOT NULL DEFAULT 0,
|
||||||
|
waypoint_objective INTEGER NOT NULL DEFAULT 0,
|
||||||
|
order_num INTEGER NOT NULL DEFAULT 0,
|
||||||
|
height NUMERIC NOT NULL DEFAULT 0
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS orthophotos (
|
||||||
|
id TEXT PRIMARY KEY,
|
||||||
|
flight_id UUID NOT NULL REFERENCES flights(id),
|
||||||
|
name TEXT NOT NULL,
|
||||||
|
path TEXT NOT NULL,
|
||||||
|
lat NUMERIC,
|
||||||
|
lon NUMERIC,
|
||||||
|
mgrs TEXT,
|
||||||
|
uploaded_at TIMESTAMP NOT NULL DEFAULT NOW()
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS gps_corrections (
|
||||||
|
id UUID PRIMARY KEY,
|
||||||
|
flight_id UUID NOT NULL REFERENCES flights(id),
|
||||||
|
waypoint_id UUID NOT NULL REFERENCES waypoints(id),
|
||||||
|
original_gps TEXT NOT NULL,
|
||||||
|
corrected_gps TEXT NOT NULL,
|
||||||
|
applied_at TIMESTAMP NOT NULL DEFAULT NOW()
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS map_objects (
|
||||||
|
id UUID PRIMARY KEY,
|
||||||
|
flight_id UUID NOT NULL REFERENCES flights(id),
|
||||||
|
h3_index TEXT NOT NULL,
|
||||||
|
mgrs TEXT NOT NULL,
|
||||||
|
lat NUMERIC,
|
||||||
|
lon NUMERIC,
|
||||||
|
class_num INTEGER NOT NULL DEFAULT 0,
|
||||||
|
label TEXT NOT NULL DEFAULT '',
|
||||||
|
size_width_m NUMERIC NOT NULL DEFAULT 0,
|
||||||
|
size_length_m NUMERIC NOT NULL DEFAULT 0,
|
||||||
|
confidence NUMERIC NOT NULL DEFAULT 0,
|
||||||
|
object_status INTEGER NOT NULL DEFAULT 0,
|
||||||
|
first_seen_at TIMESTAMP NOT NULL DEFAULT NOW(),
|
||||||
|
last_seen_at TIMESTAMP NOT NULL DEFAULT NOW()
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE INDEX IF NOT EXISTS ix_flights_aircraft_id ON flights(aircraft_id);
|
||||||
|
CREATE INDEX IF NOT EXISTS ix_waypoints_flight_id ON waypoints(flight_id);
|
||||||
|
CREATE INDEX IF NOT EXISTS ix_orthophotos_flight_id ON orthophotos(flight_id);
|
||||||
|
CREATE INDEX IF NOT EXISTS ix_gps_corrections_flight_id ON gps_corrections(flight_id);
|
||||||
|
CREATE INDEX IF NOT EXISTS ix_gps_corrections_waypoint_id ON gps_corrections(waypoint_id);
|
||||||
|
CREATE INDEX IF NOT EXISTS ix_map_objects_flight_id ON map_objects(flight_id);
|
||||||
|
""";
|
||||||
|
}
|
||||||
@@ -0,0 +1,36 @@
|
|||||||
|
using LinqToDB.Mapping;
|
||||||
|
using Azaion.Flights.Enums;
|
||||||
|
|
||||||
|
namespace Azaion.Flights.Database.Entities;
|
||||||
|
|
||||||
|
[Table("aircrafts")]
|
||||||
|
public class Aircraft
|
||||||
|
{
|
||||||
|
[PrimaryKey]
|
||||||
|
[Column("id")]
|
||||||
|
public Guid Id { get; set; }
|
||||||
|
|
||||||
|
[Column("type")]
|
||||||
|
public AircraftType Type { get; set; }
|
||||||
|
|
||||||
|
[Column("model")]
|
||||||
|
public string Model { get; set; } = string.Empty;
|
||||||
|
|
||||||
|
[Column("name")]
|
||||||
|
public string Name { get; set; } = string.Empty;
|
||||||
|
|
||||||
|
[Column("fuel_type")]
|
||||||
|
public FuelType FuelType { get; set; }
|
||||||
|
|
||||||
|
[Column("battery_capacity")]
|
||||||
|
public decimal BatteryCapacity { get; set; }
|
||||||
|
|
||||||
|
[Column("engine_consumption")]
|
||||||
|
public decimal EngineConsumption { get; set; }
|
||||||
|
|
||||||
|
[Column("engine_consumption_idle")]
|
||||||
|
public decimal EngineConsumptionIdle { get; set; }
|
||||||
|
|
||||||
|
[Column("is_default")]
|
||||||
|
public bool IsDefault { get; set; }
|
||||||
|
}
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
using LinqToDB.Mapping;
|
||||||
|
|
||||||
|
namespace Azaion.Flights.Database.Entities;
|
||||||
|
|
||||||
|
[Table("annotations")]
|
||||||
|
public class Annotation
|
||||||
|
{
|
||||||
|
[PrimaryKey]
|
||||||
|
[Column("id")]
|
||||||
|
public string Id { get; set; } = string.Empty;
|
||||||
|
|
||||||
|
[Column("media_id")]
|
||||||
|
public string MediaId { get; set; } = string.Empty;
|
||||||
|
}
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
using LinqToDB.Mapping;
|
||||||
|
|
||||||
|
namespace Azaion.Flights.Database.Entities;
|
||||||
|
|
||||||
|
[Table("detection")]
|
||||||
|
public class Detection
|
||||||
|
{
|
||||||
|
[PrimaryKey]
|
||||||
|
[Column("id")]
|
||||||
|
public Guid Id { get; set; }
|
||||||
|
|
||||||
|
[Column("annotation_id")]
|
||||||
|
public string AnnotationId { get; set; } = string.Empty;
|
||||||
|
}
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
using LinqToDB.Mapping;
|
||||||
|
using Azaion.Flights.Enums;
|
||||||
|
|
||||||
|
namespace Azaion.Flights.Database.Entities;
|
||||||
|
|
||||||
|
[Table("flights")]
|
||||||
|
public class Flight
|
||||||
|
{
|
||||||
|
[PrimaryKey]
|
||||||
|
[Column("id")]
|
||||||
|
public Guid Id { get; set; }
|
||||||
|
|
||||||
|
[Column("created_date")]
|
||||||
|
public DateTime CreatedDate { get; set; }
|
||||||
|
|
||||||
|
[Column("name")]
|
||||||
|
public string Name { get; set; } = string.Empty;
|
||||||
|
|
||||||
|
[Column("aircraft_id")]
|
||||||
|
public Guid AircraftId { get; set; }
|
||||||
|
|
||||||
|
[Association(ThisKey = nameof(AircraftId), OtherKey = nameof(Aircraft.Id))]
|
||||||
|
public Aircraft? Aircraft { get; set; }
|
||||||
|
|
||||||
|
[Association(ThisKey = nameof(Id), OtherKey = nameof(Waypoint.FlightId))]
|
||||||
|
public List<Waypoint> Waypoints { get; set; } = [];
|
||||||
|
}
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
using LinqToDB.Mapping;
|
||||||
|
|
||||||
|
namespace Azaion.Flights.Database.Entities;
|
||||||
|
|
||||||
|
[Table("gps_corrections")]
|
||||||
|
public class GpsCorrection
|
||||||
|
{
|
||||||
|
[PrimaryKey]
|
||||||
|
[Column("id")]
|
||||||
|
public Guid Id { get; set; }
|
||||||
|
|
||||||
|
[Column("flight_id")]
|
||||||
|
public Guid FlightId { get; set; }
|
||||||
|
|
||||||
|
[Column("waypoint_id")]
|
||||||
|
public Guid WaypointId { get; set; }
|
||||||
|
|
||||||
|
[Column("original_gps")]
|
||||||
|
public string OriginalGps { get; set; } = string.Empty;
|
||||||
|
|
||||||
|
[Column("corrected_gps")]
|
||||||
|
public string CorrectedGps { get; set; } = string.Empty;
|
||||||
|
|
||||||
|
[Column("applied_at")]
|
||||||
|
public DateTime AppliedAt { get; set; }
|
||||||
|
}
|
||||||
@@ -0,0 +1,51 @@
|
|||||||
|
using LinqToDB.Mapping;
|
||||||
|
using Azaion.Flights.Enums;
|
||||||
|
|
||||||
|
namespace Azaion.Flights.Database.Entities;
|
||||||
|
|
||||||
|
[Table("map_objects")]
|
||||||
|
public class MapObject
|
||||||
|
{
|
||||||
|
[PrimaryKey]
|
||||||
|
[Column("id")]
|
||||||
|
public Guid Id { get; set; }
|
||||||
|
|
||||||
|
[Column("flight_id")]
|
||||||
|
public Guid FlightId { get; set; }
|
||||||
|
|
||||||
|
[Column("h3_index")]
|
||||||
|
public string H3Index { get; set; } = string.Empty;
|
||||||
|
|
||||||
|
[Column("mgrs")]
|
||||||
|
public string Mgrs { get; set; } = string.Empty;
|
||||||
|
|
||||||
|
[Column("lat")]
|
||||||
|
public decimal? Lat { get; set; }
|
||||||
|
|
||||||
|
[Column("lon")]
|
||||||
|
public decimal? Lon { get; set; }
|
||||||
|
|
||||||
|
[Column("class_num")]
|
||||||
|
public int ClassNum { get; set; }
|
||||||
|
|
||||||
|
[Column("label")]
|
||||||
|
public string Label { get; set; } = string.Empty;
|
||||||
|
|
||||||
|
[Column("size_width_m")]
|
||||||
|
public decimal SizeWidthM { get; set; }
|
||||||
|
|
||||||
|
[Column("size_length_m")]
|
||||||
|
public decimal SizeLengthM { get; set; }
|
||||||
|
|
||||||
|
[Column("confidence")]
|
||||||
|
public decimal Confidence { get; set; }
|
||||||
|
|
||||||
|
[Column("object_status")]
|
||||||
|
public ObjectStatus ObjectStatus { get; set; }
|
||||||
|
|
||||||
|
[Column("first_seen_at")]
|
||||||
|
public DateTime FirstSeenAt { get; set; }
|
||||||
|
|
||||||
|
[Column("last_seen_at")]
|
||||||
|
public DateTime LastSeenAt { get; set; }
|
||||||
|
}
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
using LinqToDB.Mapping;
|
||||||
|
|
||||||
|
namespace Azaion.Flights.Database.Entities;
|
||||||
|
|
||||||
|
[Table("media")]
|
||||||
|
public class Media
|
||||||
|
{
|
||||||
|
[PrimaryKey]
|
||||||
|
[Column("id")]
|
||||||
|
public string Id { get; set; } = string.Empty;
|
||||||
|
|
||||||
|
[Column("waypoint_id")]
|
||||||
|
public Guid? WaypointId { get; set; }
|
||||||
|
}
|
||||||
@@ -0,0 +1,32 @@
|
|||||||
|
using LinqToDB.Mapping;
|
||||||
|
|
||||||
|
namespace Azaion.Flights.Database.Entities;
|
||||||
|
|
||||||
|
[Table("orthophotos")]
|
||||||
|
public class Orthophoto
|
||||||
|
{
|
||||||
|
[PrimaryKey]
|
||||||
|
[Column("id")]
|
||||||
|
public string Id { get; set; } = string.Empty;
|
||||||
|
|
||||||
|
[Column("flight_id")]
|
||||||
|
public Guid FlightId { get; set; }
|
||||||
|
|
||||||
|
[Column("name")]
|
||||||
|
public string Name { get; set; } = string.Empty;
|
||||||
|
|
||||||
|
[Column("path")]
|
||||||
|
public string Path { get; set; } = string.Empty;
|
||||||
|
|
||||||
|
[Column("lat")]
|
||||||
|
public decimal? Lat { get; set; }
|
||||||
|
|
||||||
|
[Column("lon")]
|
||||||
|
public decimal? Lon { get; set; }
|
||||||
|
|
||||||
|
[Column("mgrs")]
|
||||||
|
public string? Mgrs { get; set; }
|
||||||
|
|
||||||
|
[Column("uploaded_at")]
|
||||||
|
public DateTime UploadedAt { get; set; }
|
||||||
|
}
|
||||||
@@ -0,0 +1,39 @@
|
|||||||
|
using LinqToDB.Mapping;
|
||||||
|
using Azaion.Flights.Enums;
|
||||||
|
|
||||||
|
namespace Azaion.Flights.Database.Entities;
|
||||||
|
|
||||||
|
[Table("waypoints")]
|
||||||
|
public class Waypoint
|
||||||
|
{
|
||||||
|
[PrimaryKey]
|
||||||
|
[Column("id")]
|
||||||
|
public Guid Id { get; set; }
|
||||||
|
|
||||||
|
[Column("flight_id")]
|
||||||
|
public Guid FlightId { get; set; }
|
||||||
|
|
||||||
|
[Column("lat")]
|
||||||
|
public decimal? Lat { get; set; }
|
||||||
|
|
||||||
|
[Column("lon")]
|
||||||
|
public decimal? Lon { get; set; }
|
||||||
|
|
||||||
|
[Column("mgrs")]
|
||||||
|
public string? Mgrs { get; set; }
|
||||||
|
|
||||||
|
[Column("waypoint_source")]
|
||||||
|
public WaypointSource WaypointSource { get; set; }
|
||||||
|
|
||||||
|
[Column("waypoint_objective")]
|
||||||
|
public WaypointObjective WaypointObjective { get; set; }
|
||||||
|
|
||||||
|
[Column("order_num")]
|
||||||
|
public int OrderNum { get; set; }
|
||||||
|
|
||||||
|
[Column("height")]
|
||||||
|
public decimal Height { get; set; }
|
||||||
|
|
||||||
|
[Association(ThisKey = nameof(FlightId), OtherKey = nameof(Flight.Id))]
|
||||||
|
public Flight? Flight { get; set; }
|
||||||
|
}
|
||||||
+10
@@ -0,0 +1,10 @@
|
|||||||
|
FROM mcr.microsoft.com/dotnet/sdk:10.0 AS build
|
||||||
|
WORKDIR /src
|
||||||
|
COPY . .
|
||||||
|
RUN dotnet publish -c Release -o /app
|
||||||
|
|
||||||
|
FROM mcr.microsoft.com/dotnet/aspnet:10.0
|
||||||
|
WORKDIR /app
|
||||||
|
COPY --from=build /app .
|
||||||
|
EXPOSE 8080
|
||||||
|
ENTRYPOINT ["dotnet", "Azaion.Flights.dll"]
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
namespace Azaion.Flights.Enums;
|
||||||
|
|
||||||
|
public enum AircraftType
|
||||||
|
{
|
||||||
|
Plane = 0,
|
||||||
|
Copter = 1
|
||||||
|
}
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
namespace Azaion.Flights.Enums;
|
||||||
|
|
||||||
|
public enum FuelType
|
||||||
|
{
|
||||||
|
Electric = 0,
|
||||||
|
Gasoline = 1,
|
||||||
|
Diesel = 2
|
||||||
|
}
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
namespace Azaion.Flights.Enums;
|
||||||
|
|
||||||
|
public enum ObjectStatus
|
||||||
|
{
|
||||||
|
New = 0,
|
||||||
|
Moved = 1,
|
||||||
|
Removed = 2
|
||||||
|
}
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
namespace Azaion.Flights.Enums;
|
||||||
|
|
||||||
|
public enum WaypointObjective
|
||||||
|
{
|
||||||
|
Surveillance = 0,
|
||||||
|
Strike = 1,
|
||||||
|
Recon = 2
|
||||||
|
}
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
namespace Azaion.Flights.Enums;
|
||||||
|
|
||||||
|
public enum WaypointSource
|
||||||
|
{
|
||||||
|
Auto = 0,
|
||||||
|
Manual = 1
|
||||||
|
}
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
global using LinqToDB;
|
||||||
|
global using LinqToDB.Async;
|
||||||
|
global using LinqToDB.Data;
|
||||||
@@ -0,0 +1,40 @@
|
|||||||
|
using System.Net;
|
||||||
|
using System.Text.Json;
|
||||||
|
|
||||||
|
namespace Azaion.Flights.Middleware;
|
||||||
|
|
||||||
|
public class ErrorHandlingMiddleware(RequestDelegate next, ILogger<ErrorHandlingMiddleware> logger)
|
||||||
|
{
|
||||||
|
public async Task Invoke(HttpContext context)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
await next(context);
|
||||||
|
}
|
||||||
|
catch (KeyNotFoundException ex)
|
||||||
|
{
|
||||||
|
await WriteError(context, HttpStatusCode.NotFound, ex.Message);
|
||||||
|
}
|
||||||
|
catch (ArgumentException ex)
|
||||||
|
{
|
||||||
|
await WriteError(context, HttpStatusCode.BadRequest, ex.Message);
|
||||||
|
}
|
||||||
|
catch (InvalidOperationException ex)
|
||||||
|
{
|
||||||
|
await WriteError(context, HttpStatusCode.Conflict, ex.Message);
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
logger.LogError(ex, "Unhandled exception");
|
||||||
|
await WriteError(context, HttpStatusCode.InternalServerError, "Internal server error");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static async Task WriteError(HttpContext context, HttpStatusCode code, string message)
|
||||||
|
{
|
||||||
|
context.Response.StatusCode = (int)code;
|
||||||
|
context.Response.ContentType = "application/json";
|
||||||
|
var body = JsonSerializer.Serialize(new { statusCode = (int)code, message });
|
||||||
|
await context.Response.WriteAsync(body);
|
||||||
|
}
|
||||||
|
}
|
||||||
+69
@@ -0,0 +1,69 @@
|
|||||||
|
using LinqToDB;
|
||||||
|
using LinqToDB.Data;
|
||||||
|
using Azaion.Flights.Auth;
|
||||||
|
using Azaion.Flights.Database;
|
||||||
|
using Azaion.Flights.Middleware;
|
||||||
|
using Azaion.Flights.Services;
|
||||||
|
|
||||||
|
var builder = WebApplication.CreateBuilder(args);
|
||||||
|
|
||||||
|
var databaseUrl = builder.Configuration["DATABASE_URL"]
|
||||||
|
?? Environment.GetEnvironmentVariable("DATABASE_URL")
|
||||||
|
?? "Host=localhost;Database=azaion;Username=postgres;Password=changeme";
|
||||||
|
|
||||||
|
var connectionString = databaseUrl.StartsWith("postgresql://")
|
||||||
|
? ConvertPostgresUrl(databaseUrl)
|
||||||
|
: databaseUrl;
|
||||||
|
|
||||||
|
var jwtSecret = builder.Configuration["JWT_SECRET"]
|
||||||
|
?? Environment.GetEnvironmentVariable("JWT_SECRET")
|
||||||
|
?? "development-secret-key-min-32-chars!!";
|
||||||
|
|
||||||
|
builder.Services.AddScoped(_ =>
|
||||||
|
{
|
||||||
|
var options = new DataOptions().UsePostgreSQL(connectionString);
|
||||||
|
return new AppDataConnection(options);
|
||||||
|
});
|
||||||
|
|
||||||
|
builder.Services.AddScoped<FlightService>();
|
||||||
|
builder.Services.AddScoped<WaypointService>();
|
||||||
|
builder.Services.AddScoped<AircraftService>();
|
||||||
|
|
||||||
|
builder.Services.AddJwtAuth(jwtSecret);
|
||||||
|
builder.Services.AddCors(options =>
|
||||||
|
options.AddDefaultPolicy(policy =>
|
||||||
|
policy.AllowAnyOrigin().AllowAnyMethod().AllowAnyHeader()));
|
||||||
|
|
||||||
|
builder.Services.AddControllers();
|
||||||
|
builder.Services.AddEndpointsApiExplorer();
|
||||||
|
builder.Services.AddSwaggerGen();
|
||||||
|
|
||||||
|
var app = builder.Build();
|
||||||
|
|
||||||
|
using (var scope = app.Services.CreateScope())
|
||||||
|
{
|
||||||
|
var db = scope.ServiceProvider.GetRequiredService<AppDataConnection>();
|
||||||
|
DatabaseMigrator.Migrate(db);
|
||||||
|
}
|
||||||
|
|
||||||
|
app.UseMiddleware<ErrorHandlingMiddleware>();
|
||||||
|
app.UseCors();
|
||||||
|
app.UseAuthentication();
|
||||||
|
app.UseAuthorization();
|
||||||
|
app.UseSwagger();
|
||||||
|
app.UseSwaggerUI();
|
||||||
|
|
||||||
|
app.MapControllers();
|
||||||
|
app.MapGet("/health", () => Results.Ok(new { status = "healthy" }));
|
||||||
|
|
||||||
|
app.Run();
|
||||||
|
|
||||||
|
static string ConvertPostgresUrl(string url)
|
||||||
|
{
|
||||||
|
var uri = new Uri(url);
|
||||||
|
var userInfo = uri.UserInfo.Split(':');
|
||||||
|
var host = uri.Host;
|
||||||
|
var port = uri.Port > 0 ? uri.Port : 5432;
|
||||||
|
var database = uri.AbsolutePath.TrimStart('/');
|
||||||
|
return $"Host={host};Port={port};Database={database};Username={userInfo[0]};Password={userInfo.ElementAtOrDefault(1) ?? ""}";
|
||||||
|
}
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
# Azaion.Flights
|
||||||
|
|
||||||
|
.NET 8 REST API for flights, waypoints, and aircraft management.
|
||||||
@@ -0,0 +1,102 @@
|
|||||||
|
using Azaion.Flights.Database;
|
||||||
|
using Azaion.Flights.Database.Entities;
|
||||||
|
using Azaion.Flights.DTOs;
|
||||||
|
|
||||||
|
namespace Azaion.Flights.Services;
|
||||||
|
|
||||||
|
public class AircraftService(AppDataConnection db)
|
||||||
|
{
|
||||||
|
public async Task<Aircraft> CreateAircraft(CreateAircraftRequest request)
|
||||||
|
{
|
||||||
|
if (request.IsDefault)
|
||||||
|
await db.Aircrafts.Where(a => a.IsDefault).Set(a => a.IsDefault, false).UpdateAsync();
|
||||||
|
|
||||||
|
var aircraft = new Aircraft
|
||||||
|
{
|
||||||
|
Id = Guid.NewGuid(),
|
||||||
|
Type = request.Type,
|
||||||
|
Model = request.Model,
|
||||||
|
Name = request.Name,
|
||||||
|
FuelType = request.FuelType,
|
||||||
|
BatteryCapacity = request.BatteryCapacity,
|
||||||
|
EngineConsumption = request.EngineConsumption,
|
||||||
|
EngineConsumptionIdle = request.EngineConsumptionIdle,
|
||||||
|
IsDefault = request.IsDefault
|
||||||
|
};
|
||||||
|
await db.InsertAsync(aircraft);
|
||||||
|
return aircraft;
|
||||||
|
}
|
||||||
|
|
||||||
|
public async Task<Aircraft> UpdateAircraft(Guid id, UpdateAircraftRequest request)
|
||||||
|
{
|
||||||
|
var aircraft = await db.Aircrafts.FirstOrDefaultAsync(a => a.Id == id)
|
||||||
|
?? throw new KeyNotFoundException($"Aircraft {id} not found");
|
||||||
|
|
||||||
|
if (request.Type.HasValue)
|
||||||
|
aircraft.Type = request.Type.Value;
|
||||||
|
if (request.Model != null)
|
||||||
|
aircraft.Model = request.Model;
|
||||||
|
if (request.Name != null)
|
||||||
|
aircraft.Name = request.Name;
|
||||||
|
if (request.FuelType.HasValue)
|
||||||
|
aircraft.FuelType = request.FuelType.Value;
|
||||||
|
if (request.BatteryCapacity.HasValue)
|
||||||
|
aircraft.BatteryCapacity = request.BatteryCapacity.Value;
|
||||||
|
if (request.EngineConsumption.HasValue)
|
||||||
|
aircraft.EngineConsumption = request.EngineConsumption.Value;
|
||||||
|
if (request.EngineConsumptionIdle.HasValue)
|
||||||
|
aircraft.EngineConsumptionIdle = request.EngineConsumptionIdle.Value;
|
||||||
|
if (request.IsDefault.HasValue)
|
||||||
|
{
|
||||||
|
if (request.IsDefault.Value)
|
||||||
|
await db.Aircrafts.Where(a => a.IsDefault).Set(a => a.IsDefault, false).UpdateAsync();
|
||||||
|
aircraft.IsDefault = request.IsDefault.Value;
|
||||||
|
}
|
||||||
|
|
||||||
|
await db.UpdateAsync(aircraft);
|
||||||
|
return aircraft;
|
||||||
|
}
|
||||||
|
|
||||||
|
public async Task<Aircraft> GetAircraft(Guid id)
|
||||||
|
{
|
||||||
|
var aircraft = await db.Aircrafts.FirstOrDefaultAsync(a => a.Id == id)
|
||||||
|
?? throw new KeyNotFoundException($"Aircraft {id} not found");
|
||||||
|
return aircraft;
|
||||||
|
}
|
||||||
|
|
||||||
|
public async Task<List<Aircraft>> GetAircrafts(GetAircraftsQuery query)
|
||||||
|
{
|
||||||
|
var q = db.Aircrafts.AsQueryable();
|
||||||
|
|
||||||
|
if (!string.IsNullOrEmpty(query.Name))
|
||||||
|
q = q.Where(a => a.Name.ToLower().Contains(query.Name.ToLower()));
|
||||||
|
if (query.IsDefault.HasValue)
|
||||||
|
q = q.Where(a => a.IsDefault == query.IsDefault.Value);
|
||||||
|
|
||||||
|
return await q.OrderBy(a => a.Name).ToListAsync();
|
||||||
|
}
|
||||||
|
|
||||||
|
public async Task DeleteAircraft(Guid id)
|
||||||
|
{
|
||||||
|
var hasFlights = await db.Flights.AnyAsync(f => f.AircraftId == id);
|
||||||
|
if (hasFlights)
|
||||||
|
throw new InvalidOperationException($"Aircraft {id} is referenced by flights");
|
||||||
|
|
||||||
|
var aircraft = await db.Aircrafts.FirstOrDefaultAsync(a => a.Id == id)
|
||||||
|
?? throw new KeyNotFoundException($"Aircraft {id} not found");
|
||||||
|
|
||||||
|
await db.Aircrafts.DeleteAsync(a => a.Id == id);
|
||||||
|
}
|
||||||
|
|
||||||
|
public async Task SetDefault(Guid id, SetDefaultRequest request)
|
||||||
|
{
|
||||||
|
var aircraft = await db.Aircrafts.FirstOrDefaultAsync(a => a.Id == id)
|
||||||
|
?? throw new KeyNotFoundException($"Aircraft {id} not found");
|
||||||
|
|
||||||
|
if (request.IsDefault)
|
||||||
|
await db.Aircrafts.Where(a => a.IsDefault).Set(a => a.IsDefault, false).UpdateAsync();
|
||||||
|
|
||||||
|
aircraft.IsDefault = request.IsDefault;
|
||||||
|
await db.UpdateAsync(aircraft);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,109 @@
|
|||||||
|
using LinqToDB;
|
||||||
|
using Azaion.Flights.Database;
|
||||||
|
using Azaion.Flights.Database.Entities;
|
||||||
|
using Azaion.Flights.DTOs;
|
||||||
|
|
||||||
|
namespace Azaion.Flights.Services;
|
||||||
|
|
||||||
|
public class FlightService(AppDataConnection db)
|
||||||
|
{
|
||||||
|
public async Task<Flight> CreateFlight(CreateFlightRequest request)
|
||||||
|
{
|
||||||
|
var aircraftExists = await db.Aircrafts.AnyAsync(a => a.Id == request.AircraftId);
|
||||||
|
if (!aircraftExists)
|
||||||
|
throw new ArgumentException($"Aircraft {request.AircraftId} not found");
|
||||||
|
|
||||||
|
var flight = new Flight
|
||||||
|
{
|
||||||
|
Id = Guid.NewGuid(),
|
||||||
|
CreatedDate = request.CreatedDate ?? DateTime.UtcNow,
|
||||||
|
Name = request.Name,
|
||||||
|
AircraftId = request.AircraftId
|
||||||
|
};
|
||||||
|
await db.InsertAsync(flight);
|
||||||
|
return flight;
|
||||||
|
}
|
||||||
|
|
||||||
|
public async Task<Flight> UpdateFlight(Guid id, UpdateFlightRequest request)
|
||||||
|
{
|
||||||
|
var flight = await db.Flights.FirstOrDefaultAsync(f => f.Id == id)
|
||||||
|
?? throw new KeyNotFoundException($"Flight {id} not found");
|
||||||
|
|
||||||
|
if (request.Name != null)
|
||||||
|
flight.Name = request.Name;
|
||||||
|
if (request.AircraftId.HasValue)
|
||||||
|
{
|
||||||
|
var aircraftExists = await db.Aircrafts.AnyAsync(a => a.Id == request.AircraftId.Value);
|
||||||
|
if (!aircraftExists)
|
||||||
|
throw new ArgumentException($"Aircraft {request.AircraftId} not found");
|
||||||
|
flight.AircraftId = request.AircraftId.Value;
|
||||||
|
}
|
||||||
|
|
||||||
|
await db.UpdateAsync(flight);
|
||||||
|
return flight;
|
||||||
|
}
|
||||||
|
|
||||||
|
public async Task<Flight> GetFlight(Guid id)
|
||||||
|
{
|
||||||
|
var flight = await db.Flights.FirstOrDefaultAsync(f => f.Id == id)
|
||||||
|
?? throw new KeyNotFoundException($"Flight {id} not found");
|
||||||
|
return flight;
|
||||||
|
}
|
||||||
|
|
||||||
|
public async Task<PaginatedResponse<Flight>> GetFlights(GetFlightsQuery query)
|
||||||
|
{
|
||||||
|
var q = db.Flights.AsQueryable();
|
||||||
|
|
||||||
|
if (!string.IsNullOrEmpty(query.Name))
|
||||||
|
q = q.Where(f => f.Name.ToLower().Contains(query.Name.ToLower()));
|
||||||
|
if (query.FromDate.HasValue)
|
||||||
|
q = q.Where(f => f.CreatedDate >= query.FromDate.Value);
|
||||||
|
if (query.ToDate.HasValue)
|
||||||
|
q = q.Where(f => f.CreatedDate <= query.ToDate.Value);
|
||||||
|
|
||||||
|
var totalCount = await q.CountAsync();
|
||||||
|
|
||||||
|
var items = await q
|
||||||
|
.OrderByDescending(f => f.CreatedDate)
|
||||||
|
.Skip((query.Page - 1) * query.PageSize)
|
||||||
|
.Take(query.PageSize)
|
||||||
|
.ToListAsync();
|
||||||
|
|
||||||
|
return new PaginatedResponse<Flight>
|
||||||
|
{
|
||||||
|
Items = items,
|
||||||
|
TotalCount = totalCount,
|
||||||
|
Page = query.Page,
|
||||||
|
PageSize = query.PageSize
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
public async Task DeleteFlight(Guid id)
|
||||||
|
{
|
||||||
|
var flight = await db.Flights.FirstOrDefaultAsync(f => f.Id == id)
|
||||||
|
?? throw new KeyNotFoundException($"Flight {id} not found");
|
||||||
|
|
||||||
|
await db.MapObjects.DeleteAsync(m => m.FlightId == id);
|
||||||
|
await db.GpsCorrections.DeleteAsync(g => g.FlightId == id);
|
||||||
|
await db.Orthophotos.DeleteAsync(o => o.FlightId == id);
|
||||||
|
|
||||||
|
var waypointIds = await db.Waypoints.Where(w => w.FlightId == id).Select(w => w.Id).ToListAsync();
|
||||||
|
if (waypointIds.Count > 0)
|
||||||
|
{
|
||||||
|
var mediaIds = await db.Media.Where(m => m.WaypointId != null && waypointIds.Contains(m.WaypointId!.Value))
|
||||||
|
.Select(m => m.Id).ToListAsync();
|
||||||
|
if (mediaIds.Count > 0)
|
||||||
|
{
|
||||||
|
var annotationIds = await db.Annotations.Where(a => mediaIds.Contains(a.MediaId))
|
||||||
|
.Select(a => a.Id).ToListAsync();
|
||||||
|
if (annotationIds.Count > 0)
|
||||||
|
await db.Detections.DeleteAsync(d => annotationIds.Contains(d.AnnotationId));
|
||||||
|
await db.Annotations.DeleteAsync(a => mediaIds.Contains(a.MediaId));
|
||||||
|
}
|
||||||
|
await db.Media.DeleteAsync(m => m.WaypointId != null && waypointIds.Contains(m.WaypointId!.Value));
|
||||||
|
}
|
||||||
|
|
||||||
|
await db.Waypoints.DeleteAsync(w => w.FlightId == id);
|
||||||
|
await db.Flights.DeleteAsync(f => f.Id == id);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,75 @@
|
|||||||
|
using Azaion.Flights.Database;
|
||||||
|
using Azaion.Flights.Database.Entities;
|
||||||
|
using Azaion.Flights.DTOs;
|
||||||
|
using Azaion.Flights.Enums;
|
||||||
|
|
||||||
|
namespace Azaion.Flights.Services;
|
||||||
|
|
||||||
|
public class WaypointService(AppDataConnection db)
|
||||||
|
{
|
||||||
|
public async Task<Waypoint> CreateWaypoint(Guid flightId, CreateWaypointRequest request)
|
||||||
|
{
|
||||||
|
var flightExists = await db.Flights.AnyAsync(f => f.Id == flightId);
|
||||||
|
if (!flightExists)
|
||||||
|
throw new KeyNotFoundException($"Flight {flightId} not found");
|
||||||
|
|
||||||
|
var waypoint = new Waypoint
|
||||||
|
{
|
||||||
|
Id = Guid.NewGuid(),
|
||||||
|
FlightId = flightId,
|
||||||
|
Lat = request.GeoPoint?.Lat,
|
||||||
|
Lon = request.GeoPoint?.Lon,
|
||||||
|
Mgrs = request.GeoPoint?.Mgrs,
|
||||||
|
WaypointSource = request.WaypointSource,
|
||||||
|
WaypointObjective = request.WaypointObjective,
|
||||||
|
OrderNum = request.OrderNum,
|
||||||
|
Height = request.Height
|
||||||
|
};
|
||||||
|
await db.InsertAsync(waypoint);
|
||||||
|
return waypoint;
|
||||||
|
}
|
||||||
|
|
||||||
|
public async Task<Waypoint> UpdateWaypoint(Guid flightId, Guid waypointId, UpdateWaypointRequest request)
|
||||||
|
{
|
||||||
|
var waypoint = await db.Waypoints.FirstOrDefaultAsync(w => w.FlightId == flightId && w.Id == waypointId)
|
||||||
|
?? throw new KeyNotFoundException($"Waypoint {waypointId} not found");
|
||||||
|
|
||||||
|
waypoint.Lat = request.GeoPoint?.Lat;
|
||||||
|
waypoint.Lon = request.GeoPoint?.Lon;
|
||||||
|
waypoint.Mgrs = request.GeoPoint?.Mgrs;
|
||||||
|
waypoint.WaypointSource = request.WaypointSource;
|
||||||
|
waypoint.WaypointObjective = request.WaypointObjective;
|
||||||
|
waypoint.OrderNum = request.OrderNum;
|
||||||
|
waypoint.Height = request.Height;
|
||||||
|
|
||||||
|
await db.UpdateAsync(waypoint);
|
||||||
|
return waypoint;
|
||||||
|
}
|
||||||
|
|
||||||
|
public async Task<List<Waypoint>> GetWaypoints(Guid flightId)
|
||||||
|
{
|
||||||
|
return await db.Waypoints
|
||||||
|
.Where(w => w.FlightId == flightId)
|
||||||
|
.OrderBy(w => w.OrderNum)
|
||||||
|
.ToListAsync();
|
||||||
|
}
|
||||||
|
|
||||||
|
public async Task DeleteWaypoint(Guid flightId, Guid waypointId)
|
||||||
|
{
|
||||||
|
var waypoint = await db.Waypoints.FirstOrDefaultAsync(w => w.FlightId == flightId && w.Id == waypointId)
|
||||||
|
?? throw new KeyNotFoundException($"Waypoint {waypointId} not found");
|
||||||
|
|
||||||
|
var mediaIds = await db.Media.Where(m => m.WaypointId == waypointId).Select(m => m.Id).ToListAsync();
|
||||||
|
if (mediaIds.Count > 0)
|
||||||
|
{
|
||||||
|
var annotationIds = await db.Annotations.Where(a => mediaIds.Contains(a.MediaId))
|
||||||
|
.Select(a => a.Id).ToListAsync();
|
||||||
|
if (annotationIds.Count > 0)
|
||||||
|
await db.Detections.DeleteAsync(d => annotationIds.Contains(d.AnnotationId));
|
||||||
|
await db.Annotations.DeleteAsync(a => mediaIds.Contains(a.MediaId));
|
||||||
|
}
|
||||||
|
await db.Media.DeleteAsync(m => m.WaypointId == waypointId);
|
||||||
|
await db.GpsCorrections.DeleteAsync(g => g.WaypointId == waypointId);
|
||||||
|
await db.Waypoints.DeleteAsync(w => w.Id == waypointId);
|
||||||
|
}
|
||||||
|
}
|
||||||
Executable
BIN
Binary file not shown.
@@ -0,0 +1,282 @@
|
|||||||
|
{
|
||||||
|
"runtimeTarget": {
|
||||||
|
"name": ".NETCoreApp,Version=v10.0",
|
||||||
|
"signature": ""
|
||||||
|
},
|
||||||
|
"compilationOptions": {},
|
||||||
|
"targets": {
|
||||||
|
".NETCoreApp,Version=v10.0": {
|
||||||
|
"Azaion.Flights/1.0.0": {
|
||||||
|
"dependencies": {
|
||||||
|
"Microsoft.AspNetCore.Authentication.JwtBearer": "10.0.5",
|
||||||
|
"Npgsql": "10.0.2",
|
||||||
|
"Swashbuckle.AspNetCore": "10.1.5",
|
||||||
|
"linq2db": "6.2.0"
|
||||||
|
},
|
||||||
|
"runtime": {
|
||||||
|
"Azaion.Flights.dll": {}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"linq2db/6.2.0": {
|
||||||
|
"runtime": {
|
||||||
|
"lib/net10.0/linq2db.dll": {
|
||||||
|
"assemblyVersion": "6.2.0.0",
|
||||||
|
"fileVersion": "6.2.0.0"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Microsoft.AspNetCore.Authentication.JwtBearer/10.0.5": {
|
||||||
|
"dependencies": {
|
||||||
|
"Microsoft.IdentityModel.Protocols.OpenIdConnect": "8.0.1"
|
||||||
|
},
|
||||||
|
"runtime": {
|
||||||
|
"lib/net10.0/Microsoft.AspNetCore.Authentication.JwtBearer.dll": {
|
||||||
|
"assemblyVersion": "10.0.5.0",
|
||||||
|
"fileVersion": "10.0.526.15411"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Microsoft.IdentityModel.Abstractions/8.0.1": {
|
||||||
|
"runtime": {
|
||||||
|
"lib/net9.0/Microsoft.IdentityModel.Abstractions.dll": {
|
||||||
|
"assemblyVersion": "8.0.1.0",
|
||||||
|
"fileVersion": "8.0.1.50722"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Microsoft.IdentityModel.JsonWebTokens/8.0.1": {
|
||||||
|
"dependencies": {
|
||||||
|
"Microsoft.IdentityModel.Tokens": "8.0.1"
|
||||||
|
},
|
||||||
|
"runtime": {
|
||||||
|
"lib/net9.0/Microsoft.IdentityModel.JsonWebTokens.dll": {
|
||||||
|
"assemblyVersion": "8.0.1.0",
|
||||||
|
"fileVersion": "8.0.1.50722"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Microsoft.IdentityModel.Logging/8.0.1": {
|
||||||
|
"dependencies": {
|
||||||
|
"Microsoft.IdentityModel.Abstractions": "8.0.1"
|
||||||
|
},
|
||||||
|
"runtime": {
|
||||||
|
"lib/net9.0/Microsoft.IdentityModel.Logging.dll": {
|
||||||
|
"assemblyVersion": "8.0.1.0",
|
||||||
|
"fileVersion": "8.0.1.50722"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Microsoft.IdentityModel.Protocols/8.0.1": {
|
||||||
|
"dependencies": {
|
||||||
|
"Microsoft.IdentityModel.Tokens": "8.0.1"
|
||||||
|
},
|
||||||
|
"runtime": {
|
||||||
|
"lib/net9.0/Microsoft.IdentityModel.Protocols.dll": {
|
||||||
|
"assemblyVersion": "8.0.1.0",
|
||||||
|
"fileVersion": "8.0.1.50722"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Microsoft.IdentityModel.Protocols.OpenIdConnect/8.0.1": {
|
||||||
|
"dependencies": {
|
||||||
|
"Microsoft.IdentityModel.Protocols": "8.0.1",
|
||||||
|
"System.IdentityModel.Tokens.Jwt": "8.0.1"
|
||||||
|
},
|
||||||
|
"runtime": {
|
||||||
|
"lib/net9.0/Microsoft.IdentityModel.Protocols.OpenIdConnect.dll": {
|
||||||
|
"assemblyVersion": "8.0.1.0",
|
||||||
|
"fileVersion": "8.0.1.50722"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Microsoft.IdentityModel.Tokens/8.0.1": {
|
||||||
|
"dependencies": {
|
||||||
|
"Microsoft.IdentityModel.Logging": "8.0.1"
|
||||||
|
},
|
||||||
|
"runtime": {
|
||||||
|
"lib/net9.0/Microsoft.IdentityModel.Tokens.dll": {
|
||||||
|
"assemblyVersion": "8.0.1.0",
|
||||||
|
"fileVersion": "8.0.1.50722"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Microsoft.OpenApi/2.4.1": {
|
||||||
|
"runtime": {
|
||||||
|
"lib/net8.0/Microsoft.OpenApi.dll": {
|
||||||
|
"assemblyVersion": "2.4.1.0",
|
||||||
|
"fileVersion": "2.4.1.0"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Npgsql/10.0.2": {
|
||||||
|
"runtime": {
|
||||||
|
"lib/net10.0/Npgsql.dll": {
|
||||||
|
"assemblyVersion": "10.0.2.0",
|
||||||
|
"fileVersion": "10.0.2.0"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Swashbuckle.AspNetCore/10.1.5": {
|
||||||
|
"dependencies": {
|
||||||
|
"Swashbuckle.AspNetCore.Swagger": "10.1.5",
|
||||||
|
"Swashbuckle.AspNetCore.SwaggerGen": "10.1.5",
|
||||||
|
"Swashbuckle.AspNetCore.SwaggerUI": "10.1.5"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Swashbuckle.AspNetCore.Swagger/10.1.5": {
|
||||||
|
"dependencies": {
|
||||||
|
"Microsoft.OpenApi": "2.4.1"
|
||||||
|
},
|
||||||
|
"runtime": {
|
||||||
|
"lib/net10.0/Swashbuckle.AspNetCore.Swagger.dll": {
|
||||||
|
"assemblyVersion": "10.1.5.0",
|
||||||
|
"fileVersion": "10.1.5.2342"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Swashbuckle.AspNetCore.SwaggerGen/10.1.5": {
|
||||||
|
"dependencies": {
|
||||||
|
"Swashbuckle.AspNetCore.Swagger": "10.1.5"
|
||||||
|
},
|
||||||
|
"runtime": {
|
||||||
|
"lib/net10.0/Swashbuckle.AspNetCore.SwaggerGen.dll": {
|
||||||
|
"assemblyVersion": "10.1.5.0",
|
||||||
|
"fileVersion": "10.1.5.2342"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Swashbuckle.AspNetCore.SwaggerUI/10.1.5": {
|
||||||
|
"runtime": {
|
||||||
|
"lib/net10.0/Swashbuckle.AspNetCore.SwaggerUI.dll": {
|
||||||
|
"assemblyVersion": "10.1.5.0",
|
||||||
|
"fileVersion": "10.1.5.2342"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"System.IdentityModel.Tokens.Jwt/8.0.1": {
|
||||||
|
"dependencies": {
|
||||||
|
"Microsoft.IdentityModel.JsonWebTokens": "8.0.1",
|
||||||
|
"Microsoft.IdentityModel.Tokens": "8.0.1"
|
||||||
|
},
|
||||||
|
"runtime": {
|
||||||
|
"lib/net9.0/System.IdentityModel.Tokens.Jwt.dll": {
|
||||||
|
"assemblyVersion": "8.0.1.0",
|
||||||
|
"fileVersion": "8.0.1.50722"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"libraries": {
|
||||||
|
"Azaion.Flights/1.0.0": {
|
||||||
|
"type": "project",
|
||||||
|
"serviceable": false,
|
||||||
|
"sha512": ""
|
||||||
|
},
|
||||||
|
"linq2db/6.2.0": {
|
||||||
|
"type": "package",
|
||||||
|
"serviceable": true,
|
||||||
|
"sha512": "sha512-aPHoudoZ7CIcxwd/9SE3HEC3XLxrI2cwm1e2T1A13kW5Uhy0/Jl9H5+If+vjYFxrZiBPEAJEqdk0bfBNe3WWxQ==",
|
||||||
|
"path": "linq2db/6.2.0",
|
||||||
|
"hashPath": "linq2db.6.2.0.nupkg.sha512"
|
||||||
|
},
|
||||||
|
"Microsoft.AspNetCore.Authentication.JwtBearer/10.0.5": {
|
||||||
|
"type": "package",
|
||||||
|
"serviceable": true,
|
||||||
|
"sha512": "sha512-fZzXogChrwQ/SfifQJgeW7AtR8hUv5+LH9oLWjm5OqfnVt3N8MwcMHHMdawvqqdjP79lIZgetnSpj77BLsSI1g==",
|
||||||
|
"path": "microsoft.aspnetcore.authentication.jwtbearer/10.0.5",
|
||||||
|
"hashPath": "microsoft.aspnetcore.authentication.jwtbearer.10.0.5.nupkg.sha512"
|
||||||
|
},
|
||||||
|
"Microsoft.IdentityModel.Abstractions/8.0.1": {
|
||||||
|
"type": "package",
|
||||||
|
"serviceable": true,
|
||||||
|
"sha512": "sha512-OtlIWcyX01olfdevPKZdIPfBEvbcioDyBiE/Z2lHsopsMD7twcKtlN9kMevHmI5IIPhFpfwCIiR6qHQz1WHUIw==",
|
||||||
|
"path": "microsoft.identitymodel.abstractions/8.0.1",
|
||||||
|
"hashPath": "microsoft.identitymodel.abstractions.8.0.1.nupkg.sha512"
|
||||||
|
},
|
||||||
|
"Microsoft.IdentityModel.JsonWebTokens/8.0.1": {
|
||||||
|
"type": "package",
|
||||||
|
"serviceable": true,
|
||||||
|
"sha512": "sha512-s6++gF9x0rQApQzOBbSyp4jUaAlwm+DroKfL8gdOHxs83k8SJfUXhuc46rDB3rNXBQ1MVRxqKUrqFhO/M0E97g==",
|
||||||
|
"path": "microsoft.identitymodel.jsonwebtokens/8.0.1",
|
||||||
|
"hashPath": "microsoft.identitymodel.jsonwebtokens.8.0.1.nupkg.sha512"
|
||||||
|
},
|
||||||
|
"Microsoft.IdentityModel.Logging/8.0.1": {
|
||||||
|
"type": "package",
|
||||||
|
"serviceable": true,
|
||||||
|
"sha512": "sha512-UCPF2exZqBXe7v/6sGNiM6zCQOUXXQ9+v5VTb9gPB8ZSUPnX53BxlN78v2jsbIvK9Dq4GovQxo23x8JgWvm/Qg==",
|
||||||
|
"path": "microsoft.identitymodel.logging/8.0.1",
|
||||||
|
"hashPath": "microsoft.identitymodel.logging.8.0.1.nupkg.sha512"
|
||||||
|
},
|
||||||
|
"Microsoft.IdentityModel.Protocols/8.0.1": {
|
||||||
|
"type": "package",
|
||||||
|
"serviceable": true,
|
||||||
|
"sha512": "sha512-uA2vpKqU3I2mBBEaeJAWPTjT9v1TZrGWKdgK6G5qJd03CLx83kdiqO9cmiK8/n1erkHzFBwU/RphP83aAe3i3g==",
|
||||||
|
"path": "microsoft.identitymodel.protocols/8.0.1",
|
||||||
|
"hashPath": "microsoft.identitymodel.protocols.8.0.1.nupkg.sha512"
|
||||||
|
},
|
||||||
|
"Microsoft.IdentityModel.Protocols.OpenIdConnect/8.0.1": {
|
||||||
|
"type": "package",
|
||||||
|
"serviceable": true,
|
||||||
|
"sha512": "sha512-AQDbfpL+yzuuGhO/mQhKNsp44pm5Jv8/BI4KiFXR7beVGZoSH35zMV3PrmcfvSTsyI6qrcR898NzUauD6SRigg==",
|
||||||
|
"path": "microsoft.identitymodel.protocols.openidconnect/8.0.1",
|
||||||
|
"hashPath": "microsoft.identitymodel.protocols.openidconnect.8.0.1.nupkg.sha512"
|
||||||
|
},
|
||||||
|
"Microsoft.IdentityModel.Tokens/8.0.1": {
|
||||||
|
"type": "package",
|
||||||
|
"serviceable": true,
|
||||||
|
"sha512": "sha512-kDimB6Dkd3nkW2oZPDkMkVHfQt3IDqO5gL0oa8WVy3OP4uE8Ij+8TXnqg9TOd9ufjsY3IDiGz7pCUbnfL18tjg==",
|
||||||
|
"path": "microsoft.identitymodel.tokens/8.0.1",
|
||||||
|
"hashPath": "microsoft.identitymodel.tokens.8.0.1.nupkg.sha512"
|
||||||
|
},
|
||||||
|
"Microsoft.OpenApi/2.4.1": {
|
||||||
|
"type": "package",
|
||||||
|
"serviceable": true,
|
||||||
|
"sha512": "sha512-u7QhXCISMQuab3flasb1hoaiERmUqyWsW7tmQODyILoQ7mJV5IRGM+2KKZYo0QUfC13evEOcHAb6TPWgqEQtrw==",
|
||||||
|
"path": "microsoft.openapi/2.4.1",
|
||||||
|
"hashPath": "microsoft.openapi.2.4.1.nupkg.sha512"
|
||||||
|
},
|
||||||
|
"Npgsql/10.0.2": {
|
||||||
|
"type": "package",
|
||||||
|
"serviceable": true,
|
||||||
|
"sha512": "sha512-q5RfBI+wywJSFUNDE1L4ZbHEHCFTblo8Uf6A6oe4feOUFYiUQXyAf9GBh5qEZpvJaHiEbpBPkQumjEhXCJxdrg==",
|
||||||
|
"path": "npgsql/10.0.2",
|
||||||
|
"hashPath": "npgsql.10.0.2.nupkg.sha512"
|
||||||
|
},
|
||||||
|
"Swashbuckle.AspNetCore/10.1.5": {
|
||||||
|
"type": "package",
|
||||||
|
"serviceable": true,
|
||||||
|
"sha512": "sha512-/eNk9z/8quXhDX14o3XLbwAX/84uIWSbiUD7cI/UrQnoBMOiyAtzKxNEJUtf/TyxjFpcXxE9FAfLvtbNpxHBSg==",
|
||||||
|
"path": "swashbuckle.aspnetcore/10.1.5",
|
||||||
|
"hashPath": "swashbuckle.aspnetcore.10.1.5.nupkg.sha512"
|
||||||
|
},
|
||||||
|
"Swashbuckle.AspNetCore.Swagger/10.1.5": {
|
||||||
|
"type": "package",
|
||||||
|
"serviceable": true,
|
||||||
|
"sha512": "sha512-s4Mct6+Ob0LK9vYVaZcYi/RFFCOEJNjf6nJ5ZPoxtpdFSlzR6i9AHI7Vl44obX8cynRxJW7prA1IUabkiXolFg==",
|
||||||
|
"path": "swashbuckle.aspnetcore.swagger/10.1.5",
|
||||||
|
"hashPath": "swashbuckle.aspnetcore.swagger.10.1.5.nupkg.sha512"
|
||||||
|
},
|
||||||
|
"Swashbuckle.AspNetCore.SwaggerGen/10.1.5": {
|
||||||
|
"type": "package",
|
||||||
|
"serviceable": true,
|
||||||
|
"sha512": "sha512-ysQIRgqnx4Vb/9+r3xnEAiaxYmiBHO8jTg7ACaCh+R3Sn+ZKCWKD6nyu0ph3okP91wFSh/6LgccjeLUaQHV+ZA==",
|
||||||
|
"path": "swashbuckle.aspnetcore.swaggergen/10.1.5",
|
||||||
|
"hashPath": "swashbuckle.aspnetcore.swaggergen.10.1.5.nupkg.sha512"
|
||||||
|
},
|
||||||
|
"Swashbuckle.AspNetCore.SwaggerUI/10.1.5": {
|
||||||
|
"type": "package",
|
||||||
|
"serviceable": true,
|
||||||
|
"sha512": "sha512-tQWVKNJWW7lf6S0bv22+7yfxK5IKzvsMeueF4XHSziBfREhLKt42OKzi6/1nINmyGlM4hGbR8aSMg72dLLVBLw==",
|
||||||
|
"path": "swashbuckle.aspnetcore.swaggerui/10.1.5",
|
||||||
|
"hashPath": "swashbuckle.aspnetcore.swaggerui.10.1.5.nupkg.sha512"
|
||||||
|
},
|
||||||
|
"System.IdentityModel.Tokens.Jwt/8.0.1": {
|
||||||
|
"type": "package",
|
||||||
|
"serviceable": true,
|
||||||
|
"sha512": "sha512-GJw3bYkWpOgvN3tJo5X4lYUeIFA2HD293FPUhKmp7qxS+g5ywAb34Dnd3cDAFLkcMohy5XTpoaZ4uAHuw0uSPQ==",
|
||||||
|
"path": "system.identitymodel.tokens.jwt/8.0.1",
|
||||||
|
"hashPath": "system.identitymodel.tokens.jwt.8.0.1.nupkg.sha512"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,19 @@
|
|||||||
|
{
|
||||||
|
"runtimeOptions": {
|
||||||
|
"tfm": "net10.0",
|
||||||
|
"frameworks": [
|
||||||
|
{
|
||||||
|
"name": "Microsoft.NETCore.App",
|
||||||
|
"version": "10.0.0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Microsoft.AspNetCore.App",
|
||||||
|
"version": "10.0.0"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"configProperties": {
|
||||||
|
"System.GC.Server": true,
|
||||||
|
"System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization": false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"Version":1,"ManifestType":"Build","Endpoints":[]}
|
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
Binary file not shown.
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
Executable
BIN
Binary file not shown.
Executable
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
Executable
BIN
Binary file not shown.
@@ -0,0 +1,505 @@
|
|||||||
|
{
|
||||||
|
"format": 1,
|
||||||
|
"restore": {
|
||||||
|
"/Users/obezdienie001/dev/azaion/annotations/flights/Azaion.Flights.csproj": {}
|
||||||
|
},
|
||||||
|
"projects": {
|
||||||
|
"/Users/obezdienie001/dev/azaion/annotations/flights/Azaion.Flights.csproj": {
|
||||||
|
"version": "1.0.0",
|
||||||
|
"restore": {
|
||||||
|
"projectUniqueName": "/Users/obezdienie001/dev/azaion/annotations/flights/Azaion.Flights.csproj",
|
||||||
|
"projectName": "Azaion.Flights",
|
||||||
|
"projectPath": "/Users/obezdienie001/dev/azaion/annotations/flights/Azaion.Flights.csproj",
|
||||||
|
"packagesPath": "/Users/obezdienie001/.nuget/packages/",
|
||||||
|
"outputPath": "/Users/obezdienie001/dev/azaion/annotations/flights/obj/",
|
||||||
|
"projectStyle": "PackageReference",
|
||||||
|
"configFilePaths": [
|
||||||
|
"/Users/obezdienie001/.nuget/NuGet/NuGet.Config"
|
||||||
|
],
|
||||||
|
"originalTargetFrameworks": [
|
||||||
|
"net10.0"
|
||||||
|
],
|
||||||
|
"sources": {
|
||||||
|
"https://api.nuget.org/v3/index.json": {},
|
||||||
|
"https://pkgs.dev.azure.com/pwc-us-prism/_packaging/NGA-Build/nuget/v3/index.json": {},
|
||||||
|
"https://pkgs.dev.azure.com/pwc-us-prism/_packaging/NGA-Dev/nuget/v3/index.json": {},
|
||||||
|
"https://pkgs.dev.azure.com/pwc-us-prism/_packaging/NGA/nuget/v3/index.json": {}
|
||||||
|
},
|
||||||
|
"frameworks": {
|
||||||
|
"net10.0": {
|
||||||
|
"targetAlias": "net10.0",
|
||||||
|
"projectReferences": {}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"warningProperties": {
|
||||||
|
"warnAsError": [
|
||||||
|
"NU1605"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"restoreAuditProperties": {
|
||||||
|
"enableAudit": "true",
|
||||||
|
"auditLevel": "low",
|
||||||
|
"auditMode": "all"
|
||||||
|
},
|
||||||
|
"SdkAnalysisLevel": "10.0.100"
|
||||||
|
},
|
||||||
|
"frameworks": {
|
||||||
|
"net10.0": {
|
||||||
|
"targetAlias": "net10.0",
|
||||||
|
"dependencies": {
|
||||||
|
"Microsoft.AspNetCore.Authentication.JwtBearer": {
|
||||||
|
"target": "Package",
|
||||||
|
"version": "[10.0.5, )"
|
||||||
|
},
|
||||||
|
"Npgsql": {
|
||||||
|
"target": "Package",
|
||||||
|
"version": "[10.0.2, )"
|
||||||
|
},
|
||||||
|
"Swashbuckle.AspNetCore": {
|
||||||
|
"target": "Package",
|
||||||
|
"version": "[10.1.5, )"
|
||||||
|
},
|
||||||
|
"linq2db": {
|
||||||
|
"target": "Package",
|
||||||
|
"version": "[6.2.0, )"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"imports": [
|
||||||
|
"net461",
|
||||||
|
"net462",
|
||||||
|
"net47",
|
||||||
|
"net471",
|
||||||
|
"net472",
|
||||||
|
"net48",
|
||||||
|
"net481"
|
||||||
|
],
|
||||||
|
"assetTargetFallback": true,
|
||||||
|
"warn": true,
|
||||||
|
"frameworkReferences": {
|
||||||
|
"Microsoft.AspNetCore.App": {
|
||||||
|
"privateAssets": "none"
|
||||||
|
},
|
||||||
|
"Microsoft.NETCore.App": {
|
||||||
|
"privateAssets": "all"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"runtimeIdentifierGraphPath": "/usr/local/share/dotnet/sdk/10.0.103/PortableRuntimeIdentifierGraph.json",
|
||||||
|
"packagesToPrune": {
|
||||||
|
"Microsoft.AspNetCore": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.Antiforgery": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.App": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.Authentication": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.Authentication.Abstractions": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.Authentication.BearerToken": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.Authentication.Cookies": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.Authentication.Core": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.Authentication.OAuth": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.Authorization": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.Authorization.Policy": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.Components": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.Components.Authorization": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.Components.Endpoints": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.Components.Forms": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.Components.Server": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.Components.Web": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.Connections.Abstractions": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.CookiePolicy": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.Cors": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.Cryptography.Internal": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.Cryptography.KeyDerivation": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.DataProtection": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.DataProtection.Abstractions": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.DataProtection.Extensions": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.Diagnostics": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.Diagnostics.Abstractions": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.Diagnostics.HealthChecks": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.HostFiltering": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.Hosting": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.Hosting.Abstractions": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.Hosting.Server.Abstractions": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.Html.Abstractions": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.Http": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.Http.Abstractions": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.Http.Connections": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.Http.Connections.Common": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.Http.Extensions": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.Http.Features": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.Http.Results": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.HttpLogging": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.HttpOverrides": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.HttpsPolicy": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.Identity": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.Localization": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.Localization.Routing": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.Metadata": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.Mvc": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.Mvc.Abstractions": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.Mvc.ApiExplorer": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.Mvc.Core": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.Mvc.Cors": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.Mvc.DataAnnotations": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.Mvc.Formatters.Json": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.Mvc.Formatters.Xml": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.Mvc.Localization": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.Mvc.Razor": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.Mvc.RazorPages": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.Mvc.TagHelpers": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.Mvc.ViewFeatures": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.OutputCaching": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.RateLimiting": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.Razor": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.Razor.Runtime": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.RequestDecompression": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.ResponseCaching": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.ResponseCaching.Abstractions": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.ResponseCompression": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.Rewrite": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.Routing": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.Routing.Abstractions": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.Server.HttpSys": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.Server.IIS": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.Server.IISIntegration": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.Server.Kestrel": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.Server.Kestrel.Core": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.Server.Kestrel.Transport.NamedPipes": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.Server.Kestrel.Transport.Quic": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.Session": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.SignalR": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.SignalR.Common": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.SignalR.Core": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.SignalR.Protocols.Json": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.StaticAssets": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.StaticFiles": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.WebSockets": "(,10.0.32767]",
|
||||||
|
"Microsoft.AspNetCore.WebUtilities": "(,10.0.32767]",
|
||||||
|
"Microsoft.CSharp": "(,4.7.32767]",
|
||||||
|
"Microsoft.Extensions.Caching.Abstractions": "(,10.0.32767]",
|
||||||
|
"Microsoft.Extensions.Caching.Memory": "(,10.0.32767]",
|
||||||
|
"Microsoft.Extensions.Configuration": "(,10.0.32767]",
|
||||||
|
"Microsoft.Extensions.Configuration.Abstractions": "(,10.0.32767]",
|
||||||
|
"Microsoft.Extensions.Configuration.Binder": "(,10.0.32767]",
|
||||||
|
"Microsoft.Extensions.Configuration.CommandLine": "(,10.0.32767]",
|
||||||
|
"Microsoft.Extensions.Configuration.EnvironmentVariables": "(,10.0.32767]",
|
||||||
|
"Microsoft.Extensions.Configuration.FileExtensions": "(,10.0.32767]",
|
||||||
|
"Microsoft.Extensions.Configuration.Ini": "(,10.0.32767]",
|
||||||
|
"Microsoft.Extensions.Configuration.Json": "(,10.0.32767]",
|
||||||
|
"Microsoft.Extensions.Configuration.KeyPerFile": "(,10.0.32767]",
|
||||||
|
"Microsoft.Extensions.Configuration.UserSecrets": "(,10.0.32767]",
|
||||||
|
"Microsoft.Extensions.Configuration.Xml": "(,10.0.32767]",
|
||||||
|
"Microsoft.Extensions.DependencyInjection": "(,10.0.32767]",
|
||||||
|
"Microsoft.Extensions.DependencyInjection.Abstractions": "(,10.0.32767]",
|
||||||
|
"Microsoft.Extensions.Diagnostics": "(,10.0.32767]",
|
||||||
|
"Microsoft.Extensions.Diagnostics.Abstractions": "(,10.0.32767]",
|
||||||
|
"Microsoft.Extensions.Diagnostics.HealthChecks": "(,10.0.32767]",
|
||||||
|
"Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions": "(,10.0.32767]",
|
||||||
|
"Microsoft.Extensions.Features": "(,10.0.32767]",
|
||||||
|
"Microsoft.Extensions.FileProviders.Abstractions": "(,10.0.32767]",
|
||||||
|
"Microsoft.Extensions.FileProviders.Composite": "(,10.0.32767]",
|
||||||
|
"Microsoft.Extensions.FileProviders.Physical": "(,10.0.32767]",
|
||||||
|
"Microsoft.Extensions.FileSystemGlobbing": "(,10.0.32767]",
|
||||||
|
"Microsoft.Extensions.Hosting": "(,10.0.32767]",
|
||||||
|
"Microsoft.Extensions.Hosting.Abstractions": "(,10.0.32767]",
|
||||||
|
"Microsoft.Extensions.Http": "(,10.0.32767]",
|
||||||
|
"Microsoft.Extensions.Identity.Core": "(,10.0.32767]",
|
||||||
|
"Microsoft.Extensions.Identity.Stores": "(,10.0.32767]",
|
||||||
|
"Microsoft.Extensions.Localization": "(,10.0.32767]",
|
||||||
|
"Microsoft.Extensions.Localization.Abstractions": "(,10.0.32767]",
|
||||||
|
"Microsoft.Extensions.Logging": "(,10.0.32767]",
|
||||||
|
"Microsoft.Extensions.Logging.Abstractions": "(,10.0.32767]",
|
||||||
|
"Microsoft.Extensions.Logging.Configuration": "(,10.0.32767]",
|
||||||
|
"Microsoft.Extensions.Logging.Console": "(,10.0.32767]",
|
||||||
|
"Microsoft.Extensions.Logging.Debug": "(,10.0.32767]",
|
||||||
|
"Microsoft.Extensions.Logging.EventLog": "(,10.0.32767]",
|
||||||
|
"Microsoft.Extensions.Logging.EventSource": "(,10.0.32767]",
|
||||||
|
"Microsoft.Extensions.Logging.TraceSource": "(,10.0.32767]",
|
||||||
|
"Microsoft.Extensions.ObjectPool": "(,10.0.32767]",
|
||||||
|
"Microsoft.Extensions.Options": "(,10.0.32767]",
|
||||||
|
"Microsoft.Extensions.Options.ConfigurationExtensions": "(,10.0.32767]",
|
||||||
|
"Microsoft.Extensions.Options.DataAnnotations": "(,10.0.32767]",
|
||||||
|
"Microsoft.Extensions.Primitives": "(,10.0.32767]",
|
||||||
|
"Microsoft.Extensions.Validation": "(,10.0.32767]",
|
||||||
|
"Microsoft.Extensions.WebEncoders": "(,10.0.32767]",
|
||||||
|
"Microsoft.JSInterop": "(,10.0.32767]",
|
||||||
|
"Microsoft.Net.Http.Headers": "(,10.0.32767]",
|
||||||
|
"Microsoft.VisualBasic": "(,10.4.32767]",
|
||||||
|
"Microsoft.Win32.Primitives": "(,4.3.32767]",
|
||||||
|
"Microsoft.Win32.Registry": "(,5.0.32767]",
|
||||||
|
"runtime.any.System.Collections": "(,4.3.32767]",
|
||||||
|
"runtime.any.System.Diagnostics.Tools": "(,4.3.32767]",
|
||||||
|
"runtime.any.System.Diagnostics.Tracing": "(,4.3.32767]",
|
||||||
|
"runtime.any.System.Globalization": "(,4.3.32767]",
|
||||||
|
"runtime.any.System.Globalization.Calendars": "(,4.3.32767]",
|
||||||
|
"runtime.any.System.IO": "(,4.3.32767]",
|
||||||
|
"runtime.any.System.Reflection": "(,4.3.32767]",
|
||||||
|
"runtime.any.System.Reflection.Extensions": "(,4.3.32767]",
|
||||||
|
"runtime.any.System.Reflection.Primitives": "(,4.3.32767]",
|
||||||
|
"runtime.any.System.Resources.ResourceManager": "(,4.3.32767]",
|
||||||
|
"runtime.any.System.Runtime": "(,4.3.32767]",
|
||||||
|
"runtime.any.System.Runtime.Handles": "(,4.3.32767]",
|
||||||
|
"runtime.any.System.Runtime.InteropServices": "(,4.3.32767]",
|
||||||
|
"runtime.any.System.Text.Encoding": "(,4.3.32767]",
|
||||||
|
"runtime.any.System.Text.Encoding.Extensions": "(,4.3.32767]",
|
||||||
|
"runtime.any.System.Threading.Tasks": "(,4.3.32767]",
|
||||||
|
"runtime.any.System.Threading.Timer": "(,4.3.32767]",
|
||||||
|
"runtime.aot.System.Collections": "(,4.3.32767]",
|
||||||
|
"runtime.aot.System.Diagnostics.Tools": "(,4.3.32767]",
|
||||||
|
"runtime.aot.System.Diagnostics.Tracing": "(,4.3.32767]",
|
||||||
|
"runtime.aot.System.Globalization": "(,4.3.32767]",
|
||||||
|
"runtime.aot.System.Globalization.Calendars": "(,4.3.32767]",
|
||||||
|
"runtime.aot.System.IO": "(,4.3.32767]",
|
||||||
|
"runtime.aot.System.Reflection": "(,4.3.32767]",
|
||||||
|
"runtime.aot.System.Reflection.Extensions": "(,4.3.32767]",
|
||||||
|
"runtime.aot.System.Reflection.Primitives": "(,4.3.32767]",
|
||||||
|
"runtime.aot.System.Resources.ResourceManager": "(,4.3.32767]",
|
||||||
|
"runtime.aot.System.Runtime": "(,4.3.32767]",
|
||||||
|
"runtime.aot.System.Runtime.Handles": "(,4.3.32767]",
|
||||||
|
"runtime.aot.System.Runtime.InteropServices": "(,4.3.32767]",
|
||||||
|
"runtime.aot.System.Text.Encoding": "(,4.3.32767]",
|
||||||
|
"runtime.aot.System.Text.Encoding.Extensions": "(,4.3.32767]",
|
||||||
|
"runtime.aot.System.Threading.Tasks": "(,4.3.32767]",
|
||||||
|
"runtime.aot.System.Threading.Timer": "(,4.3.32767]",
|
||||||
|
"runtime.debian.8-x64.runtime.native.System": "(,4.3.32767]",
|
||||||
|
"runtime.debian.8-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
|
||||||
|
"runtime.debian.8-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
|
||||||
|
"runtime.debian.8-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
|
||||||
|
"runtime.debian.8-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]",
|
||||||
|
"runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]",
|
||||||
|
"runtime.debian.9-x64.runtime.native.System": "(,4.3.32767]",
|
||||||
|
"runtime.debian.9-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
|
||||||
|
"runtime.debian.9-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
|
||||||
|
"runtime.debian.9-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
|
||||||
|
"runtime.fedora.23-x64.runtime.native.System": "(,4.3.32767]",
|
||||||
|
"runtime.fedora.23-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
|
||||||
|
"runtime.fedora.23-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
|
||||||
|
"runtime.fedora.23-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
|
||||||
|
"runtime.fedora.23-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]",
|
||||||
|
"runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]",
|
||||||
|
"runtime.fedora.24-x64.runtime.native.System": "(,4.3.32767]",
|
||||||
|
"runtime.fedora.24-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
|
||||||
|
"runtime.fedora.24-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
|
||||||
|
"runtime.fedora.24-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
|
||||||
|
"runtime.fedora.24-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]",
|
||||||
|
"runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]",
|
||||||
|
"runtime.fedora.27-x64.runtime.native.System": "(,4.3.32767]",
|
||||||
|
"runtime.fedora.27-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
|
||||||
|
"runtime.fedora.27-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
|
||||||
|
"runtime.fedora.27-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
|
||||||
|
"runtime.fedora.28-x64.runtime.native.System": "(,4.3.32767]",
|
||||||
|
"runtime.fedora.28-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
|
||||||
|
"runtime.fedora.28-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
|
||||||
|
"runtime.fedora.28-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
|
||||||
|
"runtime.opensuse.13.2-x64.runtime.native.System": "(,4.3.32767]",
|
||||||
|
"runtime.opensuse.13.2-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
|
||||||
|
"runtime.opensuse.13.2-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
|
||||||
|
"runtime.opensuse.13.2-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
|
||||||
|
"runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]",
|
||||||
|
"runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]",
|
||||||
|
"runtime.opensuse.42.1-x64.runtime.native.System": "(,4.3.32767]",
|
||||||
|
"runtime.opensuse.42.1-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
|
||||||
|
"runtime.opensuse.42.1-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
|
||||||
|
"runtime.opensuse.42.1-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
|
||||||
|
"runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]",
|
||||||
|
"runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]",
|
||||||
|
"runtime.opensuse.42.3-x64.runtime.native.System": "(,4.3.32767]",
|
||||||
|
"runtime.opensuse.42.3-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
|
||||||
|
"runtime.opensuse.42.3-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
|
||||||
|
"runtime.opensuse.42.3-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
|
||||||
|
"runtime.osx.10.10-x64.runtime.native.System": "(,4.3.32767]",
|
||||||
|
"runtime.osx.10.10-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
|
||||||
|
"runtime.osx.10.10-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
|
||||||
|
"runtime.osx.10.10-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
|
||||||
|
"runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]",
|
||||||
|
"runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple": "(,4.3.32767]",
|
||||||
|
"runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]",
|
||||||
|
"runtime.rhel.7-x64.runtime.native.System": "(,4.3.32767]",
|
||||||
|
"runtime.rhel.7-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
|
||||||
|
"runtime.rhel.7-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
|
||||||
|
"runtime.rhel.7-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
|
||||||
|
"runtime.rhel.7-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]",
|
||||||
|
"runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]",
|
||||||
|
"runtime.ubuntu.14.04-x64.runtime.native.System": "(,4.3.32767]",
|
||||||
|
"runtime.ubuntu.14.04-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
|
||||||
|
"runtime.ubuntu.14.04-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
|
||||||
|
"runtime.ubuntu.14.04-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
|
||||||
|
"runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]",
|
||||||
|
"runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]",
|
||||||
|
"runtime.ubuntu.16.04-x64.runtime.native.System": "(,4.3.32767]",
|
||||||
|
"runtime.ubuntu.16.04-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
|
||||||
|
"runtime.ubuntu.16.04-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
|
||||||
|
"runtime.ubuntu.16.04-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
|
||||||
|
"runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]",
|
||||||
|
"runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]",
|
||||||
|
"runtime.ubuntu.16.10-x64.runtime.native.System": "(,4.3.32767]",
|
||||||
|
"runtime.ubuntu.16.10-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
|
||||||
|
"runtime.ubuntu.16.10-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
|
||||||
|
"runtime.ubuntu.16.10-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
|
||||||
|
"runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]",
|
||||||
|
"runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]",
|
||||||
|
"runtime.ubuntu.18.04-x64.runtime.native.System": "(,4.3.32767]",
|
||||||
|
"runtime.ubuntu.18.04-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
|
||||||
|
"runtime.ubuntu.18.04-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
|
||||||
|
"runtime.ubuntu.18.04-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
|
||||||
|
"runtime.unix.Microsoft.Win32.Primitives": "(,4.3.32767]",
|
||||||
|
"runtime.unix.System.Console": "(,4.3.32767]",
|
||||||
|
"runtime.unix.System.Diagnostics.Debug": "(,4.3.32767]",
|
||||||
|
"runtime.unix.System.IO.FileSystem": "(,4.3.32767]",
|
||||||
|
"runtime.unix.System.Net.Primitives": "(,4.3.32767]",
|
||||||
|
"runtime.unix.System.Net.Sockets": "(,4.3.32767]",
|
||||||
|
"runtime.unix.System.Private.Uri": "(,4.3.32767]",
|
||||||
|
"runtime.unix.System.Runtime.Extensions": "(,4.3.32767]",
|
||||||
|
"runtime.win.Microsoft.Win32.Primitives": "(,4.3.32767]",
|
||||||
|
"runtime.win.System.Console": "(,4.3.32767]",
|
||||||
|
"runtime.win.System.Diagnostics.Debug": "(,4.3.32767]",
|
||||||
|
"runtime.win.System.IO.FileSystem": "(,4.3.32767]",
|
||||||
|
"runtime.win.System.Net.Primitives": "(,4.3.32767]",
|
||||||
|
"runtime.win.System.Net.Sockets": "(,4.3.32767]",
|
||||||
|
"runtime.win.System.Runtime.Extensions": "(,4.3.32767]",
|
||||||
|
"runtime.win10-arm-aot.runtime.native.System.IO.Compression": "(,4.0.32767]",
|
||||||
|
"runtime.win10-arm64.runtime.native.System.IO.Compression": "(,4.3.32767]",
|
||||||
|
"runtime.win10-x64-aot.runtime.native.System.IO.Compression": "(,4.0.32767]",
|
||||||
|
"runtime.win10-x86-aot.runtime.native.System.IO.Compression": "(,4.0.32767]",
|
||||||
|
"runtime.win7-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
|
||||||
|
"runtime.win7-x86.runtime.native.System.IO.Compression": "(,4.3.32767]",
|
||||||
|
"runtime.win7.System.Private.Uri": "(,4.3.32767]",
|
||||||
|
"runtime.win8-arm.runtime.native.System.IO.Compression": "(,4.3.32767]",
|
||||||
|
"System.AppContext": "(,4.3.32767]",
|
||||||
|
"System.Buffers": "(,5.0.32767]",
|
||||||
|
"System.Collections": "(,4.3.32767]",
|
||||||
|
"System.Collections.Concurrent": "(,4.3.32767]",
|
||||||
|
"System.Collections.Immutable": "(,10.0.32767]",
|
||||||
|
"System.Collections.NonGeneric": "(,4.3.32767]",
|
||||||
|
"System.Collections.Specialized": "(,4.3.32767]",
|
||||||
|
"System.ComponentModel": "(,4.3.32767]",
|
||||||
|
"System.ComponentModel.Annotations": "(,4.3.32767]",
|
||||||
|
"System.ComponentModel.EventBasedAsync": "(,4.3.32767]",
|
||||||
|
"System.ComponentModel.Primitives": "(,4.3.32767]",
|
||||||
|
"System.ComponentModel.TypeConverter": "(,4.3.32767]",
|
||||||
|
"System.Console": "(,4.3.32767]",
|
||||||
|
"System.Data.Common": "(,4.3.32767]",
|
||||||
|
"System.Data.DataSetExtensions": "(,4.4.32767]",
|
||||||
|
"System.Diagnostics.Contracts": "(,4.3.32767]",
|
||||||
|
"System.Diagnostics.Debug": "(,4.3.32767]",
|
||||||
|
"System.Diagnostics.DiagnosticSource": "(,10.0.32767]",
|
||||||
|
"System.Diagnostics.EventLog": "(,10.0.32767]",
|
||||||
|
"System.Diagnostics.FileVersionInfo": "(,4.3.32767]",
|
||||||
|
"System.Diagnostics.Process": "(,4.3.32767]",
|
||||||
|
"System.Diagnostics.StackTrace": "(,4.3.32767]",
|
||||||
|
"System.Diagnostics.TextWriterTraceListener": "(,4.3.32767]",
|
||||||
|
"System.Diagnostics.Tools": "(,4.3.32767]",
|
||||||
|
"System.Diagnostics.TraceSource": "(,4.3.32767]",
|
||||||
|
"System.Diagnostics.Tracing": "(,4.3.32767]",
|
||||||
|
"System.Drawing.Primitives": "(,4.3.32767]",
|
||||||
|
"System.Dynamic.Runtime": "(,4.3.32767]",
|
||||||
|
"System.Formats.Asn1": "(,10.0.32767]",
|
||||||
|
"System.Formats.Cbor": "(,10.0.32767]",
|
||||||
|
"System.Formats.Tar": "(,10.0.32767]",
|
||||||
|
"System.Globalization": "(,4.3.32767]",
|
||||||
|
"System.Globalization.Calendars": "(,4.3.32767]",
|
||||||
|
"System.Globalization.Extensions": "(,4.3.32767]",
|
||||||
|
"System.IO": "(,4.3.32767]",
|
||||||
|
"System.IO.Compression": "(,4.3.32767]",
|
||||||
|
"System.IO.Compression.ZipFile": "(,4.3.32767]",
|
||||||
|
"System.IO.FileSystem": "(,4.3.32767]",
|
||||||
|
"System.IO.FileSystem.AccessControl": "(,4.4.32767]",
|
||||||
|
"System.IO.FileSystem.DriveInfo": "(,4.3.32767]",
|
||||||
|
"System.IO.FileSystem.Primitives": "(,4.3.32767]",
|
||||||
|
"System.IO.FileSystem.Watcher": "(,4.3.32767]",
|
||||||
|
"System.IO.IsolatedStorage": "(,4.3.32767]",
|
||||||
|
"System.IO.MemoryMappedFiles": "(,4.3.32767]",
|
||||||
|
"System.IO.Pipelines": "(,10.0.32767]",
|
||||||
|
"System.IO.Pipes": "(,4.3.32767]",
|
||||||
|
"System.IO.Pipes.AccessControl": "(,5.0.32767]",
|
||||||
|
"System.IO.UnmanagedMemoryStream": "(,4.3.32767]",
|
||||||
|
"System.Linq": "(,4.3.32767]",
|
||||||
|
"System.Linq.AsyncEnumerable": "(,10.0.32767]",
|
||||||
|
"System.Linq.Expressions": "(,4.3.32767]",
|
||||||
|
"System.Linq.Parallel": "(,4.3.32767]",
|
||||||
|
"System.Linq.Queryable": "(,4.3.32767]",
|
||||||
|
"System.Memory": "(,5.0.32767]",
|
||||||
|
"System.Net.Http": "(,4.3.32767]",
|
||||||
|
"System.Net.Http.Json": "(,10.0.32767]",
|
||||||
|
"System.Net.NameResolution": "(,4.3.32767]",
|
||||||
|
"System.Net.NetworkInformation": "(,4.3.32767]",
|
||||||
|
"System.Net.Ping": "(,4.3.32767]",
|
||||||
|
"System.Net.Primitives": "(,4.3.32767]",
|
||||||
|
"System.Net.Requests": "(,4.3.32767]",
|
||||||
|
"System.Net.Security": "(,4.3.32767]",
|
||||||
|
"System.Net.ServerSentEvents": "(,10.0.32767]",
|
||||||
|
"System.Net.Sockets": "(,4.3.32767]",
|
||||||
|
"System.Net.WebHeaderCollection": "(,4.3.32767]",
|
||||||
|
"System.Net.WebSockets": "(,4.3.32767]",
|
||||||
|
"System.Net.WebSockets.Client": "(,4.3.32767]",
|
||||||
|
"System.Numerics.Vectors": "(,5.0.32767]",
|
||||||
|
"System.ObjectModel": "(,4.3.32767]",
|
||||||
|
"System.Private.DataContractSerialization": "(,4.3.32767]",
|
||||||
|
"System.Private.Uri": "(,4.3.32767]",
|
||||||
|
"System.Reflection": "(,4.3.32767]",
|
||||||
|
"System.Reflection.DispatchProxy": "(,6.0.32767]",
|
||||||
|
"System.Reflection.Emit": "(,4.7.32767]",
|
||||||
|
"System.Reflection.Emit.ILGeneration": "(,4.7.32767]",
|
||||||
|
"System.Reflection.Emit.Lightweight": "(,4.7.32767]",
|
||||||
|
"System.Reflection.Extensions": "(,4.3.32767]",
|
||||||
|
"System.Reflection.Metadata": "(,10.0.32767]",
|
||||||
|
"System.Reflection.Primitives": "(,4.3.32767]",
|
||||||
|
"System.Reflection.TypeExtensions": "(,4.3.32767]",
|
||||||
|
"System.Resources.Reader": "(,4.3.32767]",
|
||||||
|
"System.Resources.ResourceManager": "(,4.3.32767]",
|
||||||
|
"System.Resources.Writer": "(,4.3.32767]",
|
||||||
|
"System.Runtime": "(,4.3.32767]",
|
||||||
|
"System.Runtime.CompilerServices.Unsafe": "(,7.0.32767]",
|
||||||
|
"System.Runtime.CompilerServices.VisualC": "(,4.3.32767]",
|
||||||
|
"System.Runtime.Extensions": "(,4.3.32767]",
|
||||||
|
"System.Runtime.Handles": "(,4.3.32767]",
|
||||||
|
"System.Runtime.InteropServices": "(,4.3.32767]",
|
||||||
|
"System.Runtime.InteropServices.RuntimeInformation": "(,4.3.32767]",
|
||||||
|
"System.Runtime.Loader": "(,4.3.32767]",
|
||||||
|
"System.Runtime.Numerics": "(,4.3.32767]",
|
||||||
|
"System.Runtime.Serialization.Formatters": "(,4.3.32767]",
|
||||||
|
"System.Runtime.Serialization.Json": "(,4.3.32767]",
|
||||||
|
"System.Runtime.Serialization.Primitives": "(,4.3.32767]",
|
||||||
|
"System.Runtime.Serialization.Xml": "(,4.3.32767]",
|
||||||
|
"System.Security.AccessControl": "(,6.0.32767]",
|
||||||
|
"System.Security.Claims": "(,4.3.32767]",
|
||||||
|
"System.Security.Cryptography.Algorithms": "(,4.3.32767]",
|
||||||
|
"System.Security.Cryptography.Cng": "(,5.0.32767]",
|
||||||
|
"System.Security.Cryptography.Csp": "(,4.3.32767]",
|
||||||
|
"System.Security.Cryptography.Encoding": "(,4.3.32767]",
|
||||||
|
"System.Security.Cryptography.OpenSsl": "(,5.0.32767]",
|
||||||
|
"System.Security.Cryptography.Primitives": "(,4.3.32767]",
|
||||||
|
"System.Security.Cryptography.X509Certificates": "(,4.3.32767]",
|
||||||
|
"System.Security.Cryptography.Xml": "(,10.0.32767]",
|
||||||
|
"System.Security.Principal": "(,4.3.32767]",
|
||||||
|
"System.Security.Principal.Windows": "(,5.0.32767]",
|
||||||
|
"System.Security.SecureString": "(,4.3.32767]",
|
||||||
|
"System.Text.Encoding": "(,4.3.32767]",
|
||||||
|
"System.Text.Encoding.CodePages": "(,10.0.32767]",
|
||||||
|
"System.Text.Encoding.Extensions": "(,4.3.32767]",
|
||||||
|
"System.Text.Encodings.Web": "(,10.0.32767]",
|
||||||
|
"System.Text.Json": "(,10.0.32767]",
|
||||||
|
"System.Text.RegularExpressions": "(,4.3.32767]",
|
||||||
|
"System.Threading": "(,4.3.32767]",
|
||||||
|
"System.Threading.AccessControl": "(,10.0.32767]",
|
||||||
|
"System.Threading.Channels": "(,10.0.32767]",
|
||||||
|
"System.Threading.Overlapped": "(,4.3.32767]",
|
||||||
|
"System.Threading.RateLimiting": "(,10.0.32767]",
|
||||||
|
"System.Threading.Tasks": "(,4.3.32767]",
|
||||||
|
"System.Threading.Tasks.Dataflow": "(,10.0.32767]",
|
||||||
|
"System.Threading.Tasks.Extensions": "(,5.0.32767]",
|
||||||
|
"System.Threading.Tasks.Parallel": "(,4.3.32767]",
|
||||||
|
"System.Threading.Thread": "(,4.3.32767]",
|
||||||
|
"System.Threading.ThreadPool": "(,4.3.32767]",
|
||||||
|
"System.Threading.Timer": "(,4.3.32767]",
|
||||||
|
"System.ValueTuple": "(,4.5.32767]",
|
||||||
|
"System.Xml.ReaderWriter": "(,4.3.32767]",
|
||||||
|
"System.Xml.XDocument": "(,4.3.32767]",
|
||||||
|
"System.Xml.XmlDocument": "(,4.3.32767]",
|
||||||
|
"System.Xml.XmlSerializer": "(,4.3.32767]",
|
||||||
|
"System.Xml.XPath": "(,4.3.32767]",
|
||||||
|
"System.Xml.XPath.XDocument": "(,5.0.32767]"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8" standalone="no"?>
|
||||||
|
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<PropertyGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
|
||||||
|
<RestoreSuccess Condition=" '$(RestoreSuccess)' == '' ">True</RestoreSuccess>
|
||||||
|
<RestoreTool Condition=" '$(RestoreTool)' == '' ">NuGet</RestoreTool>
|
||||||
|
<ProjectAssetsFile Condition=" '$(ProjectAssetsFile)' == '' ">$(MSBuildThisFileDirectory)project.assets.json</ProjectAssetsFile>
|
||||||
|
<NuGetPackageRoot Condition=" '$(NuGetPackageRoot)' == '' ">/Users/obezdienie001/.nuget/packages/</NuGetPackageRoot>
|
||||||
|
<NuGetPackageFolders Condition=" '$(NuGetPackageFolders)' == '' ">/Users/obezdienie001/.nuget/packages/</NuGetPackageFolders>
|
||||||
|
<NuGetProjectStyle Condition=" '$(NuGetProjectStyle)' == '' ">PackageReference</NuGetProjectStyle>
|
||||||
|
<NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">7.0.0</NuGetToolVersion>
|
||||||
|
</PropertyGroup>
|
||||||
|
<ItemGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
|
||||||
|
<SourceRoot Include="/Users/obezdienie001/.nuget/packages/" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ImportGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
|
||||||
|
<Import Project="$(NuGetPackageRoot)microsoft.extensions.apidescription.server/10.0.0/build/Microsoft.Extensions.ApiDescription.Server.props" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.apidescription.server/10.0.0/build/Microsoft.Extensions.ApiDescription.Server.props')" />
|
||||||
|
<Import Project="$(NuGetPackageRoot)swashbuckle.aspnetcore/10.1.5/build/Swashbuckle.AspNetCore.props" Condition="Exists('$(NuGetPackageRoot)swashbuckle.aspnetcore/10.1.5/build/Swashbuckle.AspNetCore.props')" />
|
||||||
|
</ImportGroup>
|
||||||
|
<PropertyGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
|
||||||
|
<PkgMicrosoft_Extensions_ApiDescription_Server Condition=" '$(PkgMicrosoft_Extensions_ApiDescription_Server)' == '' ">/Users/obezdienie001/.nuget/packages/microsoft.extensions.apidescription.server/10.0.0</PkgMicrosoft_Extensions_ApiDescription_Server>
|
||||||
|
</PropertyGroup>
|
||||||
|
</Project>
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8" standalone="no"?>
|
||||||
|
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<ImportGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
|
||||||
|
<Import Project="$(NuGetPackageRoot)microsoft.extensions.apidescription.server/10.0.0/build/Microsoft.Extensions.ApiDescription.Server.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.apidescription.server/10.0.0/build/Microsoft.Extensions.ApiDescription.Server.targets')" />
|
||||||
|
</ImportGroup>
|
||||||
|
</Project>
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
// <autogenerated />
|
||||||
|
using System;
|
||||||
|
using System.Reflection;
|
||||||
|
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v10.0", FrameworkDisplayName = ".NET 10.0")]
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
//------------------------------------------------------------------------------
|
||||||
|
// <auto-generated>
|
||||||
|
// This code was generated by a tool.
|
||||||
|
//
|
||||||
|
// Changes to this file may cause incorrect behavior and will be lost if
|
||||||
|
// the code is regenerated.
|
||||||
|
// </auto-generated>
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
using System;
|
||||||
|
using System.Reflection;
|
||||||
|
|
||||||
|
[assembly: System.Reflection.AssemblyCompanyAttribute("Azaion.Flights")]
|
||||||
|
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
|
||||||
|
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
|
||||||
|
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")]
|
||||||
|
[assembly: System.Reflection.AssemblyProductAttribute("Azaion.Flights")]
|
||||||
|
[assembly: System.Reflection.AssemblyTitleAttribute("Azaion.Flights")]
|
||||||
|
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
|
||||||
|
|
||||||
|
// Generated by the MSBuild WriteCodeFragment class.
|
||||||
|
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
69fcf38184d256aa7cb2849701f490f53f8ef75d8412b618a359cdae46bc431c
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
is_global = true
|
||||||
|
build_property.TargetFramework = net10.0
|
||||||
|
build_property.TargetFrameworkIdentifier = .NETCoreApp
|
||||||
|
build_property.TargetFrameworkVersion = v10.0
|
||||||
|
build_property.TargetPlatformMinVersion =
|
||||||
|
build_property.UsingMicrosoftNETSdkWeb = true
|
||||||
|
build_property.ProjectTypeGuids =
|
||||||
|
build_property.InvariantGlobalization =
|
||||||
|
build_property.PlatformNeutralAssembly =
|
||||||
|
build_property.EnforceExtendedAnalyzerRules =
|
||||||
|
build_property._SupportedPlatformList = Linux,macOS,Windows
|
||||||
|
build_property.RootNamespace = Azaion.Flights
|
||||||
|
build_property.RootNamespace = Azaion.Flights
|
||||||
|
build_property.ProjectDir = /Users/obezdienie001/dev/azaion/flights/
|
||||||
|
build_property.EnableComHosting =
|
||||||
|
build_property.EnableGeneratedComInterfaceComImportInterop =
|
||||||
|
build_property.RazorLangVersion = 9.0
|
||||||
|
build_property.SupportLocalizedComponentNames =
|
||||||
|
build_property.GenerateRazorMetadataSourceChecksumAttributes =
|
||||||
|
build_property.MSBuildProjectDirectory = /Users/obezdienie001/dev/azaion/flights
|
||||||
|
build_property._RazorSourceGeneratorDebug =
|
||||||
|
build_property.EffectiveAnalysisLevelStyle = 10.0
|
||||||
|
build_property.EnableCodeStyleSeverity =
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
// <auto-generated/>
|
||||||
|
global using Microsoft.AspNetCore.Builder;
|
||||||
|
global using Microsoft.AspNetCore.Hosting;
|
||||||
|
global using Microsoft.AspNetCore.Http;
|
||||||
|
global using Microsoft.AspNetCore.Routing;
|
||||||
|
global using Microsoft.Extensions.Configuration;
|
||||||
|
global using Microsoft.Extensions.DependencyInjection;
|
||||||
|
global using Microsoft.Extensions.Hosting;
|
||||||
|
global using Microsoft.Extensions.Logging;
|
||||||
|
global using System;
|
||||||
|
global using System.Collections.Generic;
|
||||||
|
global using System.IO;
|
||||||
|
global using System.Linq;
|
||||||
|
global using System.Net.Http;
|
||||||
|
global using System.Net.Http.Json;
|
||||||
|
global using System.Threading;
|
||||||
|
global using System.Threading.Tasks;
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
//------------------------------------------------------------------------------
|
||||||
|
// <auto-generated>
|
||||||
|
// This code was generated by a tool.
|
||||||
|
//
|
||||||
|
// Changes to this file may cause incorrect behavior and will be lost if
|
||||||
|
// the code is regenerated.
|
||||||
|
// </auto-generated>
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
using System;
|
||||||
|
using System.Reflection;
|
||||||
|
|
||||||
|
[assembly: Microsoft.AspNetCore.Mvc.ApplicationParts.ApplicationPartAttribute("Swashbuckle.AspNetCore.SwaggerGen")]
|
||||||
|
|
||||||
|
// Generated by the MSBuild WriteCodeFragment class.
|
||||||
|
|
||||||
Binary file not shown.
Binary file not shown.
@@ -0,0 +1 @@
|
|||||||
|
0722cdbc98f15b7227beec3f30710bc328bc5ec0765d4b391a9ddd7c4f03ce57
|
||||||
@@ -0,0 +1,44 @@
|
|||||||
|
/Users/obezdienie001/dev/azaion/annotations/flights/bin/Debug/net10.0/Azaion.Flights.staticwebassets.endpoints.json
|
||||||
|
/Users/obezdienie001/dev/azaion/annotations/flights/bin/Debug/net10.0/Azaion.Flights
|
||||||
|
/Users/obezdienie001/dev/azaion/annotations/flights/bin/Debug/net10.0/Azaion.Flights.deps.json
|
||||||
|
/Users/obezdienie001/dev/azaion/annotations/flights/bin/Debug/net10.0/Azaion.Flights.runtimeconfig.json
|
||||||
|
/Users/obezdienie001/dev/azaion/annotations/flights/bin/Debug/net10.0/Azaion.Flights.dll
|
||||||
|
/Users/obezdienie001/dev/azaion/annotations/flights/bin/Debug/net10.0/Azaion.Flights.pdb
|
||||||
|
/Users/obezdienie001/dev/azaion/annotations/flights/bin/Debug/net10.0/linq2db.dll
|
||||||
|
/Users/obezdienie001/dev/azaion/annotations/flights/bin/Debug/net10.0/Microsoft.AspNetCore.Authentication.JwtBearer.dll
|
||||||
|
/Users/obezdienie001/dev/azaion/annotations/flights/bin/Debug/net10.0/Microsoft.IdentityModel.Abstractions.dll
|
||||||
|
/Users/obezdienie001/dev/azaion/annotations/flights/bin/Debug/net10.0/Microsoft.IdentityModel.JsonWebTokens.dll
|
||||||
|
/Users/obezdienie001/dev/azaion/annotations/flights/bin/Debug/net10.0/Microsoft.IdentityModel.Logging.dll
|
||||||
|
/Users/obezdienie001/dev/azaion/annotations/flights/bin/Debug/net10.0/Microsoft.IdentityModel.Protocols.dll
|
||||||
|
/Users/obezdienie001/dev/azaion/annotations/flights/bin/Debug/net10.0/Microsoft.IdentityModel.Protocols.OpenIdConnect.dll
|
||||||
|
/Users/obezdienie001/dev/azaion/annotations/flights/bin/Debug/net10.0/Microsoft.IdentityModel.Tokens.dll
|
||||||
|
/Users/obezdienie001/dev/azaion/annotations/flights/bin/Debug/net10.0/Npgsql.dll
|
||||||
|
/Users/obezdienie001/dev/azaion/annotations/flights/bin/Debug/net10.0/System.IdentityModel.Tokens.Jwt.dll
|
||||||
|
/Users/obezdienie001/dev/azaion/annotations/flights/obj/Debug/net10.0/Azaion.Flights.csproj.AssemblyReference.cache
|
||||||
|
/Users/obezdienie001/dev/azaion/annotations/flights/obj/Debug/net10.0/rpswa.dswa.cache.json
|
||||||
|
/Users/obezdienie001/dev/azaion/annotations/flights/obj/Debug/net10.0/Azaion.Flights.GeneratedMSBuildEditorConfig.editorconfig
|
||||||
|
/Users/obezdienie001/dev/azaion/annotations/flights/obj/Debug/net10.0/Azaion.Flights.AssemblyInfoInputs.cache
|
||||||
|
/Users/obezdienie001/dev/azaion/annotations/flights/obj/Debug/net10.0/Azaion.Flights.AssemblyInfo.cs
|
||||||
|
/Users/obezdienie001/dev/azaion/annotations/flights/obj/Debug/net10.0/Azaion.Flights.csproj.CoreCompileInputs.cache
|
||||||
|
/Users/obezdienie001/dev/azaion/annotations/flights/obj/Debug/net10.0/Azaion.Flights.MvcApplicationPartsAssemblyInfo.cache
|
||||||
|
/Users/obezdienie001/dev/azaion/annotations/flights/obj/Debug/net10.0/Azaion.Flights.sourcelink.json
|
||||||
|
/Users/obezdienie001/dev/azaion/annotations/flights/obj/Debug/net10.0/rjimswa.dswa.cache.json
|
||||||
|
/Users/obezdienie001/dev/azaion/annotations/flights/obj/Debug/net10.0/rjsmrazor.dswa.cache.json
|
||||||
|
/Users/obezdienie001/dev/azaion/annotations/flights/obj/Debug/net10.0/rjsmcshtml.dswa.cache.json
|
||||||
|
/Users/obezdienie001/dev/azaion/annotations/flights/obj/Debug/net10.0/scopedcss/bundle/Azaion.Flights.styles.css
|
||||||
|
/Users/obezdienie001/dev/azaion/annotations/flights/obj/Debug/net10.0/staticwebassets.build.json
|
||||||
|
/Users/obezdienie001/dev/azaion/annotations/flights/obj/Debug/net10.0/staticwebassets.build.json.cache
|
||||||
|
/Users/obezdienie001/dev/azaion/annotations/flights/obj/Debug/net10.0/staticwebassets.development.json
|
||||||
|
/Users/obezdienie001/dev/azaion/annotations/flights/obj/Debug/net10.0/staticwebassets.build.endpoints.json
|
||||||
|
/Users/obezdienie001/dev/azaion/annotations/flights/obj/Debug/net10.0/swae.build.ex.cache
|
||||||
|
/Users/obezdienie001/dev/azaion/annotations/flights/obj/Debug/net10.0/Azaion.F.BBFA6382.Up2Date
|
||||||
|
/Users/obezdienie001/dev/azaion/annotations/flights/obj/Debug/net10.0/Azaion.Flights.dll
|
||||||
|
/Users/obezdienie001/dev/azaion/annotations/flights/obj/Debug/net10.0/refint/Azaion.Flights.dll
|
||||||
|
/Users/obezdienie001/dev/azaion/annotations/flights/obj/Debug/net10.0/Azaion.Flights.pdb
|
||||||
|
/Users/obezdienie001/dev/azaion/annotations/flights/obj/Debug/net10.0/Azaion.Flights.genruntimeconfig.cache
|
||||||
|
/Users/obezdienie001/dev/azaion/annotations/flights/obj/Debug/net10.0/ref/Azaion.Flights.dll
|
||||||
|
/Users/obezdienie001/dev/azaion/annotations/flights/obj/Debug/net10.0/Azaion.Flights.MvcApplicationPartsAssemblyInfo.cs
|
||||||
|
/Users/obezdienie001/dev/azaion/annotations/flights/bin/Debug/net10.0/Microsoft.OpenApi.dll
|
||||||
|
/Users/obezdienie001/dev/azaion/annotations/flights/bin/Debug/net10.0/Swashbuckle.AspNetCore.Swagger.dll
|
||||||
|
/Users/obezdienie001/dev/azaion/annotations/flights/bin/Debug/net10.0/Swashbuckle.AspNetCore.SwaggerGen.dll
|
||||||
|
/Users/obezdienie001/dev/azaion/annotations/flights/bin/Debug/net10.0/Swashbuckle.AspNetCore.SwaggerUI.dll
|
||||||
Binary file not shown.
@@ -0,0 +1 @@
|
|||||||
|
329cc244c39bfcf579ba36593d9ca6f878f0b724b108d9a5a39eafe385e49053
|
||||||
Binary file not shown.
@@ -0,0 +1 @@
|
|||||||
|
{"documents":{"/Users/obezdienie001/dev/azaion/annotations/*":"https://raw.githubusercontent.com/azaion/annotator/a9106d8fb210f61bd37b590bee328d02f379a723/*"}}
|
||||||
Executable
BIN
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1 @@
|
|||||||
|
{"GlobalPropertiesHash":"6RUMEyp6rfOZLUGnuEBvyWh0U7LZTMec54/SrEvULdo=","FingerprintPatternsHash":"gq3WsqcKBUGTSNle7RKKyXRIwh7M8ccEqOqYvIzoM04=","PropertyOverridesHash":"8ZRc1sGeVrPBx4lD717BgRaQekyh78QKV9SKsdt638U=","InputHashes":["96R2BGEt0RSK\u002BD4iPS9jBieHQgLGODGWjDvefboUlx0=","XHuzJ/f3aYj8V4lYokrrfUo5tvyHDiG8QrzvTGw3ujk=","gLGDiK3v7gSVAWruOIk780jHO4LY\u002BEbP10Qe2Vaq/4M="],"CachedAssets":{},"CachedCopyCandidates":{}}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"GlobalPropertiesHash":"YODwQVeYAyfBqQrPxf+hH2Y715W7A92phNKnKl1pY8w=","FingerprintPatternsHash":"gq3WsqcKBUGTSNle7RKKyXRIwh7M8ccEqOqYvIzoM04=","PropertyOverridesHash":"8ZRc1sGeVrPBx4lD717BgRaQekyh78QKV9SKsdt638U=","InputHashes":["96R2BGEt0RSK\u002BD4iPS9jBieHQgLGODGWjDvefboUlx0=","XHuzJ/f3aYj8V4lYokrrfUo5tvyHDiG8QrzvTGw3ujk=","gLGDiK3v7gSVAWruOIk780jHO4LY\u002BEbP10Qe2Vaq/4M="],"CachedAssets":{},"CachedCopyCandidates":{}}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"Version":1,"ManifestType":"Build","Endpoints":[]}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"Version":1,"Hash":"WnLwbqhjOFAkqLGWFUFMdZLG8TWHUYT+NI0fFe6BX2I=","Source":"Azaion.Flights","BasePath":"/","Mode":"Root","ManifestType":"Build","ReferencedProjectsConfiguration":[],"DiscoveryPatterns":[],"Assets":[],"Endpoints":[]}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
WnLwbqhjOFAkqLGWFUFMdZLG8TWHUYT+NI0fFe6BX2I=
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,25 @@
|
|||||||
|
{
|
||||||
|
"version": 2,
|
||||||
|
"dgSpecHash": "CjX9CQAiOaw=",
|
||||||
|
"success": true,
|
||||||
|
"projectFilePath": "/Users/obezdienie001/dev/azaion/annotations/flights/Azaion.Flights.csproj",
|
||||||
|
"expectedPackageFiles": [
|
||||||
|
"/Users/obezdienie001/.nuget/packages/linq2db/6.2.0/linq2db.6.2.0.nupkg.sha512",
|
||||||
|
"/Users/obezdienie001/.nuget/packages/microsoft.aspnetcore.authentication.jwtbearer/10.0.5/microsoft.aspnetcore.authentication.jwtbearer.10.0.5.nupkg.sha512",
|
||||||
|
"/Users/obezdienie001/.nuget/packages/microsoft.extensions.apidescription.server/10.0.0/microsoft.extensions.apidescription.server.10.0.0.nupkg.sha512",
|
||||||
|
"/Users/obezdienie001/.nuget/packages/microsoft.identitymodel.abstractions/8.0.1/microsoft.identitymodel.abstractions.8.0.1.nupkg.sha512",
|
||||||
|
"/Users/obezdienie001/.nuget/packages/microsoft.identitymodel.jsonwebtokens/8.0.1/microsoft.identitymodel.jsonwebtokens.8.0.1.nupkg.sha512",
|
||||||
|
"/Users/obezdienie001/.nuget/packages/microsoft.identitymodel.logging/8.0.1/microsoft.identitymodel.logging.8.0.1.nupkg.sha512",
|
||||||
|
"/Users/obezdienie001/.nuget/packages/microsoft.identitymodel.protocols/8.0.1/microsoft.identitymodel.protocols.8.0.1.nupkg.sha512",
|
||||||
|
"/Users/obezdienie001/.nuget/packages/microsoft.identitymodel.protocols.openidconnect/8.0.1/microsoft.identitymodel.protocols.openidconnect.8.0.1.nupkg.sha512",
|
||||||
|
"/Users/obezdienie001/.nuget/packages/microsoft.identitymodel.tokens/8.0.1/microsoft.identitymodel.tokens.8.0.1.nupkg.sha512",
|
||||||
|
"/Users/obezdienie001/.nuget/packages/microsoft.openapi/2.4.1/microsoft.openapi.2.4.1.nupkg.sha512",
|
||||||
|
"/Users/obezdienie001/.nuget/packages/npgsql/10.0.2/npgsql.10.0.2.nupkg.sha512",
|
||||||
|
"/Users/obezdienie001/.nuget/packages/swashbuckle.aspnetcore/10.1.5/swashbuckle.aspnetcore.10.1.5.nupkg.sha512",
|
||||||
|
"/Users/obezdienie001/.nuget/packages/swashbuckle.aspnetcore.swagger/10.1.5/swashbuckle.aspnetcore.swagger.10.1.5.nupkg.sha512",
|
||||||
|
"/Users/obezdienie001/.nuget/packages/swashbuckle.aspnetcore.swaggergen/10.1.5/swashbuckle.aspnetcore.swaggergen.10.1.5.nupkg.sha512",
|
||||||
|
"/Users/obezdienie001/.nuget/packages/swashbuckle.aspnetcore.swaggerui/10.1.5/swashbuckle.aspnetcore.swaggerui.10.1.5.nupkg.sha512",
|
||||||
|
"/Users/obezdienie001/.nuget/packages/system.identitymodel.tokens.jwt/8.0.1/system.identitymodel.tokens.jwt.8.0.1.nupkg.sha512"
|
||||||
|
],
|
||||||
|
"logs": []
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user