Compare commits

...

19 Commits

Author SHA1 Message Date
1a3ca3fc2d Patch endpoint 2026-03-26 17:49:43 +01:00
07bd241e0c Endpoint P2 2026-03-26 16:38:04 +01:00
579f50a2de Début endpoints 2026-03-26 15:34:49 +01:00
oistig
df6e559f00 Commit du reste des profils 2026-03-26 15:23:53 +01:00
oistig
1c1f9b2fcc Changements de models (à terminer) + GroupProfile 2026-03-19 17:53:02 +01:00
oistig
641552fba2 profiles encore parce que mathieu est un gros bebe 2026-03-19 17:06:15 +01:00
oistig
3699b28e03 Merge remote-tracking branch 'origin/develop' into develop
# Conflicts:
#	Knots/obj/Debug/net8.0/Knots.assets.cache
#	Knots/obj/Debug/net8.0/Knots.csproj.AssemblyReference.cache
#	Knots/obj/project.nuget.cache
#	Knots/obj/project.packagespec.json
#	Knots/obj/rider.project.model.nuget.info
#	Knots/obj/rider.project.restore.info
2026-03-19 16:45:46 +01:00
oistig
26106c5db9 Ajout des profiles (pas fini) + Ajout du builder automapper dans Program.cs 2026-03-19 16:45:28 +01:00
b4595c173c Fin validator 2026-03-19 16:44:48 +01:00
oistig
ecd038f020 Fusion des patchs Tel et Email en un Patch Contact 2026-03-19 16:25:34 +01:00
oistig
00b79a58d0 Merge remote-tracking branch 'origin/develop' into develop
# Conflicts:
#	Knots/obj/Debug/net8.0/Knots.AssemblyInfo.cs
#	Knots/obj/Debug/net8.0/Knots.AssemblyInfoInputs.cache
#	Knots/obj/rider.project.model.nuget.info
2026-03-19 16:19:07 +01:00
oistig
7c2e77ed99 Changements dans le Group Model + endpoints Patch des Groupes et Users 2026-03-19 16:18:52 +01:00
oistig
24613de57c commit 2026-03-19 15:11:43 +01:00
7acd4e7e11 Merge remote-tracking branch 'origin/develop' into develop 2026-03-19 15:10:00 +01:00
50227abc26 Validator update 2026-03-19 15:09:54 +01:00
oistig
dc9aa8c840 Merge remote-tracking branch 'origin/develop' into develop 2026-03-12 17:54:21 +01:00
oistig
3b178144ae Commit endpoints 2026-03-12 17:54:18 +01:00
3a83372403 Merge remote-tracking branch 'origin/develop' into develop 2026-03-12 17:44:44 +01:00
da3def1eea Ajout d'update pour patch + début validator 2026-03-12 17:44:39 +01:00
91 changed files with 1147 additions and 574 deletions

View File

@@ -2,5 +2,5 @@ namespace Knots.DTO.Group;
public class DeleteGroupDto public class DeleteGroupDto
{ {
public string? Id { get; set; } public int? Id { get; set; }
} }

View File

@@ -0,0 +1,7 @@
namespace Knots.DTO.Group;
public class UpdateGroupMembersAmountDto
{
public int Id { get; set; }
public int MembersAmount { get; set; }
}

View File

@@ -0,0 +1,7 @@
namespace Knots.DTO.Group;
public class UpdateGroupNameDto
{
public int Id { get; set; }
public string? Name { get; set; }
}

View File

@@ -0,0 +1,7 @@
namespace Knots.DTO.Group;
public class UpdateGroupProfilePictureDto
{
public int Id { get; set; }
public string? ProfilePicture { get; set; }
}

View File

@@ -2,6 +2,7 @@ namespace Knots.DTO.Message;
public class GetMessageDetailsDto public class GetMessageDetailsDto
{ {
public int Id { get; set; }
public string? Contenu { get; set; } public string? Contenu { get; set; }
public DateTime Date { get; set; } public DateTime Date { get; set; }
public Boolean Type { get; set; } public Boolean Type { get; set; }

View File

@@ -1,7 +0,0 @@
namespace Knots.DTO.Message;
public class UpdateMessageDto
{
public string? Contenu { get; set; }
public DateTime Date { get; set; }
}

View File

@@ -2,5 +2,5 @@ namespace Knots.DTO.Role;
public class GetRoleDto public class GetRoleDto
{ {
public string? Id { get; set; } public string? Libelle { get; set; }
} }

View File

@@ -0,0 +1,8 @@
namespace Knots.DTO.User;
public class UpdateUserContactDto
{
public int Id { get; set; }
public string? Email { get; set; }
public string? Tel { get; set; }
}

View File

@@ -0,0 +1,7 @@
namespace Knots.DTO.User;
public class UpdateUserDescriptionDto
{
public int Id { get; set; }
public string? Description {get; set;}
}

View File

@@ -2,10 +2,5 @@ namespace Knots.DTO.User;
public class UpdateUserDto public class UpdateUserDto
{ {
public string? Username { get; set; } public int Id { get; set; }
public string? Description {get; set;}
public string? Password { get; set; }
public string? Email { get; set; }
public string? Tel { get; set; }
public string? ProfilePicture { get; set; }
} }

View File

@@ -0,0 +1,7 @@
namespace Knots.DTO.User;
public class UpdateUserPasswordDto
{
public int Id { get; set; }
public string? Password { get; set; }
}

View File

@@ -0,0 +1,7 @@
namespace Knots.DTO.User;
public class UpdateUserProfilePictureDto
{
public int Id { get; set; }
public string? ProfilePicture { get; set; }
}

View File

@@ -0,0 +1,7 @@
namespace Knots.DTO.User;
public class UpdateUsernameDto
{
public int Id { get; set; }
public string? Username { get; set; }
}

View File

@@ -1,6 +1,21 @@
using FastEndpoints;
using Knots.DTO.Discussion;
namespace Knots.Endpoints.Discussion; namespace Knots.Endpoints.Discussion;
public class CreateDiscussionEndpoint public class CreateDiscussionEndpoint(KnotsDbContext db, AutoMapper.IMapper mapper) : Endpoint<CreateDiscussionDto>
{ {
public override void Configure()
{
Post("/discussions");
AllowAnonymous();
}
public override async Task HandleAsync(CreateDiscussionDto req, CancellationToken ct)
{
Models.Discussion? discussion = mapper.Map<Models.Discussion>(req);
db.Discussions.Add(discussion);
await db.SaveChangesAsync(ct);
await Send.NoContentAsync(ct);
}
} }

View File

@@ -1,6 +1,21 @@
using FastEndpoints;
using Knots.DTO.Discussion;
namespace Knots.Endpoints.Discussion; namespace Knots.Endpoints.Discussion;
public class DeleteDiscussionEndpoint public class DeleteDiscussionEndpoint(KnotsDbContext db, AutoMapper.IMapper mapper) : Endpoint<DeleteDiscussionDto>
{ {
public override void Configure()
{
Delete("/discussions");
AllowAnonymous();
}
public override async Task HandleAsync(DeleteDiscussionDto req, CancellationToken ct)
{
Models.Discussion? discussion = mapper.Map<Models.Discussion>(req);
db.Discussions.Remove(discussion);
await db.SaveChangesAsync(ct);
await Send.NoContentAsync(ct);
}
} }

View File

@@ -1,6 +1,29 @@
using Knots.DTO.Discussion;
using Knots.DTO.Key;
using Microsoft.EntityFrameworkCore;
using FastEndpoints;
namespace Knots.Endpoints.Discussion; namespace Knots.Endpoints.Discussion;
public class GetDiscussionEndpoint public class GetDiscussionEndpoint(KnotsDbContext db, AutoMapper.IMapper mapper) : Endpoint<GetDiscussionDto>
{ {
public override void Configure()
{
Get("/groups");
AllowAnonymous();
}
public override async Task HandleAsync(GetDiscussionDto req, CancellationToken ct)
{
Models.Discussion? databaseDiscussion = await db.Discussions.SingleOrDefaultAsync(x => x.Id == req.Id, cancellationToken: ct);
if (databaseDiscussion == null)
{
await Send.NotFoundAsync(ct);
return;
}
var keyDto = mapper.Map<GetKeyDetailsDto>(databaseDiscussion);
await Send.OkAsync(keyDto, ct);
}
} }

View File

@@ -1,6 +1,21 @@
using Knots.DTO.Group;
using FastEndpoints;
namespace Knots.Endpoints.Group; namespace Knots.Endpoints.Group;
public class CreateGroupEndpoint public class CreateGroupEndpoint(KnotsDbContext db, AutoMapper.IMapper mapper) : Endpoint<CreateGroupDto>
{ {
public override void Configure()
{
Post("/groups");
AllowAnonymous();
}
public override async Task HandleAsync(CreateGroupDto req, CancellationToken ct)
{
Models.Group? group = mapper.Map<Models.Group>(req);
db.Groups.Add(group);
await db.SaveChangesAsync(ct);
await Send.NoContentAsync(ct);
}
} }

View File

@@ -1,6 +1,21 @@
using FastEndpoints;
using Knots.DTO.Group;
namespace Knots.Endpoints.Group; namespace Knots.Endpoints.Group;
public class DeleteGroupEndpoint public class DeleteGroupEndpoint(KnotsDbContext db, AutoMapper.IMapper mapper) : Endpoint<DeleteGroupDto>
{ {
public override void Configure()
{
Delete("/groups");
AllowAnonymous();
}
public override async Task HandleAsync(DeleteGroupDto req, CancellationToken ct)
{
Models.Group? group = mapper.Map<Models.Group>(req);
db.Groups.Remove(group);
await db.SaveChangesAsync(ct);
await Send.NoContentAsync(ct);
}
} }

View File

@@ -1,6 +1,29 @@
using FastEndpoints;
using Knots.DTO.Group;
using Knots.DTO.Key;
using Microsoft.EntityFrameworkCore;
namespace Knots.Endpoints.Group; namespace Knots.Endpoints.Group;
public class GetGroupEndpoint public class GetGroupEndpoint(KnotsDbContext db, AutoMapper.IMapper mapper) : Endpoint<GetGroupDetailsDto>
{ {
public override void Configure()
{
Get("/groups");
AllowAnonymous();
}
public override async Task HandleAsync(GetGroupDetailsDto req, CancellationToken ct)
{
Models.Group? databaseGroup = await db.Groups.SingleOrDefaultAsync(x => x.Id == req.Id, cancellationToken: ct);
if (databaseGroup == null)
{
await Send.NotFoundAsync(ct);
return;
}
var keyDto = mapper.Map<GetKeyDetailsDto>(databaseGroup);
await Send.OkAsync(keyDto, ct);
}
} }

View File

@@ -0,0 +1,29 @@
using FastEndpoints;
using Knots.DTO.Group;
using Microsoft.EntityFrameworkCore;
namespace Knots.Endpoints.Group;
public class PatchGroupMembersAmountEndpoint(KnotsDbContext knotsDbContext) : Endpoint<UpdateGroupMembersAmountDto>
{
public override void Configure()
{
Patch("/groups/{@Id}/membersAmount/", x => new {x.Id});
AllowAnonymous();
}
public override async Task HandleAsync(UpdateGroupMembersAmountDto req, CancellationToken ct)
{
Models.Group? databaseGroup = await knotsDbContext.Groups.SingleOrDefaultAsync(x => x.Id == req.Id, cancellationToken: ct);
if (databaseGroup is null)
{
await Send.NotFoundAsync(ct);
return;
}
databaseGroup.MembersAmount = req.MembersAmount;
await knotsDbContext.SaveChangesAsync(ct);
await Send.NoContentAsync(ct);
}
}

View File

@@ -0,0 +1,29 @@
using FastEndpoints;
using Knots.DTO.Group;
using Microsoft.EntityFrameworkCore;
namespace Knots.Endpoints.Group;
public class PatchGroupNameEndpoint(KnotsDbContext knotsDbContext) : Endpoint<UpdateGroupNameDto>
{
public override void Configure()
{
Patch("/groups/{@Id}/name/", x => new {x.Id});
AllowAnonymous();
}
public override async Task HandleAsync(UpdateGroupNameDto req, CancellationToken ct)
{
Models.Group? databaseGroup = await knotsDbContext.Groups.SingleOrDefaultAsync(x => x.Id == req.Id, cancellationToken: ct);
if (databaseGroup is null)
{
await Send.NotFoundAsync(ct);
return;
}
databaseGroup.Name = req.Name;
await knotsDbContext.SaveChangesAsync(ct);
await Send.NoContentAsync(ct);
}
}

View File

@@ -0,0 +1,29 @@
using FastEndpoints;
using Knots.DTO.Group;
using Microsoft.EntityFrameworkCore;
namespace Knots.Endpoints.Group;
public class PatchGroupProfilePictureEndpoint(KnotsDbContext knotsDbContext) : Endpoint<UpdateGroupProfilePictureDto>
{
public override void Configure()
{
Patch("/groups/{@Id}/profilePicture/", x => new {x.Id});
AllowAnonymous();
}
public override async Task HandleAsync(UpdateGroupProfilePictureDto req, CancellationToken ct)
{
Models.Group? databaseGroup = await knotsDbContext.Groups.SingleOrDefaultAsync(x => x.Id == req.Id, cancellationToken: ct);
if (databaseGroup is null)
{
await Send.NotFoundAsync(ct);
return;
}
databaseGroup.ProfilePicture = req.ProfilePicture;
await knotsDbContext.SaveChangesAsync(ct);
await Send.NoContentAsync(ct);
}
}

View File

@@ -1,6 +1,21 @@
using Knots.DTO.Key;
using FastEndpoints;
namespace Knots.Endpoints.Key; namespace Knots.Endpoints.Key;
public class CreateKeyEndpoint public class CreateKeyEndpoint(KnotsDbContext db, AutoMapper.IMapper mapper) : Endpoint<CreateKeyDto>
{ {
public override void Configure()
{
Post("/groups");
AllowAnonymous();
}
public override async Task HandleAsync(CreateKeyDto req, CancellationToken ct)
{
Models.Key? key = mapper.Map<Models.Key>(req);
db.Keys.Add(key);
await db.SaveChangesAsync(ct);
await Send.NoContentAsync(ct);
}
} }

View File

@@ -1,6 +1,21 @@
using FastEndpoints;
using Knots.DTO.Key;
namespace Knots.Endpoints.Key; namespace Knots.Endpoints.Key;
public class DeleteKeyEndpoint public class DeleteKeyEndpoint(KnotsDbContext db, AutoMapper.IMapper mapper) : Endpoint<DeleteKeyDto>
{ {
public override void Configure()
{
Delete("/groups");
AllowAnonymous();
}
public override async Task HandleAsync(DeleteKeyDto req, CancellationToken ct)
{
Models.Key? key = mapper.Map<Models.Key>(req);
db.Keys.Remove(key);
await db.SaveChangesAsync(ct);
await Send.NoContentAsync(ct);
}
} }

View File

@@ -1,6 +1,29 @@
using FastEndpoints;
using Knots.DTO.Key;
using Knots.DTO.User;
using Microsoft.EntityFrameworkCore;
namespace Knots.Endpoints.Key; namespace Knots.Endpoints.Key;
public class GetKeyEndpoint public class GetKeyEndpoint(KnotsDbContext db, AutoMapper.IMapper mapper) : Endpoint <GetKeyDetailsDto>
{ {
public override void Configure()
{
Get("/keys/{@Id}");
AllowAnonymous();
}
public override async Task HandleAsync(GetKeyDetailsDto req, CancellationToken ct)
{
Models.Key? databaseKey = await db.Keys.SingleOrDefaultAsync(x => x.Id == req.Id, cancellationToken: ct);
if (databaseKey == null)
{
await Send.NotFoundAsync(ct);
return;
}
var keyDto = mapper.Map<GetKeyDetailsDto>(databaseKey);
await Send.OkAsync(keyDto, ct);
}
} }

View File

@@ -1,6 +1,21 @@
using FastEndpoints;
using Knots.DTO.Message;
namespace Knots.Endpoints.Message; namespace Knots.Endpoints.Message;
public class CreateMessageEndpoint public class CreateMessageEndpoint(KnotsDbContext db, AutoMapper.IMapper mapper) : Endpoint<CreateMessageDto>
{ {
public override void Configure()
{
Post("/messages");
AllowAnonymous();
}
public override async Task HandleAsync(CreateMessageDto req, CancellationToken ct)
{
Models.Message? message = mapper.Map<Models.Message>(req);
db.Messages.Add(message);
await db.SaveChangesAsync(ct);
await Send.NoContentAsync(ct);
}
} }

View File

@@ -1,6 +1,21 @@
using FastEndpoints;
using Knots.DTO.Message;
namespace Knots.Endpoints.Message; namespace Knots.Endpoints.Message;
public class DeleteMessageEndpoint public class DeleteMessageEndpoint(KnotsDbContext db, AutoMapper.IMapper mapper) : Endpoint<DeleteMessageDto>
{ {
public override void Configure()
{
Delete("/messages");
AllowAnonymous();
}
public override async Task HandleAsync(DeleteMessageDto req, CancellationToken ct)
{
Models.Message? message = mapper.Map<Models.Message>(req);
db.Messages.Remove(message);
await db.SaveChangesAsync(ct);
await Send.NoContentAsync(ct);
}
} }

View File

@@ -1,6 +1,29 @@
using FastEndpoints;
using Knots.DTO.Message;
using Knots.DTO.User;
using Microsoft.EntityFrameworkCore;
namespace Knots.Endpoints.Message; namespace Knots.Endpoints.Message;
public class GetMessageEndpoint public class GetMessageEndpoint(KnotsDbContext db, AutoMapper.IMapper mapper) : Endpoint <GetMessageDetailsDto>
{ {
public override void Configure()
{
Get("/messages/{@Id}");
AllowAnonymous();
}
public override async Task HandleAsync(GetMessageDetailsDto req, CancellationToken ct)
{
Models.Message? databaseMessage = await db.Messages.SingleOrDefaultAsync(x => x.Id == req.Id, cancellationToken: ct);
if (databaseMessage == null)
{
await Send.NotFoundAsync(ct);
return;
}
var messageDto = mapper.Map<GetMessageDetailsDto>(databaseMessage);
await Send.OkAsync(messageDto, ct);
}
} }

View File

@@ -1,6 +1,22 @@
using FastEndpoints;
using Knots.DTO.Role;
using Knots.DTO.User;
namespace Knots.Endpoints.Role; namespace Knots.Endpoints.Role;
public class CreateRoleEndpoint public class CreateRoleEndpoint(KnotsDbContext db, AutoMapper.IMapper mapper) : Endpoint<CreateRoleDto>
{ {
public override void Configure()
{
Post("/roles");
AllowAnonymous();
}
public override async Task HandleAsync(CreateRoleDto req, CancellationToken ct)
{
Models.Role? role = mapper.Map<Models.Role>(req);
db.Roles.Add(role);
await db.SaveChangesAsync(ct);
await Send.NoContentAsync(ct);
}
} }

View File

@@ -0,0 +1,21 @@
using FastEndpoints;
using Knots.DTO.Role;
namespace Knots.Endpoints.Role;
public class DeleteRoleEndpoint(KnotsDbContext db, AutoMapper.IMapper mapper) : Endpoint<DeleteRoleDto>
{
public override void Configure()
{
Delete("/roles");
AllowAnonymous();
}
public override async Task HandleAsync(DeleteRoleDto req, CancellationToken ct)
{
Models.Role? role = mapper.Map<Models.Role>(req);
db.Roles.Remove(role);
await db.SaveChangesAsync(ct);
await Send.NoContentAsync(ct);
}
}

View File

@@ -1,6 +1,29 @@
using FastEndpoints;
using Knots.DTO.Role;
using Knots.DTO.User;
using Microsoft.EntityFrameworkCore;
namespace Knots.Endpoints.Role; namespace Knots.Endpoints.Role;
public class GetRoleEndpoint public class GetRoleEndpoint(KnotsDbContext db, AutoMapper.IMapper mapper) : Endpoint <GetRoleDto>
{ {
public override void Configure()
{
Get ("/roles/{@Id}", x => new { x.Libelle });
AllowAnonymous();
}
public override async Task HandleAsync(GetRoleDto req, CancellationToken ct)
{
Models.Role? databaseRole = await db.Roles.SingleOrDefaultAsync(x => x.Libelle == req.Libelle, cancellationToken: ct);
if (databaseRole == null)
{
await Send.NotFoundAsync(ct);
return;
}
var roleDto = mapper.Map<GetRoleDto>(databaseRole);
await Send.OkAsync(roleDto, ct);
}
} }

View File

@@ -1,6 +0,0 @@
namespace Knots.Endpoints.Role;
public class UpdateRoleEndpoint
{
}

View File

@@ -3,7 +3,7 @@ using Knots.DTO.User;
namespace Knots.Endpoints.User; namespace Knots.Endpoints.User;
public class CreateUserEndpoint(KnotsDbContext knotsDbContext) : Endpoint<CreateUserDto, GetUserDto> public class CreateUserEndpoint(KnotsDbContext db, AutoMapper.IMapper mapper) : Endpoint<CreateUserDto, GetUserDto>
{ {
public override void Configure() public override void Configure()
{ {
@@ -13,24 +13,9 @@ public class CreateUserEndpoint(KnotsDbContext knotsDbContext) : Endpoint<Create
public override async Task HandleAsync(CreateUserDto req, CancellationToken ct) public override async Task HandleAsync(CreateUserDto req, CancellationToken ct)
{ {
Models.User user = new() Models.User? user = mapper.Map<Models.User>(req);
{ db.Users.Add(user);
Username = req.Username, await db.SaveChangesAsync(ct);
Description = req.Description, await Send.NoContentAsync(ct);
Password = req.Password,
Email = req.Email,
Tel = req.Tel,
ProfilePicture = req.ProfilePicture
};
knotsDbContext.Add(user);
await knotsDbContext.SaveChangesAsync(ct);
GetUserDto response = new()
{
Username = user.Username
};
await Send.OkAsync(response, ct);
} }
} }

View File

@@ -4,25 +4,18 @@ using Microsoft.EntityFrameworkCore;
namespace Knots.Endpoints.User; namespace Knots.Endpoints.User;
public class DeleteUserEndpoint(KnotsDbContext knotsDbContext) : Endpoint <GetUserDto, GetUserDetailsDto> public class DeleteUserEndpoint(KnotsDbContext db, AutoMapper.IMapper mapper) : Endpoint <DeleteUserDto>
{ {
public override void Configure() public override void Configure()
{ {
Delete ("/users/{@Id}", x => new { x.Username }); Delete ("/users/{@Id}");
} }
public override async Task HandleAsync(GetUserDto req, CancellationToken ct) public override async Task HandleAsync(DeleteUserDto req, CancellationToken ct)
{ {
Models.User? databaseUser = await knotsDbContext.Users.SingleOrDefaultAsync(x => x.Username == req.Username, cancellationToken: ct); Models.User? user = mapper.Map<Models.User>(req);
db.Users.Add(user);
if (databaseUser == null) await db.SaveChangesAsync(ct);
{
await Send.NotFoundAsync(ct);
return;
}
knotsDbContext.Users.Remove(databaseUser);
await knotsDbContext.SaveChangesAsync(ct);
await Send.NoContentAsync(ct); await Send.NoContentAsync(ct);
} }
} }

View File

@@ -1,10 +1,11 @@
using AutoMapper.QueryableExtensions;
using FastEndpoints; using FastEndpoints;
using Knots.DTO.User; using Knots.DTO.User;
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
namespace Knots.Endpoints.User; namespace Knots.Endpoints.User;
public class GetAllUsersEndpoint(KnotsDbContext knotsDbContext) : EndpointWithoutRequest<List<GetUserDto>> public class GetAllUsersEndpoint(KnotsDbContext db, AutoMapper.IMapper mapper) : EndpointWithoutRequest<List<GetUserDetailsDto>>
{ {
public override void Configure() public override void Configure()
{ {
@@ -14,10 +15,9 @@ public class GetAllUsersEndpoint(KnotsDbContext knotsDbContext) : EndpointWithou
public override async Task HandleAsync(CancellationToken ct) public override async Task HandleAsync(CancellationToken ct)
{ {
List<GetUserDto> users= await knotsDbContext.Users.Select(x => new GetUserDto() var users = await db.Users
{ .ProjectTo<GetUserDetailsDto>(mapper.ConfigurationProvider)
Username = x.Username, .ToListAsync(ct);
}).ToListAsync(ct);
await Send.OkAsync(users, ct); await Send.OkAsync(users, ct);
} }

View File

@@ -4,7 +4,7 @@ using Microsoft.EntityFrameworkCore;
namespace Knots.Endpoints.User; namespace Knots.Endpoints.User;
public class GetUserEndpoint(KnotsDbContext knotsDbContext) : Endpoint <GetUserDto, GetUserDetailsDto> public class GetUserEndpoint(KnotsDbContext db, AutoMapper.IMapper mapper) : Endpoint <GetUserDetailsDto>
{ {
public override void Configure() public override void Configure()
{ {
@@ -12,26 +12,17 @@ public class GetUserEndpoint(KnotsDbContext knotsDbContext) : Endpoint <GetUserD
AllowAnonymous(); AllowAnonymous();
} }
public override async Task HandleAsync(GetUserDto req, CancellationToken ct) public override async Task HandleAsync(GetUserDetailsDto req, CancellationToken ct)
{ {
Models.User? databaseLogin = await knotsDbContext.Users.SingleOrDefaultAsync(x => x.Username == req.Username, cancellationToken: ct); Models.User? databaseUser = await db.Users.SingleOrDefaultAsync(x => x.Username == req.Username, cancellationToken: ct);
if (databaseLogin == null) if (databaseUser == null)
{ {
await Send.NotFoundAsync(ct); await Send.NotFoundAsync(ct);
return; return;
} }
GetUserDetailsDto dto = new() var userDto = mapper.Map<GetUserDetailsDto>(databaseUser);
{ await Send.OkAsync(userDto, ct);
Username = databaseLogin.Username,
Description = databaseLogin.Description,
Password = databaseLogin.Password,
Email = databaseLogin.Email,
Tel = databaseLogin.Tel,
ProfilePicture = databaseLogin.ProfilePicture
};
await Send.OkAsync(dto, ct);
} }
} }

View File

@@ -0,0 +1,47 @@
using FastEndpoints;
using Knots.DTO.User;
using Microsoft.EntityFrameworkCore;
namespace Knots.Endpoints.User;
public class PatchUserContactEndpoint(KnotsDbContext db, AutoMapper.IMapper mapper) : Endpoint<UpdateUserContactDto>
{
public override void Configure()
{
Patch("/users/{@Id}/contact/", x => new {x.Id});
AllowAnonymous();
}
public override async Task HandleAsync(UpdateUserContactDto req, CancellationToken ct)
{
Models.User? databaseUser = await db.Users.SingleOrDefaultAsync(x => x.Id == req.Id, cancellationToken: ct);
if (databaseUser is null)
{
await Send.NotFoundAsync(ct);
return;
}
if (databaseUser.Email != req.Email)
{
databaseUser.Email = req.Email;
}
else
{
databaseUser.Email = databaseUser.Email;
}
if (databaseUser.Tel != req.Tel)
{
databaseUser.Tel = req.Tel;
}else
{
databaseUser.Tel = databaseUser.Tel;
}
mapper.Map(req, databaseUser);
await db.SaveChangesAsync(ct);
await Send.NoContentAsync(ct);
}
}

View File

@@ -0,0 +1,30 @@
using FastEndpoints;
using Knots.DTO.User;
using Microsoft.EntityFrameworkCore;
namespace Knots.Endpoints.User;
public class PatchUserDescriptionEndpoint(KnotsDbContext db, AutoMapper.IMapper mapper) : Endpoint<UpdateUserDescriptionDto>
{
public override void Configure()
{
Patch("/users/{@Id}/description/");
AllowAnonymous();
}
public override async Task HandleAsync(UpdateUserDescriptionDto req, CancellationToken ct)
{
Models.User? databaseUser = await db.Users.SingleOrDefaultAsync(x => x.Id == req.Id, cancellationToken: ct);
if (databaseUser is null)
{
await Send.NotFoundAsync(ct);
return;
}
mapper.Map(req, databaseUser);
await db.SaveChangesAsync(ct);
await Send.NoContentAsync(ct);
}
}

View File

@@ -0,0 +1,30 @@
using FastEndpoints;
using Knots.DTO.User;
using Microsoft.EntityFrameworkCore;
namespace Knots.Endpoints.User;
public class PatchUserPasswordEndpoint(KnotsDbContext db, AutoMapper.IMapper mapper) : Endpoint<UpdateUserPasswordDto>
{
public override void Configure()
{
Patch("/users/{@Id}/password/", x => new {x.Id});
AllowAnonymous();
}
public override async Task HandleAsync(UpdateUserPasswordDto req, CancellationToken ct)
{
Models.User? databaseUser = await db.Users.SingleOrDefaultAsync(x => x.Id == req.Id, cancellationToken: ct);
if (databaseUser is null)
{
await Send.NotFoundAsync(ct);
return;
}
mapper.Map(req, databaseUser);
await db.SaveChangesAsync(ct);
await Send.NoContentAsync(ct);
}
}

View File

@@ -0,0 +1,30 @@
using FastEndpoints;
using Knots.DTO.User;
using Microsoft.EntityFrameworkCore;
namespace Knots.Endpoints.User;
public class PatchUserProfilePictureEndpoint(KnotsDbContext db, AutoMapper.IMapper mapper) : Endpoint<UpdateUserProfilePictureDto>
{
public override void Configure()
{
Patch("/users/{@Id}/profilepicture/", x => new {x.Id});
AllowAnonymous();
}
public override async Task HandleAsync(UpdateUserProfilePictureDto req, CancellationToken ct)
{
Models.User? databaseUser = await db.Users.SingleOrDefaultAsync(x => x.Id == req.Id, cancellationToken: ct);
if (databaseUser is null)
{
await Send.NotFoundAsync(ct);
return;
}
mapper.Map(req, databaseUser);
await db.SaveChangesAsync(ct);
await Send.NoContentAsync(ct);
}
}

View File

@@ -0,0 +1,31 @@
using FastEndpoints;
using Knots.DTO.User;
using Microsoft.EntityFrameworkCore;
namespace Knots.Endpoints.User;
public class PatchUsernameEndpoint(KnotsDbContext db, AutoMapper.IMapper mapper) : Endpoint<UpdateUsernameDto>
{
public override void Configure()
{
Patch("/users/{@Id}/username/");
AllowAnonymous();
}
public override async Task HandleAsync(UpdateUsernameDto req, CancellationToken ct)
{
Models.User? databaseUser = await db.Users.SingleOrDefaultAsync(x => x.Id == req.Id, cancellationToken: ct);
if (databaseUser is null)
{
await Send.NotFoundAsync(ct);
return;
}
mapper.Map(req, databaseUser);
await db.SaveChangesAsync(ct);
await Send.NoContentAsync(ct);
}
}

View File

@@ -1,46 +0,0 @@
using FastEndpoints;
using Knots.DTO.User;
using Microsoft.EntityFrameworkCore;
namespace Knots.Endpoints.User;
public class UpdateUserEndpoint(KnotsDbContext knotsDbContext) : Endpoint <UpdateUserDto, GetUserDetailsDto>
{
public override void Configure()
{
Put ("/users/{@Id}", x => new { x.Username });
}
public override async Task HandleAsync(UpdateUserDto req, CancellationToken ct)
{
Models.User? databaseUser = await knotsDbContext.Users.SingleOrDefaultAsync(x => x.Username == req.Username, cancellationToken: ct);
if (databaseUser == null)
{
await Send.NotFoundAsync(ct);
return;
}
else
{
databaseUser.Username = req.Username;
databaseUser.Password = req.Password;
databaseUser.Description = req.Description;
databaseUser.Tel = req.Tel;
databaseUser.Email = req.Email;
databaseUser.ProfilePicture = req.ProfilePicture;
}
await knotsDbContext.SaveChangesAsync(ct);
GetUserDetailsDto dto = new()
{
Username = databaseUser.Username,
Password = databaseUser.Password,
Description = databaseUser.Description,
Tel = databaseUser.Tel,
Email = databaseUser.Email,
ProfilePicture = databaseUser.ProfilePicture
};
await Send.OkAsync(dto, ct);
}
}

View File

@@ -7,6 +7,7 @@
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="AutoMapper" Version="16.1.1" />
<PackageReference Include="FastEndpoints" Version="8.0.1" /> <PackageReference Include="FastEndpoints" Version="8.0.1" />
<PackageReference Include="FastEndpoints.Swagger" Version="8.0.1" /> <PackageReference Include="FastEndpoints.Swagger" Version="8.0.1" />
<PackageReference Include="Microsoft.AspNetCore.OpenApi" Version="8.0.25" /> <PackageReference Include="Microsoft.AspNetCore.OpenApi" Version="8.0.25" />

View File

@@ -5,4 +5,7 @@ namespace Knots.Models;
public class Discussion public class Discussion
{ {
[Key] public int Id { get; set; } [Key] public int Id { get; set; }
public List<Message> Messages { get; set; }
public Key KeyId { get; set; }
} }

View File

@@ -6,7 +6,10 @@ namespace Knots.Models;
public class Group public class Group
{ {
[Key] public int Id { get; set; } [Key] public int Id { get; set; }
[Required, MaxLength(50)] public string? Nom { get; set; } [Required, MaxLength(50)] public string? Name { get; set; }
[Required] public int NombreMembres { get; set; } [Required] public int MembersAmount { get; set; }
public string? ProfilePicture { get; set; } public string? ProfilePicture { get; set; }
public Key KeyId { get; set; }
List<Message> Messages { get; set; }
List<User> Users { get; set; }
} }

View File

@@ -6,4 +6,5 @@ public class Key
{ {
[Key] public int Id { get; set; } [Key] public int Id { get; set; }
[Required, MaxLength(50)] public string? EnKey { get; set; } [Required, MaxLength(50)] public string? EnKey { get; set; }
List<Message> Messages { get; set; }
} }

View File

@@ -8,4 +8,7 @@ public class Message
[Required, MaxLength(1000)] public string? Contenu { get; set; } [Required, MaxLength(1000)] public string? Contenu { get; set; }
[Required] public DateTime Date { get; set; } [Required] public DateTime Date { get; set; }
[Required] public Boolean Type { get; set; } [Required] public Boolean Type { get; set; }
public Group Group { get; set; }
public Key Key { get; set; }
public User User { get; set; }
} }

View File

@@ -5,5 +5,5 @@ namespace Knots.Models;
public class Role public class Role
{ {
public int Id { get; set; } public int Id { get; set; }
[Required, MaxLength(50)] public string Libelle { get; set; } [Required, MaxLength(50)] public string? Libelle { get; set; }
} }

View File

@@ -11,4 +11,5 @@ public class User
[Required, MaxLength(70)] public string? Email { get; set; } [Required, MaxLength(70)] public string? Email { get; set; }
[Required, Length(10, 10)] public string? Tel { get; set; } [Required, Length(10, 10)] public string? Tel { get; set; }
public string? ProfilePicture { get; set; } public string? ProfilePicture { get; set; }
public List<Message> Messages { get; set; }
} }

View File

@@ -0,0 +1,17 @@
using AutoMapper;
using Knots.DTO.Discussion;
using Knots.Models;
namespace Knots.Profiles;
public class DiscussionProfile : Profile
{
public DiscussionProfile()
{
CreateMap<Discussion, GetDiscussionDto>();
CreateMap<Discussion, CreateDiscussionDto>();
CreateMap<CreateDiscussionDto, Discussion>();
}
}

View File

@@ -0,0 +1,15 @@
using AutoMapper;
using Knots.DTO.Group;
using Knots.Models;
namespace Knots.Profiles;
public class GroupProfile : Profile
{
public GroupProfile()
{
CreateMap<Group, GetGroupDto>();
CreateMap<Group, GetGroupDetailsDto>();
CreateMap<CreateGroupDto, Group>();
}
}

View File

@@ -0,0 +1,16 @@
using AutoMapper;
using Knots.DTO.Discussion;
using Knots.DTO.Key;
using Knots.Models;
namespace Knots.Profiles;
public class KeyProfile : Profile
{
public KeyProfile()
{
CreateMap<Key, GetKeyDetailsDto>();
CreateMap<Key, CreateKeyDto>();
CreateMap<CreateKeyDto, Key>();
}
}

View File

@@ -0,0 +1,16 @@
using AutoMapper;
using Knots.DTO.Discussion;
using Knots.DTO.Message;
using Knots.Models;
namespace Knots.Profiles;
public class MessageProfile : Profile
{
MessageProfile()
{
CreateMap<Message, GetMessageDetailsDto>();
CreateMap<Message, CreateMessageDto>();
CreateMap<CreateMessageDto, Message>();
}
}

View File

@@ -0,0 +1,16 @@
using AutoMapper;
using Knots.DTO.Discussion;
using Knots.DTO.Role;
using Knots.Models;
namespace Knots.Profiles;
public class RoleProfile : Profile
{
public RoleProfile()
{
CreateMap<Role, GetRoleDto>();
CreateMap<Role, CreateRoleDto>();
CreateMap<CreateRoleDto, Role>();
}
}

View File

@@ -0,0 +1,29 @@
using AutoMapper;
using Knots.DTO.Discussion;
using Knots.DTO.User;
using Knots.Models;
namespace Knots.Profiles;
public class UserProfile : Profile
{
UserProfile()
{
CreateMap<User, GetUserDetailsDto>();
CreateMap<User, GetUserDto>();
CreateMap<CreateUserDto, User>();
CreateMap<UpdateUserDto, User>();
CreateMap<UpdateUserContactDto, User>();
CreateMap<UpdateUserDescriptionDto, User>();
CreateMap<UpdateUsernameDto, User>();
CreateMap<UpdateUserProfilePictureDto, User>();
CreateMap<UpdateUserPasswordDto, User>();
CreateMap<User, UpdateUserContactDto>();
CreateMap<User, UpdateUserDto>();
CreateMap<User, UpdateUserDescriptionDto>();
CreateMap<User, UpdateUserProfilePictureDto>();
CreateMap<User, UpdateUserPasswordDto>();
CreateMap<User, CreateUserDto>();
}
}

View File

@@ -18,6 +18,8 @@ builder.Services.AddCors(options =>
}); });
}); });
builder.Services.AddAutoMapper(cfg => { }, typeof(Program).Assembly);
// On construit l'application en lui donnant vie // On construit l'application en lui donnant vie
WebApplication app = builder.Build(); WebApplication app = builder.Build();
app.UseAuthentication() app.UseAuthentication()

View File

@@ -1,6 +1,15 @@
using FastEndpoints;
using FluentValidation;
using Knots.DTO.Discussion;
namespace Knots.Validators.Discussion; namespace Knots.Validators.Discussion;
public class CreateDiscussionDtoValidator public class CreateDiscussionDtoValidator : Validator<CreateDiscussionDto>
{ {
public CreateDiscussionDtoValidator()
{
RuleFor(x => x.Id)
.NotEmpty()
.WithMessage("Id is required");
}
} }

View File

@@ -1,6 +1,15 @@
using FastEndpoints;
using FluentValidation;
using Knots.DTO.Discussion;
namespace Knots.Validators.Discussion; namespace Knots.Validators.Discussion;
public class DeleteDiscussionDtoValidator public class DeleteDiscussionDtoValidator : Validator<DeleteDiscussionDto>
{ {
public DeleteDiscussionDtoValidator()
{
RuleFor(x => x.Id)
.NotEmpty()
.WithMessage("Id is required");
}
} }

View File

@@ -1,6 +0,0 @@
namespace Knots.Validators.Discussion;
public class GetDiscussionDtoValidator
{
}

View File

@@ -1,6 +1,21 @@
using FastEndpoints;
using FluentValidation;
using Knots.DTO.Group;
namespace Knots.Validators.Group; namespace Knots.Validators.Group;
public class CreateGroupDtoValidator public class CreateGroupDtoValidator : Validator<CreateGroupDto>
{ {
public CreateGroupDtoValidator()
{
RuleFor(x => x.Nom)
.NotEmpty()
.WithMessage("You must enter a name for the group")
.MaximumLength(50)
.WithMessage("Maximum 50 character are required");
RuleFor(x => x.NombreMembres)
.NotEmpty()
.WithMessage("Members cannot be empty");
}
} }

View File

@@ -1,6 +1,17 @@
using FastEndpoints;
using FluentValidation;
using Knots.DTO.Group;
namespace Knots.Validators.Group; namespace Knots.Validators.Group;
public class DeleteGroupDtoValidator public class DeleteGroupDtoValidator : Validator<DeleteGroupDto>
{ {
public DeleteGroupDtoValidator()
} {
RuleFor(x => x.Id)
.NotEmpty()
.WithMessage("Id is required")
.GreaterThan(0)
.WithMessage("Id cannot be less than zero");
}
}

View File

@@ -1,6 +0,0 @@
namespace Knots.Validators.Group;
public class GetGroupDetailsDtoValidator
{
}

View File

@@ -1,6 +1,15 @@
using FastEndpoints;
using FluentValidation;
using Knots.DTO.Group;
namespace Knots.Validators.Group; namespace Knots.Validators.Group;
public class GetGroupDtoValidator public class GetGroupDtoValidator : Validator<GetGroupDto>
{ {
public GetGroupDtoValidator()
{
RuleFor(x => x.Id)
.NotEmpty()
.WithMessage("Id cannot be empty");
}
} }

View File

@@ -1,6 +1,9 @@
using FastEndpoints;
using Knots.DTO.Group;
namespace Knots.Validators.Group; namespace Knots.Validators.Group;
public class UpdateGroupDtoValidator public class UpdateGroupDtoValidator : Validator<UpdateGroupDto>
{ {
} }

View File

@@ -0,0 +1,21 @@
using FastEndpoints;
using FluentValidation;
using Knots.DTO.Group;
namespace Knots.Validators.Group;
public class UpdateGroupMembersAmountDtoValidator : Validator<UpdateGroupMembersAmountDto>
{
public UpdateGroupMembersAmountDtoValidator()
{
RuleFor(x => x.Id)
.NotEmpty()
.WithMessage("L'id est requis")
.GreaterThan(0)
.WithMessage("L'id doit être supérieur à 0");
RuleFor(x => x.MembersAmount)
.NotEmpty()
.WithMessage("Le nombre de membres est requis");
}
}

View File

@@ -0,0 +1,20 @@
using FastEndpoints;
using FluentValidation;
using Knots.DTO.Group;
namespace Knots.Validators.Group;
public class UpdateGroupNameDtoValidator : Validator<UpdateGroupNameDto>
{
public UpdateGroupNameDtoValidator()
{
RuleFor(x => x.Id)
.NotNull()
.WithMessage("L'id doit être renseigné");
RuleFor(x => x.Name)
.NotEmpty()
.WithMessage("Le nom de groupe est requis");
}
}

View File

@@ -1,6 +1,15 @@
using FastEndpoints;
using FluentValidation;
using Knots.DTO.Key;
namespace Knots.Validators.Key; namespace Knots.Validators.Key;
public class CreateKeyDtoValidator public class CreateKeyDtoValidator : Validator<CreateKeyDto>
{ {
public CreateKeyDtoValidator()
{
RuleFor(x => x.EnKey)
.NotEmpty()
.WithMessage("La clé de chiffrement ne doit pas être nulle.");
}
} }

View File

@@ -1,6 +1,17 @@
using FastEndpoints;
using FluentValidation;
using Knots.DTO.Key;
namespace Knots.Validators.Key; namespace Knots.Validators.Key;
public class DeleteKeyDtoValidator public class DeleteKeyDtoValidator : Validator<DeleteKeyDto>
{ {
public DeleteKeyDtoValidator()
{
RuleFor(x => x.Id)
.NotEmpty()
.WithMessage("L'id doit être renseigné")
.GreaterThan(0)
.WithMessage("L'id renseigné doit être supérieur à 0");
}
} }

View File

@@ -1,6 +0,0 @@
namespace Knots.Validators.Key;
public class GetKeyDetailsDtoValidator
{
}

View File

@@ -1,6 +1,17 @@
using FastEndpoints;
using FluentValidation;
using Knots.DTO.Key;
namespace Knots.Validators.Key; namespace Knots.Validators.Key;
public class GetKeyDtoValidator public class GetKeyDtoValidator : Validator<GetKeyDto>
{ {
public GetKeyDtoValidator()
{
RuleFor(x => x.Id)
.NotEmpty()
.WithMessage("L'id est requis")
.GreaterThan(0)
.WithMessage("L'id doit être supérieur à 0");
}
} }

View File

@@ -1,6 +1,26 @@
using FastEndpoints;
using FluentValidation;
using Knots.DTO.Message;
namespace Knots.Validators.Message; namespace Knots.Validators.Message;
public class CreateMessageDtoValidator public class CreateMessageDtoValidator : Validator<CreateMessageDto>
{ {
public CreateMessageDtoValidator()
{
RuleFor(x => x.Contenu)
.NotEmpty()
.WithMessage("Le message ne peux pas être vide")
.MaximumLength(1000)
.WithMessage("Le message ne doit pas faire plus de 1000 caractères");
RuleFor(x => x.Date)
.NotEmpty()
.WithMessage("La date ne peut pas être vide");
RuleFor(x => x.Type)
.NotEmpty()
.WithMessage("Le type de message doit être renseigné");
}
} }

View File

@@ -1,6 +0,0 @@
namespace Knots.Validators.Message;
public class GetMessageDetailsDto
{
}

View File

@@ -1,6 +1,17 @@
using FastEndpoints;
using FluentValidation;
using Knots.DTO.Role;
namespace Knots.Validators.Role; namespace Knots.Validators.Role;
public class CreateRoleDtoValidator public class CreateRoleDtoValidator : Validator<CreateRoleDto>
{ {
public CreateRoleDtoValidator()
{
RuleFor(x => x.Libelle)
.NotEmpty()
.WithMessage("Libelle cannot be empty")
.MaximumLength(50)
.WithMessage("Libelle maximum length is 50");
}
} }

View File

@@ -1,6 +1,15 @@
using FastEndpoints;
using FluentValidation;
using Knots.DTO.Role;
namespace Knots.Validators.Role; namespace Knots.Validators.Role;
public class DeleteRoleDtoValidator public class DeleteRoleDtoValidator : Validator<DeleteRoleDto>
{ {
public DeleteRoleDtoValidator()
{
RuleFor(x => x.Id)
.NotEmpty()
.WithMessage("Id cannot be empty");
}
} }

View File

@@ -1,6 +1,17 @@
using FastEndpoints;
using FluentValidation;
using Knots.DTO.Role;
namespace Knots.Validators.Role; namespace Knots.Validators.Role;
public class GetRoleDtoValidator public class GetRoleDtoValidator : Validator<GetRoleDto>
{ {
public GetRoleDtoValidator()
{
RuleFor(x => x.Libelle)
.NotEmpty()
.WithMessage("Libelle cannot be empty")
.MaximumLength(50)
.WithMessage("Libelle maximum length is 50");
}
} }

View File

@@ -1,6 +0,0 @@
namespace Knots.Validators.User;
public class GetUserDetailsDtoValidator
{
}

View File

@@ -0,0 +1,27 @@
using FastEndpoints;
using FluentValidation;
using Knots.DTO.User;
namespace Knots.Validators.User;
public class UpdateUserContactDtoValidator : Validator<UpdateUserContactDto>
{
public UpdateUserContactDtoValidator()
{
RuleFor(x => x.Id)
.NotEmpty()
.WithMessage("L'id est requis")
.GreaterThan(0)
.WithMessage("L'id doit être supérieur à 0");
RuleFor(x => x.Email)
.NotEmpty()
.WithMessage("L'email est requis")
.EmailAddress()
.WithMessage("Ce n'est pas un email valide");
RuleFor(x => x.Tel)
.NotEmpty()
.WithMessage("Le numéro de téléphone est requis");
}
}

View File

@@ -0,0 +1,15 @@
using FastEndpoints;
using FluentValidation;
using Knots.DTO.User;
namespace Knots.Validators.User;
public class UpdateUserDescriptionDtoValidator : Validator<UpdateUserDescriptionDto>
{
public UpdateUserDescriptionDtoValidator()
{
RuleFor(x => x.Description)
.MaximumLength(200)
.WithMessage("La description ne doit pas dépasser les 200 caractères");
}
}

View File

@@ -0,0 +1,15 @@
using FastEndpoints;
using FluentValidation;
using Knots.DTO.User;
namespace Knots.Validators.User;
public class UpdateUserProfilePictureDtoValidator : Validator<UpdateUserProfilePictureDto>
{
public UpdateUserProfilePictureDtoValidator()
{
RuleFor(x => x.ProfilePicture)
.NotEmpty()
.WithMessage("La photo de profil ne doit pas être vide");
}
}

View File

@@ -0,0 +1,17 @@
using FastEndpoints;
using FluentValidation;
using Knots.DTO.User;
namespace Knots.Validators.User;
public class UpdateUsernameDtoValidator : Validator<UpdateUsernameDto>
{
public UpdateUsernameDtoValidator()
{
RuleFor(x => x.Username)
.NotEmpty()
.WithMessage("Le nom d'utilisateur doit être renseigné")
.MaximumLength(50)
.WithMessage("Le nom d'utilisateur ne doit pas dépasser les 50 caractères");
}
}

View File

@@ -13,7 +13,7 @@ using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("Knots")] [assembly: System.Reflection.AssemblyCompanyAttribute("Knots")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] [assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] [assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+db76d50079bd8ba155bd61dd1e6de2e36e26ec1b")] [assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+df6e559f006f05706fd56c688abf1721f8594ba7")]
[assembly: System.Reflection.AssemblyProductAttribute("Knots")] [assembly: System.Reflection.AssemblyProductAttribute("Knots")]
[assembly: System.Reflection.AssemblyTitleAttribute("Knots")] [assembly: System.Reflection.AssemblyTitleAttribute("Knots")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] [assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]

View File

@@ -1 +1 @@
779fa9ee144195dcfe3057aa46e3c8c1c55ddffa9229c6d8635ec11d69b98c0b 90acb1e49f12117818d98ae81eb2954f6e9b7aa37530698d570daa4a254b99a8

View File

@@ -44,6 +44,10 @@
"net8.0": { "net8.0": {
"targetAlias": "net8.0", "targetAlias": "net8.0",
"dependencies": { "dependencies": {
"AutoMapper": {
"target": "Package",
"version": "[16.1.1, )"
},
"FastEndpoints": { "FastEndpoints": {
"target": "Package", "target": "Package",
"version": "[8.0.1, )" "version": "[8.0.1, )"

View File

@@ -1,8 +1,8 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?> <?xml version="1.0" encoding="utf-8" standalone="no"?>
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ImportGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' "> <ImportGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<Import Project="$(NuGetPackageRoot)microsoft.extensions.options/10.0.3/buildTransitive/net8.0/Microsoft.Extensions.Options.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.options/10.0.3/buildTransitive/net8.0/Microsoft.Extensions.Options.targets')" />
<Import Project="$(NuGetPackageRoot)microsoft.extensions.logging.abstractions/10.0.3/buildTransitive/net8.0/Microsoft.Extensions.Logging.Abstractions.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.logging.abstractions/10.0.3/buildTransitive/net8.0/Microsoft.Extensions.Logging.Abstractions.targets')" /> <Import Project="$(NuGetPackageRoot)microsoft.extensions.logging.abstractions/10.0.3/buildTransitive/net8.0/Microsoft.Extensions.Logging.Abstractions.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.logging.abstractions/10.0.3/buildTransitive/net8.0/Microsoft.Extensions.Logging.Abstractions.targets')" />
<Import Project="$(NuGetPackageRoot)microsoft.extensions.options/10.0.3/buildTransitive/net8.0/Microsoft.Extensions.Options.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.options/10.0.3/buildTransitive/net8.0/Microsoft.Extensions.Options.targets')" />
<Import Project="$(NuGetPackageRoot)fastendpoints.swagger/8.0.1/build/FastEndpoints.Swagger.targets" Condition="Exists('$(NuGetPackageRoot)fastendpoints.swagger/8.0.1/build/FastEndpoints.Swagger.targets')" /> <Import Project="$(NuGetPackageRoot)fastendpoints.swagger/8.0.1/build/FastEndpoints.Swagger.targets" Condition="Exists('$(NuGetPackageRoot)fastendpoints.swagger/8.0.1/build/FastEndpoints.Swagger.targets')" />
</ImportGroup> </ImportGroup>
</Project> </Project>

View File

@@ -2,6 +2,24 @@
"version": 3, "version": 3,
"targets": { "targets": {
"net8.0": { "net8.0": {
"AutoMapper/16.1.1": {
"type": "package",
"dependencies": {
"Microsoft.Extensions.Logging.Abstractions": "10.0.0",
"Microsoft.Extensions.Options": "10.0.0",
"Microsoft.IdentityModel.JsonWebTokens": "8.14.0"
},
"compile": {
"lib/net8.0/AutoMapper.dll": {
"related": ".xml"
}
},
"runtime": {
"lib/net8.0/AutoMapper.dll": {
"related": ".xml"
}
}
},
"Azure.Core/1.38.0": { "Azure.Core/1.38.0": {
"type": "package", "type": "package",
"dependencies": { "dependencies": {
@@ -508,15 +526,6 @@
} }
} }
}, },
"Microsoft.CSharp/4.5.0": {
"type": "package",
"compile": {
"ref/netcoreapp2.0/_._": {}
},
"runtime": {
"lib/netcoreapp2.0/_._": {}
}
},
"Microsoft.Data.SqlClient/5.1.7": { "Microsoft.Data.SqlClient/5.1.7": {
"type": "package", "type": "package",
"dependencies": { "dependencies": {
@@ -964,50 +973,47 @@
} }
} }
}, },
"Microsoft.IdentityModel.Abstractions/6.35.0": { "Microsoft.IdentityModel.Abstractions/8.14.0": {
"type": "package", "type": "package",
"compile": { "compile": {
"lib/net6.0/Microsoft.IdentityModel.Abstractions.dll": { "lib/net8.0/Microsoft.IdentityModel.Abstractions.dll": {
"related": ".xml" "related": ".xml"
} }
}, },
"runtime": { "runtime": {
"lib/net6.0/Microsoft.IdentityModel.Abstractions.dll": { "lib/net8.0/Microsoft.IdentityModel.Abstractions.dll": {
"related": ".xml" "related": ".xml"
} }
} }
}, },
"Microsoft.IdentityModel.JsonWebTokens/6.35.0": { "Microsoft.IdentityModel.JsonWebTokens/8.14.0": {
"type": "package", "type": "package",
"dependencies": { "dependencies": {
"Microsoft.IdentityModel.Tokens": "6.35.0", "Microsoft.IdentityModel.Tokens": "8.14.0"
"System.Text.Encoding": "4.3.0",
"System.Text.Encodings.Web": "4.7.2",
"System.Text.Json": "4.7.2"
}, },
"compile": { "compile": {
"lib/net6.0/Microsoft.IdentityModel.JsonWebTokens.dll": { "lib/net8.0/Microsoft.IdentityModel.JsonWebTokens.dll": {
"related": ".xml" "related": ".xml"
} }
}, },
"runtime": { "runtime": {
"lib/net6.0/Microsoft.IdentityModel.JsonWebTokens.dll": { "lib/net8.0/Microsoft.IdentityModel.JsonWebTokens.dll": {
"related": ".xml" "related": ".xml"
} }
} }
}, },
"Microsoft.IdentityModel.Logging/6.35.0": { "Microsoft.IdentityModel.Logging/8.14.0": {
"type": "package", "type": "package",
"dependencies": { "dependencies": {
"Microsoft.IdentityModel.Abstractions": "6.35.0" "Microsoft.IdentityModel.Abstractions": "8.14.0"
}, },
"compile": { "compile": {
"lib/net6.0/Microsoft.IdentityModel.Logging.dll": { "lib/net8.0/Microsoft.IdentityModel.Logging.dll": {
"related": ".xml" "related": ".xml"
} }
}, },
"runtime": { "runtime": {
"lib/net6.0/Microsoft.IdentityModel.Logging.dll": { "lib/net8.0/Microsoft.IdentityModel.Logging.dll": {
"related": ".xml" "related": ".xml"
} }
} }
@@ -1046,42 +1052,23 @@
} }
} }
}, },
"Microsoft.IdentityModel.Tokens/6.35.0": { "Microsoft.IdentityModel.Tokens/8.14.0": {
"type": "package", "type": "package",
"dependencies": { "dependencies": {
"Microsoft.CSharp": "4.5.0", "Microsoft.Extensions.Logging.Abstractions": "8.0.0",
"Microsoft.IdentityModel.Logging": "6.35.0", "Microsoft.IdentityModel.Logging": "8.14.0"
"System.Security.Cryptography.Cng": "4.5.0"
}, },
"compile": { "compile": {
"lib/net6.0/Microsoft.IdentityModel.Tokens.dll": { "lib/net8.0/Microsoft.IdentityModel.Tokens.dll": {
"related": ".xml" "related": ".xml"
} }
}, },
"runtime": { "runtime": {
"lib/net6.0/Microsoft.IdentityModel.Tokens.dll": { "lib/net8.0/Microsoft.IdentityModel.Tokens.dll": {
"related": ".xml" "related": ".xml"
} }
} }
}, },
"Microsoft.NETCore.Platforms/1.1.0": {
"type": "package",
"compile": {
"lib/netstandard1.0/_._": {}
},
"runtime": {
"lib/netstandard1.0/_._": {}
}
},
"Microsoft.NETCore.Targets/1.1.0": {
"type": "package",
"compile": {
"lib/netstandard1.0/_._": {}
},
"runtime": {
"lib/netstandard1.0/_._": {}
}
},
"Microsoft.OpenApi/1.4.3": { "Microsoft.OpenApi/1.4.3": {
"type": "package", "type": "package",
"compile": { "compile": {
@@ -1671,18 +1658,6 @@
"buildTransitive/netcoreapp3.1/_._": {} "buildTransitive/netcoreapp3.1/_._": {}
} }
}, },
"System.Runtime/4.3.0": {
"type": "package",
"dependencies": {
"Microsoft.NETCore.Platforms": "1.1.0",
"Microsoft.NETCore.Targets": "1.1.0"
},
"compile": {
"ref/netstandard1.5/System.Runtime.dll": {
"related": ".xml"
}
}
},
"System.Runtime.Caching/6.0.0": { "System.Runtime.Caching/6.0.0": {
"type": "package", "type": "package",
"dependencies": { "dependencies": {
@@ -1833,19 +1808,6 @@
} }
} }
}, },
"System.Text.Encoding/4.3.0": {
"type": "package",
"dependencies": {
"Microsoft.NETCore.Platforms": "1.1.0",
"Microsoft.NETCore.Targets": "1.1.0",
"System.Runtime": "4.3.0"
},
"compile": {
"ref/netstandard1.3/System.Text.Encoding.dll": {
"related": ".xml"
}
}
},
"System.Text.Encoding.CodePages/6.0.0": { "System.Text.Encoding.CodePages/6.0.0": {
"type": "package", "type": "package",
"dependencies": { "dependencies": {
@@ -1969,6 +1931,30 @@
} }
}, },
"libraries": { "libraries": {
"AutoMapper/16.1.1": {
"sha512": "VNEky8JA15ci+oIDRGHITOGOpV4dILsf8pnn24QhDl2urtqgJ2IXiS/V2EtGU17P/+f6OeFQPJETaZXV9QOIZg==",
"type": "package",
"path": "automapper/16.1.1",
"files": [
".nupkg.metadata",
".signature.p7s",
"LICENSE.md",
"README.md",
"automapper.16.1.1.nupkg.sha512",
"automapper.nuspec",
"icon.png",
"lib/net10.0/AutoMapper.dll",
"lib/net10.0/AutoMapper.xml",
"lib/net471/AutoMapper.dll",
"lib/net471/AutoMapper.xml",
"lib/net8.0/AutoMapper.dll",
"lib/net8.0/AutoMapper.xml",
"lib/net9.0/AutoMapper.dll",
"lib/net9.0/AutoMapper.xml",
"lib/netstandard2.0/AutoMapper.dll",
"lib/netstandard2.0/AutoMapper.xml"
]
},
"Azure.Core/1.38.0": { "Azure.Core/1.38.0": {
"sha512": "IuEgCoVA0ef7E4pQtpC3+TkPbzaoQfa77HlfJDmfuaJUCVJmn7fT0izamZiryW5sYUFKizsftIxMkXKbgIcPMQ==", "sha512": "IuEgCoVA0ef7E4pQtpC3+TkPbzaoQfa77HlfJDmfuaJUCVJmn7fT0izamZiryW5sYUFKizsftIxMkXKbgIcPMQ==",
"type": "package", "type": "package",
@@ -2667,74 +2653,6 @@
"microsoft.codeanalysis.workspaces.common.nuspec" "microsoft.codeanalysis.workspaces.common.nuspec"
] ]
}, },
"Microsoft.CSharp/4.5.0": {
"sha512": "kaj6Wb4qoMuH3HySFJhxwQfe8R/sJsNJnANrvv8WdFPMoNbKY5htfNscv+LHCu5ipz+49m2e+WQXpLXr9XYemQ==",
"type": "package",
"path": "microsoft.csharp/4.5.0",
"files": [
".nupkg.metadata",
".signature.p7s",
"LICENSE.TXT",
"THIRD-PARTY-NOTICES.TXT",
"lib/MonoAndroid10/_._",
"lib/MonoTouch10/_._",
"lib/net45/_._",
"lib/netcore50/Microsoft.CSharp.dll",
"lib/netcoreapp2.0/_._",
"lib/netstandard1.3/Microsoft.CSharp.dll",
"lib/netstandard2.0/Microsoft.CSharp.dll",
"lib/portable-net45+win8+wp8+wpa81/_._",
"lib/uap10.0.16299/_._",
"lib/win8/_._",
"lib/wp80/_._",
"lib/wpa81/_._",
"lib/xamarinios10/_._",
"lib/xamarinmac20/_._",
"lib/xamarintvos10/_._",
"lib/xamarinwatchos10/_._",
"microsoft.csharp.4.5.0.nupkg.sha512",
"microsoft.csharp.nuspec",
"ref/MonoAndroid10/_._",
"ref/MonoTouch10/_._",
"ref/net45/_._",
"ref/netcore50/Microsoft.CSharp.dll",
"ref/netcore50/Microsoft.CSharp.xml",
"ref/netcore50/de/Microsoft.CSharp.xml",
"ref/netcore50/es/Microsoft.CSharp.xml",
"ref/netcore50/fr/Microsoft.CSharp.xml",
"ref/netcore50/it/Microsoft.CSharp.xml",
"ref/netcore50/ja/Microsoft.CSharp.xml",
"ref/netcore50/ko/Microsoft.CSharp.xml",
"ref/netcore50/ru/Microsoft.CSharp.xml",
"ref/netcore50/zh-hans/Microsoft.CSharp.xml",
"ref/netcore50/zh-hant/Microsoft.CSharp.xml",
"ref/netcoreapp2.0/_._",
"ref/netstandard1.0/Microsoft.CSharp.dll",
"ref/netstandard1.0/Microsoft.CSharp.xml",
"ref/netstandard1.0/de/Microsoft.CSharp.xml",
"ref/netstandard1.0/es/Microsoft.CSharp.xml",
"ref/netstandard1.0/fr/Microsoft.CSharp.xml",
"ref/netstandard1.0/it/Microsoft.CSharp.xml",
"ref/netstandard1.0/ja/Microsoft.CSharp.xml",
"ref/netstandard1.0/ko/Microsoft.CSharp.xml",
"ref/netstandard1.0/ru/Microsoft.CSharp.xml",
"ref/netstandard1.0/zh-hans/Microsoft.CSharp.xml",
"ref/netstandard1.0/zh-hant/Microsoft.CSharp.xml",
"ref/netstandard2.0/Microsoft.CSharp.dll",
"ref/netstandard2.0/Microsoft.CSharp.xml",
"ref/portable-net45+win8+wp8+wpa81/_._",
"ref/uap10.0.16299/_._",
"ref/win8/_._",
"ref/wp80/_._",
"ref/wpa81/_._",
"ref/xamarinios10/_._",
"ref/xamarinmac20/_._",
"ref/xamarintvos10/_._",
"ref/xamarinwatchos10/_._",
"useSharedDesignerContext.txt",
"version.txt"
]
},
"Microsoft.Data.SqlClient/5.1.7": { "Microsoft.Data.SqlClient/5.1.7": {
"sha512": "awBwR6pCRyiFqB5z1iu+eMaFmt986JWgaA1+LR+vsdIRBgeBI5X8f3u+ZPnTqlHUwfTugl6ptIObzalWeAPugQ==", "sha512": "awBwR6pCRyiFqB5z1iu+eMaFmt986JWgaA1+LR+vsdIRBgeBI5X8f3u+ZPnTqlHUwfTugl6ptIObzalWeAPugQ==",
"type": "package", "type": "package",
@@ -3390,72 +3308,75 @@
"microsoft.identity.client.extensions.msal.nuspec" "microsoft.identity.client.extensions.msal.nuspec"
] ]
}, },
"Microsoft.IdentityModel.Abstractions/6.35.0": { "Microsoft.IdentityModel.Abstractions/8.14.0": {
"sha512": "xuR8E4Rd96M41CnUSCiOJ2DBh+z+zQSmyrYHdYhD6K4fXBcQGVnRCFQ0efROUYpP+p0zC1BLKr0JRpVuujTZSg==", "sha512": "iwbCpSjD3ehfTwBhtSNEtKPK0ICun6ov7Ibx6ISNA9bfwIyzI2Siwyi9eJFCJBwxowK9xcA1mj+jBWiigeqgcQ==",
"type": "package", "type": "package",
"path": "microsoft.identitymodel.abstractions/6.35.0", "path": "microsoft.identitymodel.abstractions/8.14.0",
"files": [ "files": [
".nupkg.metadata", ".nupkg.metadata",
".signature.p7s", ".signature.p7s",
"lib/net45/Microsoft.IdentityModel.Abstractions.dll", "README.md",
"lib/net45/Microsoft.IdentityModel.Abstractions.xml",
"lib/net461/Microsoft.IdentityModel.Abstractions.dll",
"lib/net461/Microsoft.IdentityModel.Abstractions.xml",
"lib/net462/Microsoft.IdentityModel.Abstractions.dll", "lib/net462/Microsoft.IdentityModel.Abstractions.dll",
"lib/net462/Microsoft.IdentityModel.Abstractions.xml", "lib/net462/Microsoft.IdentityModel.Abstractions.xml",
"lib/net472/Microsoft.IdentityModel.Abstractions.dll", "lib/net472/Microsoft.IdentityModel.Abstractions.dll",
"lib/net472/Microsoft.IdentityModel.Abstractions.xml", "lib/net472/Microsoft.IdentityModel.Abstractions.xml",
"lib/net6.0/Microsoft.IdentityModel.Abstractions.dll", "lib/net6.0/Microsoft.IdentityModel.Abstractions.dll",
"lib/net6.0/Microsoft.IdentityModel.Abstractions.xml", "lib/net6.0/Microsoft.IdentityModel.Abstractions.xml",
"lib/net8.0/Microsoft.IdentityModel.Abstractions.dll",
"lib/net8.0/Microsoft.IdentityModel.Abstractions.xml",
"lib/net9.0/Microsoft.IdentityModel.Abstractions.dll",
"lib/net9.0/Microsoft.IdentityModel.Abstractions.xml",
"lib/netstandard2.0/Microsoft.IdentityModel.Abstractions.dll", "lib/netstandard2.0/Microsoft.IdentityModel.Abstractions.dll",
"lib/netstandard2.0/Microsoft.IdentityModel.Abstractions.xml", "lib/netstandard2.0/Microsoft.IdentityModel.Abstractions.xml",
"microsoft.identitymodel.abstractions.6.35.0.nupkg.sha512", "microsoft.identitymodel.abstractions.8.14.0.nupkg.sha512",
"microsoft.identitymodel.abstractions.nuspec" "microsoft.identitymodel.abstractions.nuspec"
] ]
}, },
"Microsoft.IdentityModel.JsonWebTokens/6.35.0": { "Microsoft.IdentityModel.JsonWebTokens/8.14.0": {
"sha512": "9wxai3hKgZUb4/NjdRKfQd0QJvtXKDlvmGMYACbEC8DFaicMFCFhQFZq9ZET1kJLwZahf2lfY5Gtcpsx8zYzbg==", "sha512": "4jOpiA4THdtpLyMdAb24dtj7+6GmvhOhxf5XHLYWmPKF8ApEnApal1UnJsKO4HxUWRXDA6C4WQVfYyqsRhpNpQ==",
"type": "package", "type": "package",
"path": "microsoft.identitymodel.jsonwebtokens/6.35.0", "path": "microsoft.identitymodel.jsonwebtokens/8.14.0",
"files": [ "files": [
".nupkg.metadata", ".nupkg.metadata",
".signature.p7s", ".signature.p7s",
"lib/net45/Microsoft.IdentityModel.JsonWebTokens.dll", "README.md",
"lib/net45/Microsoft.IdentityModel.JsonWebTokens.xml",
"lib/net461/Microsoft.IdentityModel.JsonWebTokens.dll",
"lib/net461/Microsoft.IdentityModel.JsonWebTokens.xml",
"lib/net462/Microsoft.IdentityModel.JsonWebTokens.dll", "lib/net462/Microsoft.IdentityModel.JsonWebTokens.dll",
"lib/net462/Microsoft.IdentityModel.JsonWebTokens.xml", "lib/net462/Microsoft.IdentityModel.JsonWebTokens.xml",
"lib/net472/Microsoft.IdentityModel.JsonWebTokens.dll", "lib/net472/Microsoft.IdentityModel.JsonWebTokens.dll",
"lib/net472/Microsoft.IdentityModel.JsonWebTokens.xml", "lib/net472/Microsoft.IdentityModel.JsonWebTokens.xml",
"lib/net6.0/Microsoft.IdentityModel.JsonWebTokens.dll", "lib/net6.0/Microsoft.IdentityModel.JsonWebTokens.dll",
"lib/net6.0/Microsoft.IdentityModel.JsonWebTokens.xml", "lib/net6.0/Microsoft.IdentityModel.JsonWebTokens.xml",
"lib/net8.0/Microsoft.IdentityModel.JsonWebTokens.dll",
"lib/net8.0/Microsoft.IdentityModel.JsonWebTokens.xml",
"lib/net9.0/Microsoft.IdentityModel.JsonWebTokens.dll",
"lib/net9.0/Microsoft.IdentityModel.JsonWebTokens.xml",
"lib/netstandard2.0/Microsoft.IdentityModel.JsonWebTokens.dll", "lib/netstandard2.0/Microsoft.IdentityModel.JsonWebTokens.dll",
"lib/netstandard2.0/Microsoft.IdentityModel.JsonWebTokens.xml", "lib/netstandard2.0/Microsoft.IdentityModel.JsonWebTokens.xml",
"microsoft.identitymodel.jsonwebtokens.6.35.0.nupkg.sha512", "microsoft.identitymodel.jsonwebtokens.8.14.0.nupkg.sha512",
"microsoft.identitymodel.jsonwebtokens.nuspec" "microsoft.identitymodel.jsonwebtokens.nuspec"
] ]
}, },
"Microsoft.IdentityModel.Logging/6.35.0": { "Microsoft.IdentityModel.Logging/8.14.0": {
"sha512": "jePrSfGAmqT81JDCNSY+fxVWoGuJKt9e6eJ+vT7+quVS55nWl//jGjUQn4eFtVKt4rt5dXaleZdHRB9J9AJZ7Q==", "sha512": "eqqnemdW38CKZEHS6diA50BV94QICozDZEvSrsvN3SJXUFwVB9gy+/oz76gldP7nZliA16IglXjXTCTdmU/Ejg==",
"type": "package", "type": "package",
"path": "microsoft.identitymodel.logging/6.35.0", "path": "microsoft.identitymodel.logging/8.14.0",
"files": [ "files": [
".nupkg.metadata", ".nupkg.metadata",
".signature.p7s", ".signature.p7s",
"lib/net45/Microsoft.IdentityModel.Logging.dll", "README.md",
"lib/net45/Microsoft.IdentityModel.Logging.xml",
"lib/net461/Microsoft.IdentityModel.Logging.dll",
"lib/net461/Microsoft.IdentityModel.Logging.xml",
"lib/net462/Microsoft.IdentityModel.Logging.dll", "lib/net462/Microsoft.IdentityModel.Logging.dll",
"lib/net462/Microsoft.IdentityModel.Logging.xml", "lib/net462/Microsoft.IdentityModel.Logging.xml",
"lib/net472/Microsoft.IdentityModel.Logging.dll", "lib/net472/Microsoft.IdentityModel.Logging.dll",
"lib/net472/Microsoft.IdentityModel.Logging.xml", "lib/net472/Microsoft.IdentityModel.Logging.xml",
"lib/net6.0/Microsoft.IdentityModel.Logging.dll", "lib/net6.0/Microsoft.IdentityModel.Logging.dll",
"lib/net6.0/Microsoft.IdentityModel.Logging.xml", "lib/net6.0/Microsoft.IdentityModel.Logging.xml",
"lib/net8.0/Microsoft.IdentityModel.Logging.dll",
"lib/net8.0/Microsoft.IdentityModel.Logging.xml",
"lib/net9.0/Microsoft.IdentityModel.Logging.dll",
"lib/net9.0/Microsoft.IdentityModel.Logging.xml",
"lib/netstandard2.0/Microsoft.IdentityModel.Logging.dll", "lib/netstandard2.0/Microsoft.IdentityModel.Logging.dll",
"lib/netstandard2.0/Microsoft.IdentityModel.Logging.xml", "lib/netstandard2.0/Microsoft.IdentityModel.Logging.xml",
"microsoft.identitymodel.logging.6.35.0.nupkg.sha512", "microsoft.identitymodel.logging.8.14.0.nupkg.sha512",
"microsoft.identitymodel.logging.nuspec" "microsoft.identitymodel.logging.nuspec"
] ]
}, },
@@ -3505,59 +3426,30 @@
"microsoft.identitymodel.protocols.openidconnect.nuspec" "microsoft.identitymodel.protocols.openidconnect.nuspec"
] ]
}, },
"Microsoft.IdentityModel.Tokens/6.35.0": { "Microsoft.IdentityModel.Tokens/8.14.0": {
"sha512": "RN7lvp7s3Boucg1NaNAbqDbxtlLj5Qeb+4uSS1TeK5FSBVM40P4DKaTKChT43sHyKfh7V0zkrMph6DdHvyA4bg==", "sha512": "lKIZiBiGd36k02TCdMHp1KlNWisyIvQxcYJvIkz7P4gSQ9zi8dgh6S5Grj8NNG7HWYIPfQymGyoZ6JB5d1Lo1g==",
"type": "package", "type": "package",
"path": "microsoft.identitymodel.tokens/6.35.0", "path": "microsoft.identitymodel.tokens/8.14.0",
"files": [ "files": [
".nupkg.metadata", ".nupkg.metadata",
".signature.p7s", ".signature.p7s",
"lib/net45/Microsoft.IdentityModel.Tokens.dll", "README.md",
"lib/net45/Microsoft.IdentityModel.Tokens.xml",
"lib/net461/Microsoft.IdentityModel.Tokens.dll",
"lib/net461/Microsoft.IdentityModel.Tokens.xml",
"lib/net462/Microsoft.IdentityModel.Tokens.dll", "lib/net462/Microsoft.IdentityModel.Tokens.dll",
"lib/net462/Microsoft.IdentityModel.Tokens.xml", "lib/net462/Microsoft.IdentityModel.Tokens.xml",
"lib/net472/Microsoft.IdentityModel.Tokens.dll", "lib/net472/Microsoft.IdentityModel.Tokens.dll",
"lib/net472/Microsoft.IdentityModel.Tokens.xml", "lib/net472/Microsoft.IdentityModel.Tokens.xml",
"lib/net6.0/Microsoft.IdentityModel.Tokens.dll", "lib/net6.0/Microsoft.IdentityModel.Tokens.dll",
"lib/net6.0/Microsoft.IdentityModel.Tokens.xml", "lib/net6.0/Microsoft.IdentityModel.Tokens.xml",
"lib/net8.0/Microsoft.IdentityModel.Tokens.dll",
"lib/net8.0/Microsoft.IdentityModel.Tokens.xml",
"lib/net9.0/Microsoft.IdentityModel.Tokens.dll",
"lib/net9.0/Microsoft.IdentityModel.Tokens.xml",
"lib/netstandard2.0/Microsoft.IdentityModel.Tokens.dll", "lib/netstandard2.0/Microsoft.IdentityModel.Tokens.dll",
"lib/netstandard2.0/Microsoft.IdentityModel.Tokens.xml", "lib/netstandard2.0/Microsoft.IdentityModel.Tokens.xml",
"microsoft.identitymodel.tokens.6.35.0.nupkg.sha512", "microsoft.identitymodel.tokens.8.14.0.nupkg.sha512",
"microsoft.identitymodel.tokens.nuspec" "microsoft.identitymodel.tokens.nuspec"
] ]
}, },
"Microsoft.NETCore.Platforms/1.1.0": {
"sha512": "kz0PEW2lhqygehI/d6XsPCQzD7ff7gUJaVGPVETX611eadGsA3A877GdSlU0LRVMCTH/+P3o2iDTak+S08V2+A==",
"type": "package",
"path": "microsoft.netcore.platforms/1.1.0",
"files": [
".nupkg.metadata",
".signature.p7s",
"ThirdPartyNotices.txt",
"dotnet_library_license.txt",
"lib/netstandard1.0/_._",
"microsoft.netcore.platforms.1.1.0.nupkg.sha512",
"microsoft.netcore.platforms.nuspec",
"runtime.json"
]
},
"Microsoft.NETCore.Targets/1.1.0": {
"sha512": "aOZA3BWfz9RXjpzt0sRJJMjAscAUm3Hoa4UWAfceV9UTYxgwZ1lZt5nO2myFf+/jetYQo4uTP7zS8sJY67BBxg==",
"type": "package",
"path": "microsoft.netcore.targets/1.1.0",
"files": [
".nupkg.metadata",
".signature.p7s",
"ThirdPartyNotices.txt",
"dotnet_library_license.txt",
"lib/netstandard1.0/_._",
"microsoft.netcore.targets.1.1.0.nupkg.sha512",
"microsoft.netcore.targets.nuspec",
"runtime.json"
]
},
"Microsoft.OpenApi/1.4.3": { "Microsoft.OpenApi/1.4.3": {
"sha512": "rURwggB+QZYcSVbDr7HSdhw/FELvMlriW10OeOzjPT7pstefMo7IThhtNtDudxbXhW+lj0NfX72Ka5EDsG8x6w==", "sha512": "rURwggB+QZYcSVbDr7HSdhw/FELvMlriW10OeOzjPT7pstefMo7IThhtNtDudxbXhW+lj0NfX72Ka5EDsG8x6w==",
"type": "package", "type": "package",
@@ -4339,98 +4231,6 @@
"useSharedDesignerContext.txt" "useSharedDesignerContext.txt"
] ]
}, },
"System.Runtime/4.3.0": {
"sha512": "JufQi0vPQ0xGnAczR13AUFglDyVYt4Kqnz1AZaiKZ5+GICq0/1MH/mO/eAJHt/mHW1zjKBJd7kV26SrxddAhiw==",
"type": "package",
"path": "system.runtime/4.3.0",
"files": [
".nupkg.metadata",
".signature.p7s",
"ThirdPartyNotices.txt",
"dotnet_library_license.txt",
"lib/MonoAndroid10/_._",
"lib/MonoTouch10/_._",
"lib/net45/_._",
"lib/net462/System.Runtime.dll",
"lib/portable-net45+win8+wp80+wpa81/_._",
"lib/win8/_._",
"lib/wp80/_._",
"lib/wpa81/_._",
"lib/xamarinios10/_._",
"lib/xamarinmac20/_._",
"lib/xamarintvos10/_._",
"lib/xamarinwatchos10/_._",
"ref/MonoAndroid10/_._",
"ref/MonoTouch10/_._",
"ref/net45/_._",
"ref/net462/System.Runtime.dll",
"ref/netcore50/System.Runtime.dll",
"ref/netcore50/System.Runtime.xml",
"ref/netcore50/de/System.Runtime.xml",
"ref/netcore50/es/System.Runtime.xml",
"ref/netcore50/fr/System.Runtime.xml",
"ref/netcore50/it/System.Runtime.xml",
"ref/netcore50/ja/System.Runtime.xml",
"ref/netcore50/ko/System.Runtime.xml",
"ref/netcore50/ru/System.Runtime.xml",
"ref/netcore50/zh-hans/System.Runtime.xml",
"ref/netcore50/zh-hant/System.Runtime.xml",
"ref/netstandard1.0/System.Runtime.dll",
"ref/netstandard1.0/System.Runtime.xml",
"ref/netstandard1.0/de/System.Runtime.xml",
"ref/netstandard1.0/es/System.Runtime.xml",
"ref/netstandard1.0/fr/System.Runtime.xml",
"ref/netstandard1.0/it/System.Runtime.xml",
"ref/netstandard1.0/ja/System.Runtime.xml",
"ref/netstandard1.0/ko/System.Runtime.xml",
"ref/netstandard1.0/ru/System.Runtime.xml",
"ref/netstandard1.0/zh-hans/System.Runtime.xml",
"ref/netstandard1.0/zh-hant/System.Runtime.xml",
"ref/netstandard1.2/System.Runtime.dll",
"ref/netstandard1.2/System.Runtime.xml",
"ref/netstandard1.2/de/System.Runtime.xml",
"ref/netstandard1.2/es/System.Runtime.xml",
"ref/netstandard1.2/fr/System.Runtime.xml",
"ref/netstandard1.2/it/System.Runtime.xml",
"ref/netstandard1.2/ja/System.Runtime.xml",
"ref/netstandard1.2/ko/System.Runtime.xml",
"ref/netstandard1.2/ru/System.Runtime.xml",
"ref/netstandard1.2/zh-hans/System.Runtime.xml",
"ref/netstandard1.2/zh-hant/System.Runtime.xml",
"ref/netstandard1.3/System.Runtime.dll",
"ref/netstandard1.3/System.Runtime.xml",
"ref/netstandard1.3/de/System.Runtime.xml",
"ref/netstandard1.3/es/System.Runtime.xml",
"ref/netstandard1.3/fr/System.Runtime.xml",
"ref/netstandard1.3/it/System.Runtime.xml",
"ref/netstandard1.3/ja/System.Runtime.xml",
"ref/netstandard1.3/ko/System.Runtime.xml",
"ref/netstandard1.3/ru/System.Runtime.xml",
"ref/netstandard1.3/zh-hans/System.Runtime.xml",
"ref/netstandard1.3/zh-hant/System.Runtime.xml",
"ref/netstandard1.5/System.Runtime.dll",
"ref/netstandard1.5/System.Runtime.xml",
"ref/netstandard1.5/de/System.Runtime.xml",
"ref/netstandard1.5/es/System.Runtime.xml",
"ref/netstandard1.5/fr/System.Runtime.xml",
"ref/netstandard1.5/it/System.Runtime.xml",
"ref/netstandard1.5/ja/System.Runtime.xml",
"ref/netstandard1.5/ko/System.Runtime.xml",
"ref/netstandard1.5/ru/System.Runtime.xml",
"ref/netstandard1.5/zh-hans/System.Runtime.xml",
"ref/netstandard1.5/zh-hant/System.Runtime.xml",
"ref/portable-net45+win8+wp80+wpa81/_._",
"ref/win8/_._",
"ref/wp80/_._",
"ref/wpa81/_._",
"ref/xamarinios10/_._",
"ref/xamarinmac20/_._",
"ref/xamarintvos10/_._",
"ref/xamarinwatchos10/_._",
"system.runtime.4.3.0.nupkg.sha512",
"system.runtime.nuspec"
]
},
"System.Runtime.Caching/6.0.0": { "System.Runtime.Caching/6.0.0": {
"sha512": "E0e03kUp5X2k+UAoVl6efmI7uU7JRBWi5EIdlQ7cr0NpBGjHG4fWII35PgsBY9T4fJQ8E4QPsL0rKksU9gcL5A==", "sha512": "E0e03kUp5X2k+UAoVl6efmI7uU7JRBWi5EIdlQ7cr0NpBGjHG4fWII35PgsBY9T4fJQ8E4QPsL0rKksU9gcL5A==",
"type": "package", "type": "package",
@@ -4722,74 +4522,6 @@
"version.txt" "version.txt"
] ]
}, },
"System.Text.Encoding/4.3.0": {
"sha512": "BiIg+KWaSDOITze6jGQynxg64naAPtqGHBwDrLaCtixsa5bKiR8dpPOHA7ge3C0JJQizJE+sfkz1wV+BAKAYZw==",
"type": "package",
"path": "system.text.encoding/4.3.0",
"files": [
".nupkg.metadata",
".signature.p7s",
"ThirdPartyNotices.txt",
"dotnet_library_license.txt",
"lib/MonoAndroid10/_._",
"lib/MonoTouch10/_._",
"lib/net45/_._",
"lib/portable-net45+win8+wp8+wpa81/_._",
"lib/win8/_._",
"lib/wp80/_._",
"lib/wpa81/_._",
"lib/xamarinios10/_._",
"lib/xamarinmac20/_._",
"lib/xamarintvos10/_._",
"lib/xamarinwatchos10/_._",
"ref/MonoAndroid10/_._",
"ref/MonoTouch10/_._",
"ref/net45/_._",
"ref/netcore50/System.Text.Encoding.dll",
"ref/netcore50/System.Text.Encoding.xml",
"ref/netcore50/de/System.Text.Encoding.xml",
"ref/netcore50/es/System.Text.Encoding.xml",
"ref/netcore50/fr/System.Text.Encoding.xml",
"ref/netcore50/it/System.Text.Encoding.xml",
"ref/netcore50/ja/System.Text.Encoding.xml",
"ref/netcore50/ko/System.Text.Encoding.xml",
"ref/netcore50/ru/System.Text.Encoding.xml",
"ref/netcore50/zh-hans/System.Text.Encoding.xml",
"ref/netcore50/zh-hant/System.Text.Encoding.xml",
"ref/netstandard1.0/System.Text.Encoding.dll",
"ref/netstandard1.0/System.Text.Encoding.xml",
"ref/netstandard1.0/de/System.Text.Encoding.xml",
"ref/netstandard1.0/es/System.Text.Encoding.xml",
"ref/netstandard1.0/fr/System.Text.Encoding.xml",
"ref/netstandard1.0/it/System.Text.Encoding.xml",
"ref/netstandard1.0/ja/System.Text.Encoding.xml",
"ref/netstandard1.0/ko/System.Text.Encoding.xml",
"ref/netstandard1.0/ru/System.Text.Encoding.xml",
"ref/netstandard1.0/zh-hans/System.Text.Encoding.xml",
"ref/netstandard1.0/zh-hant/System.Text.Encoding.xml",
"ref/netstandard1.3/System.Text.Encoding.dll",
"ref/netstandard1.3/System.Text.Encoding.xml",
"ref/netstandard1.3/de/System.Text.Encoding.xml",
"ref/netstandard1.3/es/System.Text.Encoding.xml",
"ref/netstandard1.3/fr/System.Text.Encoding.xml",
"ref/netstandard1.3/it/System.Text.Encoding.xml",
"ref/netstandard1.3/ja/System.Text.Encoding.xml",
"ref/netstandard1.3/ko/System.Text.Encoding.xml",
"ref/netstandard1.3/ru/System.Text.Encoding.xml",
"ref/netstandard1.3/zh-hans/System.Text.Encoding.xml",
"ref/netstandard1.3/zh-hant/System.Text.Encoding.xml",
"ref/portable-net45+win8+wp8+wpa81/_._",
"ref/win8/_._",
"ref/wp80/_._",
"ref/wpa81/_._",
"ref/xamarinios10/_._",
"ref/xamarinmac20/_._",
"ref/xamarintvos10/_._",
"ref/xamarinwatchos10/_._",
"system.text.encoding.4.3.0.nupkg.sha512",
"system.text.encoding.nuspec"
]
},
"System.Text.Encoding.CodePages/6.0.0": { "System.Text.Encoding.CodePages/6.0.0": {
"sha512": "ZFCILZuOvtKPauZ/j/swhvw68ZRi9ATCfvGbk1QfydmcXBkIWecWKn/250UH7rahZ5OoDBaiAudJtPvLwzw85A==", "sha512": "ZFCILZuOvtKPauZ/j/swhvw68ZRi9ATCfvGbk1QfydmcXBkIWecWKn/250UH7rahZ5OoDBaiAudJtPvLwzw85A==",
"type": "package", "type": "package",
@@ -4999,6 +4731,7 @@
}, },
"projectFileDependencyGroups": { "projectFileDependencyGroups": {
"net8.0": [ "net8.0": [
"AutoMapper >= 16.1.1",
"FastEndpoints >= 8.0.1", "FastEndpoints >= 8.0.1",
"FastEndpoints.Swagger >= 8.0.1", "FastEndpoints.Swagger >= 8.0.1",
"Microsoft.AspNetCore.OpenApi >= 8.0.25", "Microsoft.AspNetCore.OpenApi >= 8.0.25",
@@ -5050,6 +4783,10 @@
"net8.0": { "net8.0": {
"targetAlias": "net8.0", "targetAlias": "net8.0",
"dependencies": { "dependencies": {
"AutoMapper": {
"target": "Package",
"version": "[16.1.1, )"
},
"FastEndpoints": { "FastEndpoints": {
"target": "Package", "target": "Package",
"version": "[8.0.1, )" "version": "[8.0.1, )"

View File

@@ -1,9 +1,10 @@
{ {
"version": 2, "version": 2,
"dgSpecHash": "lsp1T+UmcqI=", "dgSpecHash": "QMXvplaiSZ0=",
"success": true, "success": true,
"projectFilePath": "/home/carteronm@stsio.lan/RiderProjects/Knots/Knots/Knots.csproj", "projectFilePath": "/home/carteronm@stsio.lan/RiderProjects/Knots/Knots/Knots.csproj",
"expectedPackageFiles": [ "expectedPackageFiles": [
"/home/carteronm@stsio.lan/.nuget/packages/automapper/16.1.1/automapper.16.1.1.nupkg.sha512",
"/home/carteronm@stsio.lan/.nuget/packages/azure.core/1.38.0/azure.core.1.38.0.nupkg.sha512", "/home/carteronm@stsio.lan/.nuget/packages/azure.core/1.38.0/azure.core.1.38.0.nupkg.sha512",
"/home/carteronm@stsio.lan/.nuget/packages/azure.identity/1.11.4/azure.identity.1.11.4.nupkg.sha512", "/home/carteronm@stsio.lan/.nuget/packages/azure.identity/1.11.4/azure.identity.1.11.4.nupkg.sha512",
"/home/carteronm@stsio.lan/.nuget/packages/fastendpoints/8.0.1/fastendpoints.8.0.1.nupkg.sha512", "/home/carteronm@stsio.lan/.nuget/packages/fastendpoints/8.0.1/fastendpoints.8.0.1.nupkg.sha512",
@@ -24,7 +25,6 @@
"/home/carteronm@stsio.lan/.nuget/packages/microsoft.codeanalysis.csharp/4.5.0/microsoft.codeanalysis.csharp.4.5.0.nupkg.sha512", "/home/carteronm@stsio.lan/.nuget/packages/microsoft.codeanalysis.csharp/4.5.0/microsoft.codeanalysis.csharp.4.5.0.nupkg.sha512",
"/home/carteronm@stsio.lan/.nuget/packages/microsoft.codeanalysis.csharp.workspaces/4.5.0/microsoft.codeanalysis.csharp.workspaces.4.5.0.nupkg.sha512", "/home/carteronm@stsio.lan/.nuget/packages/microsoft.codeanalysis.csharp.workspaces/4.5.0/microsoft.codeanalysis.csharp.workspaces.4.5.0.nupkg.sha512",
"/home/carteronm@stsio.lan/.nuget/packages/microsoft.codeanalysis.workspaces.common/4.5.0/microsoft.codeanalysis.workspaces.common.4.5.0.nupkg.sha512", "/home/carteronm@stsio.lan/.nuget/packages/microsoft.codeanalysis.workspaces.common/4.5.0/microsoft.codeanalysis.workspaces.common.4.5.0.nupkg.sha512",
"/home/carteronm@stsio.lan/.nuget/packages/microsoft.csharp/4.5.0/microsoft.csharp.4.5.0.nupkg.sha512",
"/home/carteronm@stsio.lan/.nuget/packages/microsoft.data.sqlclient/5.1.7/microsoft.data.sqlclient.5.1.7.nupkg.sha512", "/home/carteronm@stsio.lan/.nuget/packages/microsoft.data.sqlclient/5.1.7/microsoft.data.sqlclient.5.1.7.nupkg.sha512",
"/home/carteronm@stsio.lan/.nuget/packages/microsoft.data.sqlclient.sni.runtime/5.1.2/microsoft.data.sqlclient.sni.runtime.5.1.2.nupkg.sha512", "/home/carteronm@stsio.lan/.nuget/packages/microsoft.data.sqlclient.sni.runtime/5.1.2/microsoft.data.sqlclient.sni.runtime.5.1.2.nupkg.sha512",
"/home/carteronm@stsio.lan/.nuget/packages/microsoft.entityframeworkcore/8.0.25/microsoft.entityframeworkcore.8.0.25.nupkg.sha512", "/home/carteronm@stsio.lan/.nuget/packages/microsoft.entityframeworkcore/8.0.25/microsoft.entityframeworkcore.8.0.25.nupkg.sha512",
@@ -48,14 +48,12 @@
"/home/carteronm@stsio.lan/.nuget/packages/microsoft.extensions.primitives/10.0.3/microsoft.extensions.primitives.10.0.3.nupkg.sha512", "/home/carteronm@stsio.lan/.nuget/packages/microsoft.extensions.primitives/10.0.3/microsoft.extensions.primitives.10.0.3.nupkg.sha512",
"/home/carteronm@stsio.lan/.nuget/packages/microsoft.identity.client/4.61.3/microsoft.identity.client.4.61.3.nupkg.sha512", "/home/carteronm@stsio.lan/.nuget/packages/microsoft.identity.client/4.61.3/microsoft.identity.client.4.61.3.nupkg.sha512",
"/home/carteronm@stsio.lan/.nuget/packages/microsoft.identity.client.extensions.msal/4.61.3/microsoft.identity.client.extensions.msal.4.61.3.nupkg.sha512", "/home/carteronm@stsio.lan/.nuget/packages/microsoft.identity.client.extensions.msal/4.61.3/microsoft.identity.client.extensions.msal.4.61.3.nupkg.sha512",
"/home/carteronm@stsio.lan/.nuget/packages/microsoft.identitymodel.abstractions/6.35.0/microsoft.identitymodel.abstractions.6.35.0.nupkg.sha512", "/home/carteronm@stsio.lan/.nuget/packages/microsoft.identitymodel.abstractions/8.14.0/microsoft.identitymodel.abstractions.8.14.0.nupkg.sha512",
"/home/carteronm@stsio.lan/.nuget/packages/microsoft.identitymodel.jsonwebtokens/6.35.0/microsoft.identitymodel.jsonwebtokens.6.35.0.nupkg.sha512", "/home/carteronm@stsio.lan/.nuget/packages/microsoft.identitymodel.jsonwebtokens/8.14.0/microsoft.identitymodel.jsonwebtokens.8.14.0.nupkg.sha512",
"/home/carteronm@stsio.lan/.nuget/packages/microsoft.identitymodel.logging/6.35.0/microsoft.identitymodel.logging.6.35.0.nupkg.sha512", "/home/carteronm@stsio.lan/.nuget/packages/microsoft.identitymodel.logging/8.14.0/microsoft.identitymodel.logging.8.14.0.nupkg.sha512",
"/home/carteronm@stsio.lan/.nuget/packages/microsoft.identitymodel.protocols/6.35.0/microsoft.identitymodel.protocols.6.35.0.nupkg.sha512", "/home/carteronm@stsio.lan/.nuget/packages/microsoft.identitymodel.protocols/6.35.0/microsoft.identitymodel.protocols.6.35.0.nupkg.sha512",
"/home/carteronm@stsio.lan/.nuget/packages/microsoft.identitymodel.protocols.openidconnect/6.35.0/microsoft.identitymodel.protocols.openidconnect.6.35.0.nupkg.sha512", "/home/carteronm@stsio.lan/.nuget/packages/microsoft.identitymodel.protocols.openidconnect/6.35.0/microsoft.identitymodel.protocols.openidconnect.6.35.0.nupkg.sha512",
"/home/carteronm@stsio.lan/.nuget/packages/microsoft.identitymodel.tokens/6.35.0/microsoft.identitymodel.tokens.6.35.0.nupkg.sha512", "/home/carteronm@stsio.lan/.nuget/packages/microsoft.identitymodel.tokens/8.14.0/microsoft.identitymodel.tokens.8.14.0.nupkg.sha512",
"/home/carteronm@stsio.lan/.nuget/packages/microsoft.netcore.platforms/1.1.0/microsoft.netcore.platforms.1.1.0.nupkg.sha512",
"/home/carteronm@stsio.lan/.nuget/packages/microsoft.netcore.targets/1.1.0/microsoft.netcore.targets.1.1.0.nupkg.sha512",
"/home/carteronm@stsio.lan/.nuget/packages/microsoft.openapi/1.4.3/microsoft.openapi.1.4.3.nupkg.sha512", "/home/carteronm@stsio.lan/.nuget/packages/microsoft.openapi/1.4.3/microsoft.openapi.1.4.3.nupkg.sha512",
"/home/carteronm@stsio.lan/.nuget/packages/microsoft.sqlserver.server/1.0.0/microsoft.sqlserver.server.1.0.0.nupkg.sha512", "/home/carteronm@stsio.lan/.nuget/packages/microsoft.sqlserver.server/1.0.0/microsoft.sqlserver.server.1.0.0.nupkg.sha512",
"/home/carteronm@stsio.lan/.nuget/packages/microsoft.win32.systemevents/6.0.0/microsoft.win32.systemevents.6.0.0.nupkg.sha512", "/home/carteronm@stsio.lan/.nuget/packages/microsoft.win32.systemevents/6.0.0/microsoft.win32.systemevents.6.0.0.nupkg.sha512",
@@ -91,7 +89,6 @@
"/home/carteronm@stsio.lan/.nuget/packages/system.memory.data/1.0.2/system.memory.data.1.0.2.nupkg.sha512", "/home/carteronm@stsio.lan/.nuget/packages/system.memory.data/1.0.2/system.memory.data.1.0.2.nupkg.sha512",
"/home/carteronm@stsio.lan/.nuget/packages/system.numerics.vectors/4.5.0/system.numerics.vectors.4.5.0.nupkg.sha512", "/home/carteronm@stsio.lan/.nuget/packages/system.numerics.vectors/4.5.0/system.numerics.vectors.4.5.0.nupkg.sha512",
"/home/carteronm@stsio.lan/.nuget/packages/system.reflection.metadata/6.0.1/system.reflection.metadata.6.0.1.nupkg.sha512", "/home/carteronm@stsio.lan/.nuget/packages/system.reflection.metadata/6.0.1/system.reflection.metadata.6.0.1.nupkg.sha512",
"/home/carteronm@stsio.lan/.nuget/packages/system.runtime/4.3.0/system.runtime.4.3.0.nupkg.sha512",
"/home/carteronm@stsio.lan/.nuget/packages/system.runtime.caching/6.0.0/system.runtime.caching.6.0.0.nupkg.sha512", "/home/carteronm@stsio.lan/.nuget/packages/system.runtime.caching/6.0.0/system.runtime.caching.6.0.0.nupkg.sha512",
"/home/carteronm@stsio.lan/.nuget/packages/system.runtime.compilerservices.unsafe/6.0.0/system.runtime.compilerservices.unsafe.6.0.0.nupkg.sha512", "/home/carteronm@stsio.lan/.nuget/packages/system.runtime.compilerservices.unsafe/6.0.0/system.runtime.compilerservices.unsafe.6.0.0.nupkg.sha512",
"/home/carteronm@stsio.lan/.nuget/packages/system.security.accesscontrol/6.0.0/system.security.accesscontrol.6.0.0.nupkg.sha512", "/home/carteronm@stsio.lan/.nuget/packages/system.security.accesscontrol/6.0.0/system.security.accesscontrol.6.0.0.nupkg.sha512",
@@ -99,7 +96,6 @@
"/home/carteronm@stsio.lan/.nuget/packages/system.security.cryptography.protecteddata/6.0.0/system.security.cryptography.protecteddata.6.0.0.nupkg.sha512", "/home/carteronm@stsio.lan/.nuget/packages/system.security.cryptography.protecteddata/6.0.0/system.security.cryptography.protecteddata.6.0.0.nupkg.sha512",
"/home/carteronm@stsio.lan/.nuget/packages/system.security.permissions/6.0.0/system.security.permissions.6.0.0.nupkg.sha512", "/home/carteronm@stsio.lan/.nuget/packages/system.security.permissions/6.0.0/system.security.permissions.6.0.0.nupkg.sha512",
"/home/carteronm@stsio.lan/.nuget/packages/system.security.principal.windows/5.0.0/system.security.principal.windows.5.0.0.nupkg.sha512", "/home/carteronm@stsio.lan/.nuget/packages/system.security.principal.windows/5.0.0/system.security.principal.windows.5.0.0.nupkg.sha512",
"/home/carteronm@stsio.lan/.nuget/packages/system.text.encoding/4.3.0/system.text.encoding.4.3.0.nupkg.sha512",
"/home/carteronm@stsio.lan/.nuget/packages/system.text.encoding.codepages/6.0.0/system.text.encoding.codepages.6.0.0.nupkg.sha512", "/home/carteronm@stsio.lan/.nuget/packages/system.text.encoding.codepages/6.0.0/system.text.encoding.codepages.6.0.0.nupkg.sha512",
"/home/carteronm@stsio.lan/.nuget/packages/system.text.encodings.web/8.0.0/system.text.encodings.web.8.0.0.nupkg.sha512", "/home/carteronm@stsio.lan/.nuget/packages/system.text.encodings.web/8.0.0/system.text.encodings.web.8.0.0.nupkg.sha512",
"/home/carteronm@stsio.lan/.nuget/packages/system.text.json/4.7.2/system.text.json.4.7.2.nupkg.sha512", "/home/carteronm@stsio.lan/.nuget/packages/system.text.json/4.7.2/system.text.json.4.7.2.nupkg.sha512",

View File

@@ -1 +1 @@
"restore":{"projectUniqueName":"/home/carteronm@stsio.lan/RiderProjects/Knots/Knots/Knots.csproj","projectName":"Knots","projectPath":"/home/carteronm@stsio.lan/RiderProjects/Knots/Knots/Knots.csproj","outputPath":"/home/carteronm@stsio.lan/RiderProjects/Knots/Knots/obj/","projectStyle":"PackageReference","originalTargetFrameworks":["net8.0"],"sources":{"/usr/share/dotnet/library-packs":{},"https://api.nuget.org/v3/index.json":{}},"frameworks":{"net8.0":{"targetAlias":"net8.0","projectReferences":{}}},"warningProperties":{"warnAsError":["NU1605"]},"restoreAuditProperties":{"enableAudit":"true","auditLevel":"low","auditMode":"direct"}}"frameworks":{"net8.0":{"targetAlias":"net8.0","dependencies":{"FastEndpoints":{"target":"Package","version":"[8.0.1, )"},"FastEndpoints.Swagger":{"target":"Package","version":"[8.0.1, )"},"Microsoft.AspNetCore.OpenApi":{"target":"Package","version":"[8.0.25, )"},"Microsoft.EntityFrameworkCore":{"target":"Package","version":"[8.0.25, )"},"Microsoft.EntityFrameworkCore.Design":{"include":"Runtime, Build, Native, ContentFiles, Analyzers, BuildTransitive","suppressParent":"All","target":"Package","version":"[8.0.25, )"},"Microsoft.EntityFrameworkCore.SqlServer":{"target":"Package","version":"[8.0.25, )"}},"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/share/dotnet/sdk/8.0.416/PortableRuntimeIdentifierGraph.json"}} "restore":{"projectUniqueName":"/home/carteronm@stsio.lan/RiderProjects/Knots/Knots/Knots.csproj","projectName":"Knots","projectPath":"/home/carteronm@stsio.lan/RiderProjects/Knots/Knots/Knots.csproj","outputPath":"/home/carteronm@stsio.lan/RiderProjects/Knots/Knots/obj/","projectStyle":"PackageReference","originalTargetFrameworks":["net8.0"],"sources":{"/usr/share/dotnet/library-packs":{},"https://api.nuget.org/v3/index.json":{}},"frameworks":{"net8.0":{"targetAlias":"net8.0","projectReferences":{}}},"warningProperties":{"warnAsError":["NU1605"]},"restoreAuditProperties":{"enableAudit":"true","auditLevel":"low","auditMode":"direct"}}"frameworks":{"net8.0":{"targetAlias":"net8.0","dependencies":{"AutoMapper":{"target":"Package","version":"[16.1.1, )"},"FastEndpoints":{"target":"Package","version":"[8.0.1, )"},"FastEndpoints.Swagger":{"target":"Package","version":"[8.0.1, )"},"Microsoft.AspNetCore.OpenApi":{"target":"Package","version":"[8.0.25, )"},"Microsoft.EntityFrameworkCore":{"target":"Package","version":"[8.0.25, )"},"Microsoft.EntityFrameworkCore.Design":{"include":"Runtime, Build, Native, ContentFiles, Analyzers, BuildTransitive","suppressParent":"All","target":"Package","version":"[8.0.25, )"},"Microsoft.EntityFrameworkCore.SqlServer":{"target":"Package","version":"[8.0.25, )"}},"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/share/dotnet/sdk/8.0.416/PortableRuntimeIdentifierGraph.json"}}

View File

@@ -1 +1 @@
17733306544048221 17739351490327864

View File

@@ -1 +1 @@
17733307741808199 17739363871102420