step 1: maybe won't keep

This commit is contained in:
William Lewis 2024-03-15 21:17:05 -05:00
parent 545adc869c
commit 279d9af22c
46 changed files with 2304 additions and 260 deletions

View File

@ -7,7 +7,15 @@
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.Authorization" Version="7" />
<PackageReference Include="Microsoft.AspNetCore.OpenApi" Version="7.0.15" /> <PackageReference Include="Microsoft.AspNetCore.OpenApi" Version="7.0.15" />
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="7" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="7">
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
<PrivateAssets>all</PrivateAssets>
</PackageReference>
<PackageReference Include="Microsoft.IdentityModel.Tokens" Version="7" />
<PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="7" />
<PackageReference Include="Swashbuckle.AspNetCore" Version="6.5.0" /> <PackageReference Include="Swashbuckle.AspNetCore" Version="6.5.0" />
</ItemGroup> </ItemGroup>

View File

@ -0,0 +1,7 @@
namespace AAIntegration.SimmonsBank.API.Configs;
public class AppSettings
{
public required string Secret { get; set; }
public required string APIUrl { get; set; }
}

View File

@ -0,0 +1,15 @@
namespace AAIntegration.SimmonsBank.API.Configs;
public class DatabaseConfig
{
public string Host { get; set; }
public string Name { get; set; }
public string User { get; set; }
public string Password { get; set; }
public uint Port { get; set; }
public string GetConnectionString()
{
return $"Server={Host};Port={Port};Database={Name};User Id={User};Password={Password}";
}
}

View File

@ -0,0 +1,10 @@
namespace AAIntegration.SimmonsBank.API.Entities;
public class User
{
public int Id { get; set; }
public string ApiKey { get; set; }
public string SimmonsBankUsername { get; set; }
public string SimmonsBankPassword { get; set; }
public string MFAKey { get; set; }
}

View File

@ -2,10 +2,10 @@ namespace AAIntegration.SimmonsBank.API.Handlers;
using System.Security.Claims; using System.Security.Claims;
using System.Text.Encodings.Web; using System.Text.Encodings.Web;
using ActiveAllocator.API.Configs;
using ActiveAllocator.API.Services;
using Microsoft.AspNetCore.Authentication; using Microsoft.AspNetCore.Authentication;
using Microsoft.Extensions.Options; using Microsoft.Extensions.Options;
using AAIntegration.SimmonsBank.API.Services;
using AAIntegration.SimmonsBank.API.Configs;
public class ApiKeyAuthenticationHandler : AuthenticationHandler<ApiKeyAuthenticationOptions> public class ApiKeyAuthenticationHandler : AuthenticationHandler<ApiKeyAuthenticationOptions>
{ {

View File

@ -0,0 +1,33 @@
namespace AAIntegration.SimmonsBank.API.Helpers;
using Microsoft.EntityFrameworkCore;
using AAIntegration.SimmonsBank.API.Entities;
using System.Diagnostics;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.CompilerServices;
using System.Diagnostics.CodeAnalysis;
public class DataContext : DbContext
{
//protected readonly IConfiguration Configuration;
readonly ILogger<DataContext> _logger;
public DataContext(
DbContextOptions<DataContext> options,
ILogger<DataContext> logger)
: base(options)
{
_logger = logger;
//Configuration = configuration;
}
/*protected override void OnConfiguring(DbContextOptionsBuilder options)
{
// in memory database used for simplicity, change to a real db for production applications
options.UseInMemoryDatabase("TestDb");
}*/
public DbSet<User> Users { get; set; }
}

View File

@ -0,0 +1,8 @@
namespace AAIntegration.SimmonsBank.API.Models.Users;
public class UserCreateRequest
{
public string Username { get; set; }
public string Password { get; set; }
public string MFAKey { get; set; }
}

View File

@ -0,0 +1,8 @@
namespace AAIntegration.SimmonsBank.API.Models.Users;
public class UserUpdateRequest
{
public string? Username { get; set; } = null;
public string? Password { get; set; } = null;
public string? MFAKey { get; set; } = null;
}

View File

@ -1,4 +1,9 @@
using AAIntegration.SimmonsBank.API.Configs; using AAIntegration.SimmonsBank.API.Configs;
using AAIntegration.SimmonsBank.API.Handlers;
using AAIntegration.SimmonsBank.API.Helpers;
using AAIntegration.SimmonsBank.API.Services;
using Microsoft.AspNetCore.Authorization;
using Microsoft.EntityFrameworkCore;
internal class Program internal class Program
{ {
@ -12,12 +17,34 @@ internal class Program
builder.Services.AddAuthentication() builder.Services.AddAuthentication()
.AddScheme<ApiKeyAuthenticationOptions, ApiKeyAuthenticationHandler>(ApiKeyAuthenticationOptions.DefaultScheme, null); .AddScheme<ApiKeyAuthenticationOptions, ApiKeyAuthenticationHandler>(ApiKeyAuthenticationOptions.DefaultScheme, null);
// Authorization
builder.Services.AddAuthorization(options => {
AuthorizationPolicyBuilder defaultAuthorizationPolicyBuilder = new AuthorizationPolicyBuilder(
ApiKeyAuthenticationOptions.DefaultScheme
);
defaultAuthorizationPolicyBuilder = defaultAuthorizationPolicyBuilder.RequireAuthenticatedUser();
options.DefaultPolicy = defaultAuthorizationPolicyBuilder.Build();
});
builder.Services.AddControllers(); builder.Services.AddControllers();
// Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle // Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle
builder.Services.AddEndpointsApiExplorer(); builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen(); builder.Services.AddSwaggerGen();
builder.Services.Configure<AppSettings>(builder.Configuration.GetSection("AppSettings"));
DatabaseConfig dbConfig = builder.Configuration.GetSection("Database").Get<DatabaseConfig>();
builder.Services.AddDbContext<DataContext>(opt =>
opt.UseNpgsql(dbConfig.GetConnectionString()));
builder.Services.AddScoped<IUserService, UserService>();
builder.Services.AddScoped<ICacheService, CacheService>();
builder.Services.AddScoped<ApiKeyAuthenticationHandler>();
var app = builder.Build(); var app = builder.Build();
// Configure the HTTP request pipeline. // Configure the HTTP request pipeline.

View File

@ -0,0 +1,51 @@
namespace AAIntegration.SimmonsBank.API.Services;
using Microsoft.Extensions.Caching.Memory;
public interface ICacheService
{
int GetClientIdFromApiKey(string apiKey);
}
public class CacheService : ICacheService
{
private readonly IMemoryCache _memoryCache;
private readonly IUserService _userService;
public CacheService(IMemoryCache memoryCache, IUserService userService)
{
_memoryCache = memoryCache;
_userService = userService;
}
public int GetClientIdFromApiKey(string apiKey)
{
if (!_memoryCache.TryGetValue<Dictionary<string, int>>($"Authentication_ApiKeys", out var internalKeys))
{
internalKeys = _userService.GetAllApiKeys();
_memoryCache.Set($"Authentication_ApiKeys", internalKeys);
}
if (!internalKeys.TryGetValue(apiKey, out var clientId))
{
return -1;
}
return clientId;
}
/*public void InvalidateApiKey(string apiKey)
{
if (_memoryCache.TryGetValue<Dictionary<string, Guid>>("Authentication_ApiKeys", out var internalKeys))
{
if (internalKeys.ContainsKey(apiKey))
{
internalKeys.Remove(apiKey);
_memoryCache.Set("Authentication_ApiKeys", internalKeys);
}
}
_userService.InvalidateApiKey(apiKey);
}*/
}

View File

@ -0,0 +1,153 @@
namespace AAIntegration.SimmonsBank.API.Services;
using System;
using System.Collections;
using System.Collections.Generic;
using Microsoft.EntityFrameworkCore.Internal;
using Microsoft.IdentityModel.Tokens;
using System.Text;
using System.Security.Claims;
using Microsoft.Extensions.Options;
using AAIntegration.SimmonsBank.API.Entities;
using AAIntegration.SimmonsBank.API.Models.Users;
using AAIntegration.SimmonsBank.API.Helpers;
using AAIntegration.SimmonsBank.API.Configs;
using System.Security.Cryptography;
public interface IUserService
{
string Create(UserCreateRequest model);
//IEnumerable<User> GetAll();
//User GetById(int id);
void Update(string apiKey, UserUpdateRequest model);
void Delete(string apiKey);
Dictionary<string, int> GetAllApiKeys();
//string GetUserApiKey(int id);
//void InvalidateApiKey(string apiKey);
//string CreateUserApiKey(int id);
}
public class UserService : IUserService
{
private DataContext _context;
private readonly AppSettings _appSettings;
public UserService(
DataContext context,
IOptions<AppSettings> appSettings)
{
_context = context;
_appSettings = appSettings.Value;
}
public string Create(UserCreateRequest model)
{
User user = new User();
user.SimmonsBankUsername = model.Username;
user.SimmonsBankPassword = model.Password;
user.MFAKey = model.MFAKey;
// Generate API Key
user.ApiKey = generateApiKey();
// save user
_context.Users.Add(user);
_context.SaveChanges();
// Return API Key
return user.ApiKey;
}
/*public IEnumerable<User> GetAll()
{
return _context.Users;
}*/
/*public User GetById(int id)
{
return getUser(id);
}*/
public void Update(string apiKey, UserUpdateRequest model)
{
var user = getUser(apiKey);
// User.Username
if (model.Username != null)
user.SimmonsBankUsername = model.Username;
// User.Password
if (model.Password != null)
user.SimmonsBankPassword = model.Password;
// User.MFAKey
if (model.MFAKey != null)
user.MFAKey = model.MFAKey;
_context.Users.Update(user);
_context.SaveChanges();
}
public void Delete(string apiKey)
{
var user = getUser(apiKey);
_context.Users.Remove(user);
_context.SaveChanges();
}
public Dictionary<string, int> GetAllApiKeys()
{
return _context.Users
.Where(u => u.ApiKey != null)
.ToDictionary(u => u.ApiKey, u => u.Id);
}
/*public string GetUserApiKey(int id)
{
return this.getUser(id).ApiKey;
}*/
/*public void InvalidateApiKey(string apiKey)
{
User? user = _context.Users.FirstOrDefault(u => u.ApiKey == apiKey);
if (user is not null)
user.ApiKey = null;
}*/
// helper methods
private User getUser(int id)
{
var user = _context.Users.Find(id);
if (user == null) throw new KeyNotFoundException("User not found");
return user;
}
private User getUser(string ApiKey)
{
var user = _context.Users
.Where(u => u.ApiKey == ApiKey)
.FirstOrDefault();
if (user == null) throw new KeyNotFoundException("User not found");
return user;
}
private const string _prefix = "CT-";
private const int _numberOfSecureBytesToGenerate = 32;
private const int _lengthOfKey = 32;
private string generateApiKey()
{
var bytes = RandomNumberGenerator.GetBytes(_numberOfSecureBytesToGenerate);
string base64String = Convert.ToBase64String(bytes)
.Replace("+", "-")
.Replace("/", "_");
var keyLength = _lengthOfKey - _prefix.Length;
return _prefix + base64String[..keyLength];
}
}

View File

@ -5,5 +5,16 @@
"Microsoft.AspNetCore": "Warning" "Microsoft.AspNetCore": "Warning"
} }
}, },
"AllowedHosts": "*" "AllowedHosts": "*",
"AppSettings": {
"Secret": "5de80277015f9fd564c4d1cc2cf827dbb1774cd66e7d79aa258d9c35a9f67f32fc6cf0dc24244242bd9501288e0fd69e315b",
"APIUrl": "https://localhost:5279"
},
"Database": {
"Host": "localhost",
"Name": "AAISB_DB",
"User": "postgres",
"Password": "nqA3UV3CliLLHpLL",
"Port": "15432"
}
} }

View File

@ -8,13 +8,34 @@
".NETCoreApp,Version=v7.0": { ".NETCoreApp,Version=v7.0": {
"AAIntegration.SimmonsBank.API/1.0.0": { "AAIntegration.SimmonsBank.API/1.0.0": {
"dependencies": { "dependencies": {
"Microsoft.AspNetCore.Authorization": "7.0.0",
"Microsoft.AspNetCore.OpenApi": "7.0.15", "Microsoft.AspNetCore.OpenApi": "7.0.15",
"Microsoft.EntityFrameworkCore": "7.0.0",
"Microsoft.EntityFrameworkCore.Design": "7.0.0",
"Microsoft.IdentityModel.Tokens": "7.0.0",
"Npgsql.EntityFrameworkCore.PostgreSQL": "7.0.0",
"Swashbuckle.AspNetCore": "6.5.0" "Swashbuckle.AspNetCore": "6.5.0"
}, },
"runtime": { "runtime": {
"AAIntegration.SimmonsBank.API.dll": {} "AAIntegration.SimmonsBank.API.dll": {}
} }
}, },
"Humanizer.Core/2.14.1": {
"runtime": {
"lib/net6.0/Humanizer.dll": {
"assemblyVersion": "2.14.0.0",
"fileVersion": "2.14.1.48190"
}
}
},
"Microsoft.AspNetCore.Authorization/7.0.0": {
"dependencies": {
"Microsoft.AspNetCore.Metadata": "7.0.0",
"Microsoft.Extensions.Logging.Abstractions": "7.0.0",
"Microsoft.Extensions.Options": "7.0.0"
}
},
"Microsoft.AspNetCore.Metadata/7.0.0": {},
"Microsoft.AspNetCore.OpenApi/7.0.15": { "Microsoft.AspNetCore.OpenApi/7.0.15": {
"dependencies": { "dependencies": {
"Microsoft.OpenApi": "1.4.3" "Microsoft.OpenApi": "1.4.3"
@ -26,7 +47,140 @@
} }
} }
}, },
"Microsoft.EntityFrameworkCore/7.0.0": {
"dependencies": {
"Microsoft.EntityFrameworkCore.Abstractions": "7.0.0",
"Microsoft.EntityFrameworkCore.Analyzers": "7.0.0",
"Microsoft.Extensions.Caching.Memory": "7.0.0",
"Microsoft.Extensions.DependencyInjection": "7.0.0",
"Microsoft.Extensions.Logging": "7.0.0"
},
"runtime": {
"lib/net6.0/Microsoft.EntityFrameworkCore.dll": {
"assemblyVersion": "7.0.0.0",
"fileVersion": "7.0.22.51807"
}
}
},
"Microsoft.EntityFrameworkCore.Abstractions/7.0.0": {
"runtime": {
"lib/net6.0/Microsoft.EntityFrameworkCore.Abstractions.dll": {
"assemblyVersion": "7.0.0.0",
"fileVersion": "7.0.22.51807"
}
}
},
"Microsoft.EntityFrameworkCore.Analyzers/7.0.0": {},
"Microsoft.EntityFrameworkCore.Design/7.0.0": {
"dependencies": {
"Humanizer.Core": "2.14.1",
"Microsoft.EntityFrameworkCore.Relational": "7.0.0",
"Microsoft.Extensions.DependencyModel": "7.0.0",
"Mono.TextTemplating": "2.2.1"
},
"runtime": {
"lib/net6.0/Microsoft.EntityFrameworkCore.Design.dll": {
"assemblyVersion": "7.0.0.0",
"fileVersion": "7.0.22.51807"
}
}
},
"Microsoft.EntityFrameworkCore.Relational/7.0.0": {
"dependencies": {
"Microsoft.EntityFrameworkCore": "7.0.0",
"Microsoft.Extensions.Configuration.Abstractions": "7.0.0"
},
"runtime": {
"lib/net6.0/Microsoft.EntityFrameworkCore.Relational.dll": {
"assemblyVersion": "7.0.0.0",
"fileVersion": "7.0.22.51807"
}
}
},
"Microsoft.Extensions.ApiDescription.Server/6.0.5": {}, "Microsoft.Extensions.ApiDescription.Server/6.0.5": {},
"Microsoft.Extensions.Caching.Abstractions/7.0.0": {
"dependencies": {
"Microsoft.Extensions.Primitives": "7.0.0"
}
},
"Microsoft.Extensions.Caching.Memory/7.0.0": {
"dependencies": {
"Microsoft.Extensions.Caching.Abstractions": "7.0.0",
"Microsoft.Extensions.DependencyInjection.Abstractions": "7.0.0",
"Microsoft.Extensions.Logging.Abstractions": "7.0.0",
"Microsoft.Extensions.Options": "7.0.0",
"Microsoft.Extensions.Primitives": "7.0.0"
}
},
"Microsoft.Extensions.Configuration.Abstractions/7.0.0": {
"dependencies": {
"Microsoft.Extensions.Primitives": "7.0.0"
}
},
"Microsoft.Extensions.DependencyInjection/7.0.0": {
"dependencies": {
"Microsoft.Extensions.DependencyInjection.Abstractions": "7.0.0"
}
},
"Microsoft.Extensions.DependencyInjection.Abstractions/7.0.0": {},
"Microsoft.Extensions.DependencyModel/7.0.0": {
"dependencies": {
"System.Text.Encodings.Web": "7.0.0",
"System.Text.Json": "7.0.0"
},
"runtime": {
"lib/net7.0/Microsoft.Extensions.DependencyModel.dll": {
"assemblyVersion": "7.0.0.0",
"fileVersion": "7.0.22.51805"
}
}
},
"Microsoft.Extensions.Logging/7.0.0": {
"dependencies": {
"Microsoft.Extensions.DependencyInjection": "7.0.0",
"Microsoft.Extensions.DependencyInjection.Abstractions": "7.0.0",
"Microsoft.Extensions.Logging.Abstractions": "7.0.0",
"Microsoft.Extensions.Options": "7.0.0"
}
},
"Microsoft.Extensions.Logging.Abstractions/7.0.0": {},
"Microsoft.Extensions.Options/7.0.0": {
"dependencies": {
"Microsoft.Extensions.DependencyInjection.Abstractions": "7.0.0",
"Microsoft.Extensions.Primitives": "7.0.0"
}
},
"Microsoft.Extensions.Primitives/7.0.0": {},
"Microsoft.IdentityModel.Abstractions/7.0.0": {
"runtime": {
"lib/net6.0/Microsoft.IdentityModel.Abstractions.dll": {
"assemblyVersion": "7.0.0.0",
"fileVersion": "7.0.0.40911"
}
}
},
"Microsoft.IdentityModel.Logging/7.0.0": {
"dependencies": {
"Microsoft.IdentityModel.Abstractions": "7.0.0"
},
"runtime": {
"lib/net6.0/Microsoft.IdentityModel.Logging.dll": {
"assemblyVersion": "7.0.0.0",
"fileVersion": "7.0.0.40911"
}
}
},
"Microsoft.IdentityModel.Tokens/7.0.0": {
"dependencies": {
"Microsoft.IdentityModel.Logging": "7.0.0"
},
"runtime": {
"lib/net6.0/Microsoft.IdentityModel.Tokens.dll": {
"assemblyVersion": "7.0.0.0",
"fileVersion": "7.0.0.40911"
}
}
},
"Microsoft.OpenApi/1.4.3": { "Microsoft.OpenApi/1.4.3": {
"runtime": { "runtime": {
"lib/netstandard2.0/Microsoft.OpenApi.dll": { "lib/netstandard2.0/Microsoft.OpenApi.dll": {
@ -35,6 +189,43 @@
} }
} }
}, },
"Mono.TextTemplating/2.2.1": {
"dependencies": {
"System.CodeDom": "4.4.0"
},
"runtime": {
"lib/netstandard2.0/Mono.TextTemplating.dll": {
"assemblyVersion": "2.2.0.0",
"fileVersion": "2.2.1.1"
}
}
},
"Npgsql/7.0.0": {
"dependencies": {
"Microsoft.Extensions.Logging.Abstractions": "7.0.0",
"System.Runtime.CompilerServices.Unsafe": "6.0.0"
},
"runtime": {
"lib/net7.0/Npgsql.dll": {
"assemblyVersion": "7.0.0.0",
"fileVersion": "7.0.0.0"
}
}
},
"Npgsql.EntityFrameworkCore.PostgreSQL/7.0.0": {
"dependencies": {
"Microsoft.EntityFrameworkCore": "7.0.0",
"Microsoft.EntityFrameworkCore.Abstractions": "7.0.0",
"Microsoft.EntityFrameworkCore.Relational": "7.0.0",
"Npgsql": "7.0.0"
},
"runtime": {
"lib/net7.0/Npgsql.EntityFrameworkCore.PostgreSQL.dll": {
"assemblyVersion": "7.0.0.0",
"fileVersion": "7.0.0.0"
}
}
},
"Swashbuckle.AspNetCore/6.5.0": { "Swashbuckle.AspNetCore/6.5.0": {
"dependencies": { "dependencies": {
"Microsoft.Extensions.ApiDescription.Server": "6.0.5", "Microsoft.Extensions.ApiDescription.Server": "6.0.5",
@ -72,6 +263,21 @@
"fileVersion": "6.5.0.0" "fileVersion": "6.5.0.0"
} }
} }
},
"System.CodeDom/4.4.0": {
"runtime": {
"lib/netstandard2.0/System.CodeDom.dll": {
"assemblyVersion": "4.0.0.0",
"fileVersion": "4.6.25519.3"
}
}
},
"System.Runtime.CompilerServices.Unsafe/6.0.0": {},
"System.Text.Encodings.Web/7.0.0": {},
"System.Text.Json/7.0.0": {
"dependencies": {
"System.Text.Encodings.Web": "7.0.0"
}
} }
} }
}, },
@ -81,6 +287,27 @@
"serviceable": false, "serviceable": false,
"sha512": "" "sha512": ""
}, },
"Humanizer.Core/2.14.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-lQKvtaTDOXnoVJ20ibTuSIOf2i0uO0MPbDhd1jm238I+U/2ZnRENj0cktKZhtchBMtCUSRQ5v4xBCUbKNmyVMw==",
"path": "humanizer.core/2.14.1",
"hashPath": "humanizer.core.2.14.1.nupkg.sha512"
},
"Microsoft.AspNetCore.Authorization/7.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-0O7C7XHj+17Q0geMpnpRC0fnnALH2Yhaa2SAzX00OkeF2NZ/+zWoDymbSnepg1qhueufUivihZiVGtMeq5Zywg==",
"path": "microsoft.aspnetcore.authorization/7.0.0",
"hashPath": "microsoft.aspnetcore.authorization.7.0.0.nupkg.sha512"
},
"Microsoft.AspNetCore.Metadata/7.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-ut2azlKz7BQpCKu6AiwKEjMHpRWoD4qu2Ff/n6KagjFsyDAfZY7lgYJ158vr4O0jXet6pV1uF1q3jmXvki0OlA==",
"path": "microsoft.aspnetcore.metadata/7.0.0",
"hashPath": "microsoft.aspnetcore.metadata.7.0.0.nupkg.sha512"
},
"Microsoft.AspNetCore.OpenApi/7.0.15": { "Microsoft.AspNetCore.OpenApi/7.0.15": {
"type": "package", "type": "package",
"serviceable": true, "serviceable": true,
@ -88,6 +315,41 @@
"path": "microsoft.aspnetcore.openapi/7.0.15", "path": "microsoft.aspnetcore.openapi/7.0.15",
"hashPath": "microsoft.aspnetcore.openapi.7.0.15.nupkg.sha512" "hashPath": "microsoft.aspnetcore.openapi.7.0.15.nupkg.sha512"
}, },
"Microsoft.EntityFrameworkCore/7.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-9W+IfmAzMrp2ZpKZLhgTlWljSBM9Erldis1us61DAGi+L7Q6vilTbe1G2zDxtYO8F2H0I0Qnupdx5Cp4s2xoZw==",
"path": "microsoft.entityframeworkcore/7.0.0",
"hashPath": "microsoft.entityframeworkcore.7.0.0.nupkg.sha512"
},
"Microsoft.EntityFrameworkCore.Abstractions/7.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-Pfu3Zjj5+d2Gt27oE9dpGiF/VobBB+s5ogrfI9sBsXQE1SG49RqVz5+IyeNnzhyejFrPIQsPDRMchhcojy4Hbw==",
"path": "microsoft.entityframeworkcore.abstractions/7.0.0",
"hashPath": "microsoft.entityframeworkcore.abstractions.7.0.0.nupkg.sha512"
},
"Microsoft.EntityFrameworkCore.Analyzers/7.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-Qkd2H+jLe37o5ku+LjT6qf7kAHY75Yfn2bBDQgqr13DTOLYpEy1Mt93KPFjaZvIu/srEcbfGGMRL7urKm5zN8Q==",
"path": "microsoft.entityframeworkcore.analyzers/7.0.0",
"hashPath": "microsoft.entityframeworkcore.analyzers.7.0.0.nupkg.sha512"
},
"Microsoft.EntityFrameworkCore.Design/7.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-fEEU/zZ/VblZRQxHNZxgGKVtEtOGqEAmuHkACV1i0H031bM8PQKTS7PlKPVOgg0C1v+6yeHoIAGGgbAvG9f7kw==",
"path": "microsoft.entityframeworkcore.design/7.0.0",
"hashPath": "microsoft.entityframeworkcore.design.7.0.0.nupkg.sha512"
},
"Microsoft.EntityFrameworkCore.Relational/7.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-eQiYygtR2xZ0Uy7KtiFRHpoEx/U8xNwbNRgu1pEJgSxbJLtg6tDL1y2YcIbSuIRSNEljXIIHq/apEhGm1QL70g==",
"path": "microsoft.entityframeworkcore.relational/7.0.0",
"hashPath": "microsoft.entityframeworkcore.relational.7.0.0.nupkg.sha512"
},
"Microsoft.Extensions.ApiDescription.Server/6.0.5": { "Microsoft.Extensions.ApiDescription.Server/6.0.5": {
"type": "package", "type": "package",
"serviceable": true, "serviceable": true,
@ -95,6 +357,97 @@
"path": "microsoft.extensions.apidescription.server/6.0.5", "path": "microsoft.extensions.apidescription.server/6.0.5",
"hashPath": "microsoft.extensions.apidescription.server.6.0.5.nupkg.sha512" "hashPath": "microsoft.extensions.apidescription.server.6.0.5.nupkg.sha512"
}, },
"Microsoft.Extensions.Caching.Abstractions/7.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-IeimUd0TNbhB4ded3AbgBLQv2SnsiVugDyGV1MvspQFVlA07nDC7Zul7kcwH5jWN3JiTcp/ySE83AIJo8yfKjg==",
"path": "microsoft.extensions.caching.abstractions/7.0.0",
"hashPath": "microsoft.extensions.caching.abstractions.7.0.0.nupkg.sha512"
},
"Microsoft.Extensions.Caching.Memory/7.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-xpidBs2KCE2gw1JrD0quHE72kvCaI3xFql5/Peb2GRtUuZX+dYPoK/NTdVMiM67Svym0M0Df9A3xyU0FbMQhHw==",
"path": "microsoft.extensions.caching.memory/7.0.0",
"hashPath": "microsoft.extensions.caching.memory.7.0.0.nupkg.sha512"
},
"Microsoft.Extensions.Configuration.Abstractions/7.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-f34u2eaqIjNO9YLHBz8rozVZ+TcFiFs0F3r7nUJd7FRkVSxk8u4OpoK226mi49MwexHOR2ibP9MFvRUaLilcQQ==",
"path": "microsoft.extensions.configuration.abstractions/7.0.0",
"hashPath": "microsoft.extensions.configuration.abstractions.7.0.0.nupkg.sha512"
},
"Microsoft.Extensions.DependencyInjection/7.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-elNeOmkeX3eDVG6pYVeV82p29hr+UKDaBhrZyWvWLw/EVZSYEkZlQdkp0V39k/Xehs2Qa0mvoCvkVj3eQxNQ1Q==",
"path": "microsoft.extensions.dependencyinjection/7.0.0",
"hashPath": "microsoft.extensions.dependencyinjection.7.0.0.nupkg.sha512"
},
"Microsoft.Extensions.DependencyInjection.Abstractions/7.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-h3j/QfmFN4S0w4C2A6X7arXij/M/OVw3uQHSOFxnND4DyAzO1F9eMX7Eti7lU/OkSthEE0WzRsfT/Dmx86jzCw==",
"path": "microsoft.extensions.dependencyinjection.abstractions/7.0.0",
"hashPath": "microsoft.extensions.dependencyinjection.abstractions.7.0.0.nupkg.sha512"
},
"Microsoft.Extensions.DependencyModel/7.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-oONNYd71J3LzkWc4fUHl3SvMfiQMYUCo/mDHDEu76hYYxdhdrPYv6fvGv9nnKVyhE9P0h20AU8RZB5OOWQcAXg==",
"path": "microsoft.extensions.dependencymodel/7.0.0",
"hashPath": "microsoft.extensions.dependencymodel.7.0.0.nupkg.sha512"
},
"Microsoft.Extensions.Logging/7.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-Nw2muoNrOG5U5qa2ZekXwudUn2BJcD41e65zwmDHb1fQegTX66UokLWZkJRpqSSHXDOWZ5V0iqhbxOEky91atA==",
"path": "microsoft.extensions.logging/7.0.0",
"hashPath": "microsoft.extensions.logging.7.0.0.nupkg.sha512"
},
"Microsoft.Extensions.Logging.Abstractions/7.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-kmn78+LPVMOWeITUjIlfxUPDsI0R6G0RkeAMBmQxAJ7vBJn4q2dTva7pWi65ceN5vPGjJ9q/Uae2WKgvfktJAw==",
"path": "microsoft.extensions.logging.abstractions/7.0.0",
"hashPath": "microsoft.extensions.logging.abstractions.7.0.0.nupkg.sha512"
},
"Microsoft.Extensions.Options/7.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-lP1yBnTTU42cKpMozuafbvNtQ7QcBjr/CcK3bYOGEMH55Fjt+iecXjT6chR7vbgCMqy3PG3aNQSZgo/EuY/9qQ==",
"path": "microsoft.extensions.options/7.0.0",
"hashPath": "microsoft.extensions.options.7.0.0.nupkg.sha512"
},
"Microsoft.Extensions.Primitives/7.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-um1KU5kxcRp3CNuI8o/GrZtD4AIOXDk+RLsytjZ9QPok3ttLUelLKpilVPuaFT3TFjOhSibUAso0odbOaCDj3Q==",
"path": "microsoft.extensions.primitives/7.0.0",
"hashPath": "microsoft.extensions.primitives.7.0.0.nupkg.sha512"
},
"Microsoft.IdentityModel.Abstractions/7.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-7iSWSRR72VKeonFdfDi43Lvkca98Y0F3TmmWhRSuHbkjk/IKUSO0Qd272LQFZpi5eDNQNbUXy3o4THXhOAU6cw==",
"path": "microsoft.identitymodel.abstractions/7.0.0",
"hashPath": "microsoft.identitymodel.abstractions.7.0.0.nupkg.sha512"
},
"Microsoft.IdentityModel.Logging/7.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-6I35Kt2/PQZAyUYLo3+QgT/LubZ5/4Ojelkbyo8KKdDgjMbVocAx2B3P5V7iMCz+rsAe/RLr6ql87QKnHtI+aw==",
"path": "microsoft.identitymodel.logging/7.0.0",
"hashPath": "microsoft.identitymodel.logging.7.0.0.nupkg.sha512"
},
"Microsoft.IdentityModel.Tokens/7.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-dxYqmmFLsjBQZ6F6a4XDzrZ1CTxBRFVigJvWiNtXiIsT6UlYMxs9ONMaGx9XKzcxmcgEQ2ADuCqKZduz0LR9Hw==",
"path": "microsoft.identitymodel.tokens/7.0.0",
"hashPath": "microsoft.identitymodel.tokens.7.0.0.nupkg.sha512"
},
"Microsoft.OpenApi/1.4.3": { "Microsoft.OpenApi/1.4.3": {
"type": "package", "type": "package",
"serviceable": true, "serviceable": true,
@ -102,6 +455,27 @@
"path": "microsoft.openapi/1.4.3", "path": "microsoft.openapi/1.4.3",
"hashPath": "microsoft.openapi.1.4.3.nupkg.sha512" "hashPath": "microsoft.openapi.1.4.3.nupkg.sha512"
}, },
"Mono.TextTemplating/2.2.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-KZYeKBET/2Z0gY1WlTAK7+RHTl7GSbtvTLDXEZZojUdAPqpQNDL6tHv7VUpqfX5VEOh+uRGKaZXkuD253nEOBQ==",
"path": "mono.texttemplating/2.2.1",
"hashPath": "mono.texttemplating.2.2.1.nupkg.sha512"
},
"Npgsql/7.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-tOBFksJZ2MiEz8xtDUgS5IG19jVO3nSP15QDYWiiGpXHe0PsLoQBts2Sg3hHKrrLTuw+AjsJz9iKvvGNHyKDIg==",
"path": "npgsql/7.0.0",
"hashPath": "npgsql.7.0.0.nupkg.sha512"
},
"Npgsql.EntityFrameworkCore.PostgreSQL/7.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-CyUNlFZmtX2Kmw8XK5Tlx5eVUCzWJ+zJHErxZiMo2Y8zCRuH9+/OMGwG+9Mmp5zD5p3Ifbi5Pp3btsqoDDkSZQ==",
"path": "npgsql.entityframeworkcore.postgresql/7.0.0",
"hashPath": "npgsql.entityframeworkcore.postgresql.7.0.0.nupkg.sha512"
},
"Swashbuckle.AspNetCore/6.5.0": { "Swashbuckle.AspNetCore/6.5.0": {
"type": "package", "type": "package",
"serviceable": true, "serviceable": true,
@ -129,6 +503,34 @@
"sha512": "sha512-OvbvxX+wL8skxTBttcBsVxdh73Fag4xwqEU2edh4JMn7Ws/xJHnY/JB1e9RoCb6XpDxUF3hD9A0Z1lEUx40Pfw==", "sha512": "sha512-OvbvxX+wL8skxTBttcBsVxdh73Fag4xwqEU2edh4JMn7Ws/xJHnY/JB1e9RoCb6XpDxUF3hD9A0Z1lEUx40Pfw==",
"path": "swashbuckle.aspnetcore.swaggerui/6.5.0", "path": "swashbuckle.aspnetcore.swaggerui/6.5.0",
"hashPath": "swashbuckle.aspnetcore.swaggerui.6.5.0.nupkg.sha512" "hashPath": "swashbuckle.aspnetcore.swaggerui.6.5.0.nupkg.sha512"
},
"System.CodeDom/4.4.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-2sCCb7doXEwtYAbqzbF/8UAeDRMNmPaQbU2q50Psg1J9KzumyVVCgKQY8s53WIPTufNT0DpSe9QRvVjOzfDWBA==",
"path": "system.codedom/4.4.0",
"hashPath": "system.codedom.4.4.0.nupkg.sha512"
},
"System.Runtime.CompilerServices.Unsafe/6.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-/iUeP3tq1S0XdNNoMz5C9twLSrM/TH+qElHkXWaPvuNOt+99G75NrV0OS2EqHx5wMN7popYjpc8oTjC1y16DLg==",
"path": "system.runtime.compilerservices.unsafe/6.0.0",
"hashPath": "system.runtime.compilerservices.unsafe.6.0.0.nupkg.sha512"
},
"System.Text.Encodings.Web/7.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-OP6umVGxc0Z0MvZQBVigj4/U31Pw72ITihDWP9WiWDm+q5aoe0GaJivsfYGq53o6dxH7DcXWiCTl7+0o2CGdmg==",
"path": "system.text.encodings.web/7.0.0",
"hashPath": "system.text.encodings.web.7.0.0.nupkg.sha512"
},
"System.Text.Json/7.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-DaGSsVqKsn/ia6RG8frjwmJonfos0srquhw09TlT8KRw5I43E+4gs+/bZj4K0vShJ5H9imCuXupb4RmS+dBy3w==",
"path": "system.text.json/7.0.0",
"hashPath": "system.text.json.7.0.0.nupkg.sha512"
} }
} }
} }

View File

@ -13,6 +13,7 @@
], ],
"configProperties": { "configProperties": {
"System.GC.Server": true, "System.GC.Server": true,
"System.Reflection.NullabilityInfoContext.IsSupported": true,
"System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization": false "System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization": false
} }
} }

Binary file not shown.

Binary file not shown.

View File

@ -5,5 +5,16 @@
"Microsoft.AspNetCore": "Warning" "Microsoft.AspNetCore": "Warning"
} }
}, },
"AllowedHosts": "*" "AllowedHosts": "*",
"AppSettings": {
"Secret": "5de80277015f9fd564c4d1cc2cf827dbb1774cd66e7d79aa258d9c35a9f67f32fc6cf0dc24244242bd9501288e0fd69e315b",
"APIUrl": "https://localhost:5279"
},
"Database": {
"Host": "localhost",
"Name": "AAISB_DB",
"User": "postgres",
"Password": "nqA3UV3CliLLHpLL",
"Port": "15432"
}
} }

View File

@ -38,10 +38,32 @@
"net7.0": { "net7.0": {
"targetAlias": "net7.0", "targetAlias": "net7.0",
"dependencies": { "dependencies": {
"Microsoft.AspNetCore.Authorization": {
"target": "Package",
"version": "[7.0.0, )"
},
"Microsoft.AspNetCore.OpenApi": { "Microsoft.AspNetCore.OpenApi": {
"target": "Package", "target": "Package",
"version": "[7.0.15, )" "version": "[7.0.15, )"
}, },
"Microsoft.EntityFrameworkCore": {
"target": "Package",
"version": "[7.0.0, )"
},
"Microsoft.EntityFrameworkCore.Design": {
"include": "Runtime, Build, Native, ContentFiles, Analyzers, BuildTransitive",
"suppressParent": "All",
"target": "Package",
"version": "[7.0.0, )"
},
"Microsoft.IdentityModel.Tokens": {
"target": "Package",
"version": "[7.0.0, )"
},
"Npgsql.EntityFrameworkCore.PostgreSQL": {
"target": "Package",
"version": "[7.0.0, )"
},
"Swashbuckle.AspNetCore": { "Swashbuckle.AspNetCore": {
"target": "Package", "target": "Package",
"version": "[6.5.0, )" "version": "[6.5.0, )"

View File

@ -15,6 +15,8 @@
<ImportGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' "> <ImportGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<Import Project="$(NuGetPackageRoot)microsoft.extensions.apidescription.server/6.0.5/build/Microsoft.Extensions.ApiDescription.Server.props" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.apidescription.server/6.0.5/build/Microsoft.Extensions.ApiDescription.Server.props')" /> <Import Project="$(NuGetPackageRoot)microsoft.extensions.apidescription.server/6.0.5/build/Microsoft.Extensions.ApiDescription.Server.props" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.apidescription.server/6.0.5/build/Microsoft.Extensions.ApiDescription.Server.props')" />
<Import Project="$(NuGetPackageRoot)swashbuckle.aspnetcore/6.5.0/build/Swashbuckle.AspNetCore.props" Condition="Exists('$(NuGetPackageRoot)swashbuckle.aspnetcore/6.5.0/build/Swashbuckle.AspNetCore.props')" /> <Import Project="$(NuGetPackageRoot)swashbuckle.aspnetcore/6.5.0/build/Swashbuckle.AspNetCore.props" Condition="Exists('$(NuGetPackageRoot)swashbuckle.aspnetcore/6.5.0/build/Swashbuckle.AspNetCore.props')" />
<Import Project="$(NuGetPackageRoot)microsoft.entityframeworkcore/7.0.0/buildTransitive/net6.0/Microsoft.EntityFrameworkCore.props" Condition="Exists('$(NuGetPackageRoot)microsoft.entityframeworkcore/7.0.0/buildTransitive/net6.0/Microsoft.EntityFrameworkCore.props')" />
<Import Project="$(NuGetPackageRoot)microsoft.entityframeworkcore.design/7.0.0/build/net6.0/Microsoft.EntityFrameworkCore.Design.props" Condition="Exists('$(NuGetPackageRoot)microsoft.entityframeworkcore.design/7.0.0/build/net6.0/Microsoft.EntityFrameworkCore.Design.props')" />
</ImportGroup> </ImportGroup>
<PropertyGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' "> <PropertyGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<PkgMicrosoft_Extensions_ApiDescription_Server Condition=" '$(PkgMicrosoft_Extensions_ApiDescription_Server)' == '' ">/home/william/.nuget/packages/microsoft.extensions.apidescription.server/6.0.5</PkgMicrosoft_Extensions_ApiDescription_Server> <PkgMicrosoft_Extensions_ApiDescription_Server Condition=" '$(PkgMicrosoft_Extensions_ApiDescription_Server)' == '' ">/home/william/.nuget/packages/microsoft.extensions.apidescription.server/6.0.5</PkgMicrosoft_Extensions_ApiDescription_Server>

View File

@ -1,6 +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)system.text.json/7.0.0/buildTransitive/net6.0/System.Text.Json.targets" Condition="Exists('$(NuGetPackageRoot)system.text.json/7.0.0/buildTransitive/net6.0/System.Text.Json.targets')" />
<Import Project="$(NuGetPackageRoot)microsoft.extensions.apidescription.server/6.0.5/build/Microsoft.Extensions.ApiDescription.Server.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.apidescription.server/6.0.5/build/Microsoft.Extensions.ApiDescription.Server.targets')" /> <Import Project="$(NuGetPackageRoot)microsoft.extensions.apidescription.server/6.0.5/build/Microsoft.Extensions.ApiDescription.Server.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.apidescription.server/6.0.5/build/Microsoft.Extensions.ApiDescription.Server.targets')" />
<Import Project="$(NuGetPackageRoot)microsoft.extensions.logging.abstractions/7.0.0/buildTransitive/net6.0/Microsoft.Extensions.Logging.Abstractions.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.logging.abstractions/7.0.0/buildTransitive/net6.0/Microsoft.Extensions.Logging.Abstractions.targets')" />
</ImportGroup> </ImportGroup>
</Project> </Project>

View File

@ -1 +1 @@
eb9b1d086ec886252a72e514a1cf10cc4b5bd587 bd7d70d00f668e0d8bf64847deff236ad4b0c3cc

View File

@ -5,11 +5,24 @@
/home/william/Git/Integration-TransactionImporter-SimmonsBank/AAIntegration.SimmonsBank.API/bin/Debug/net7.0/AAIntegration.SimmonsBank.API.runtimeconfig.json /home/william/Git/Integration-TransactionImporter-SimmonsBank/AAIntegration.SimmonsBank.API/bin/Debug/net7.0/AAIntegration.SimmonsBank.API.runtimeconfig.json
/home/william/Git/Integration-TransactionImporter-SimmonsBank/AAIntegration.SimmonsBank.API/bin/Debug/net7.0/AAIntegration.SimmonsBank.API.dll /home/william/Git/Integration-TransactionImporter-SimmonsBank/AAIntegration.SimmonsBank.API/bin/Debug/net7.0/AAIntegration.SimmonsBank.API.dll
/home/william/Git/Integration-TransactionImporter-SimmonsBank/AAIntegration.SimmonsBank.API/bin/Debug/net7.0/AAIntegration.SimmonsBank.API.pdb /home/william/Git/Integration-TransactionImporter-SimmonsBank/AAIntegration.SimmonsBank.API/bin/Debug/net7.0/AAIntegration.SimmonsBank.API.pdb
/home/william/Git/Integration-TransactionImporter-SimmonsBank/AAIntegration.SimmonsBank.API/bin/Debug/net7.0/Humanizer.dll
/home/william/Git/Integration-TransactionImporter-SimmonsBank/AAIntegration.SimmonsBank.API/bin/Debug/net7.0/Microsoft.AspNetCore.OpenApi.dll /home/william/Git/Integration-TransactionImporter-SimmonsBank/AAIntegration.SimmonsBank.API/bin/Debug/net7.0/Microsoft.AspNetCore.OpenApi.dll
/home/william/Git/Integration-TransactionImporter-SimmonsBank/AAIntegration.SimmonsBank.API/bin/Debug/net7.0/Microsoft.EntityFrameworkCore.dll
/home/william/Git/Integration-TransactionImporter-SimmonsBank/AAIntegration.SimmonsBank.API/bin/Debug/net7.0/Microsoft.EntityFrameworkCore.Abstractions.dll
/home/william/Git/Integration-TransactionImporter-SimmonsBank/AAIntegration.SimmonsBank.API/bin/Debug/net7.0/Microsoft.EntityFrameworkCore.Design.dll
/home/william/Git/Integration-TransactionImporter-SimmonsBank/AAIntegration.SimmonsBank.API/bin/Debug/net7.0/Microsoft.EntityFrameworkCore.Relational.dll
/home/william/Git/Integration-TransactionImporter-SimmonsBank/AAIntegration.SimmonsBank.API/bin/Debug/net7.0/Microsoft.Extensions.DependencyModel.dll
/home/william/Git/Integration-TransactionImporter-SimmonsBank/AAIntegration.SimmonsBank.API/bin/Debug/net7.0/Microsoft.IdentityModel.Abstractions.dll
/home/william/Git/Integration-TransactionImporter-SimmonsBank/AAIntegration.SimmonsBank.API/bin/Debug/net7.0/Microsoft.IdentityModel.Logging.dll
/home/william/Git/Integration-TransactionImporter-SimmonsBank/AAIntegration.SimmonsBank.API/bin/Debug/net7.0/Microsoft.IdentityModel.Tokens.dll
/home/william/Git/Integration-TransactionImporter-SimmonsBank/AAIntegration.SimmonsBank.API/bin/Debug/net7.0/Microsoft.OpenApi.dll /home/william/Git/Integration-TransactionImporter-SimmonsBank/AAIntegration.SimmonsBank.API/bin/Debug/net7.0/Microsoft.OpenApi.dll
/home/william/Git/Integration-TransactionImporter-SimmonsBank/AAIntegration.SimmonsBank.API/bin/Debug/net7.0/Mono.TextTemplating.dll
/home/william/Git/Integration-TransactionImporter-SimmonsBank/AAIntegration.SimmonsBank.API/bin/Debug/net7.0/Npgsql.dll
/home/william/Git/Integration-TransactionImporter-SimmonsBank/AAIntegration.SimmonsBank.API/bin/Debug/net7.0/Npgsql.EntityFrameworkCore.PostgreSQL.dll
/home/william/Git/Integration-TransactionImporter-SimmonsBank/AAIntegration.SimmonsBank.API/bin/Debug/net7.0/Swashbuckle.AspNetCore.Swagger.dll /home/william/Git/Integration-TransactionImporter-SimmonsBank/AAIntegration.SimmonsBank.API/bin/Debug/net7.0/Swashbuckle.AspNetCore.Swagger.dll
/home/william/Git/Integration-TransactionImporter-SimmonsBank/AAIntegration.SimmonsBank.API/bin/Debug/net7.0/Swashbuckle.AspNetCore.SwaggerGen.dll /home/william/Git/Integration-TransactionImporter-SimmonsBank/AAIntegration.SimmonsBank.API/bin/Debug/net7.0/Swashbuckle.AspNetCore.SwaggerGen.dll
/home/william/Git/Integration-TransactionImporter-SimmonsBank/AAIntegration.SimmonsBank.API/bin/Debug/net7.0/Swashbuckle.AspNetCore.SwaggerUI.dll /home/william/Git/Integration-TransactionImporter-SimmonsBank/AAIntegration.SimmonsBank.API/bin/Debug/net7.0/Swashbuckle.AspNetCore.SwaggerUI.dll
/home/william/Git/Integration-TransactionImporter-SimmonsBank/AAIntegration.SimmonsBank.API/bin/Debug/net7.0/System.CodeDom.dll
/home/william/Git/Integration-TransactionImporter-SimmonsBank/AAIntegration.SimmonsBank.API/obj/Debug/net7.0/AAIntegration.SimmonsBank.API.csproj.AssemblyReference.cache /home/william/Git/Integration-TransactionImporter-SimmonsBank/AAIntegration.SimmonsBank.API/obj/Debug/net7.0/AAIntegration.SimmonsBank.API.csproj.AssemblyReference.cache
/home/william/Git/Integration-TransactionImporter-SimmonsBank/AAIntegration.SimmonsBank.API/obj/Debug/net7.0/AAIntegration.SimmonsBank.API.GeneratedMSBuildEditorConfig.editorconfig /home/william/Git/Integration-TransactionImporter-SimmonsBank/AAIntegration.SimmonsBank.API/obj/Debug/net7.0/AAIntegration.SimmonsBank.API.GeneratedMSBuildEditorConfig.editorconfig
/home/william/Git/Integration-TransactionImporter-SimmonsBank/AAIntegration.SimmonsBank.API/obj/Debug/net7.0/AAIntegration.SimmonsBank.API.AssemblyInfoInputs.cache /home/william/Git/Integration-TransactionImporter-SimmonsBank/AAIntegration.SimmonsBank.API/obj/Debug/net7.0/AAIntegration.SimmonsBank.API.AssemblyInfoInputs.cache

View File

@ -1 +1 @@
702df8d1d86e128e342486c48a85116b6fdc96e1 73736abff76b35e69e45e19ba4a468a4281d3a6a

File diff suppressed because it is too large Load Diff

View File

@ -1,16 +1,44 @@
{ {
"version": 2, "version": 2,
"dgSpecHash": "XQrq5LBJp+1kT3+rj0AHhB8AHpRyUUUinZzEJ/+2HgUt/elY0PG2VzNm+fyVtUTHGtWNVXVkgTkQY4KV3eBuoQ==", "dgSpecHash": "+YzPVm6dCqls1vMVNzEq7Me1vMtNZci2DFK/dzhgGd7F3oUcG2jW1uWdu7yR4roqWl4E1HzertAKQW8S2e71Yw==",
"success": true, "success": true,
"projectFilePath": "/home/william/Git/Integration-TransactionImporter-SimmonsBank/AAIntegration.SimmonsBank.API/AAIntegration.SimmonsBank.API.csproj", "projectFilePath": "/home/william/Git/Integration-TransactionImporter-SimmonsBank/AAIntegration.SimmonsBank.API/AAIntegration.SimmonsBank.API.csproj",
"expectedPackageFiles": [ "expectedPackageFiles": [
"/home/william/.nuget/packages/humanizer.core/2.14.1/humanizer.core.2.14.1.nupkg.sha512",
"/home/william/.nuget/packages/microsoft.aspnetcore.authorization/7.0.0/microsoft.aspnetcore.authorization.7.0.0.nupkg.sha512",
"/home/william/.nuget/packages/microsoft.aspnetcore.metadata/7.0.0/microsoft.aspnetcore.metadata.7.0.0.nupkg.sha512",
"/home/william/.nuget/packages/microsoft.aspnetcore.openapi/7.0.15/microsoft.aspnetcore.openapi.7.0.15.nupkg.sha512", "/home/william/.nuget/packages/microsoft.aspnetcore.openapi/7.0.15/microsoft.aspnetcore.openapi.7.0.15.nupkg.sha512",
"/home/william/.nuget/packages/microsoft.entityframeworkcore/7.0.0/microsoft.entityframeworkcore.7.0.0.nupkg.sha512",
"/home/william/.nuget/packages/microsoft.entityframeworkcore.abstractions/7.0.0/microsoft.entityframeworkcore.abstractions.7.0.0.nupkg.sha512",
"/home/william/.nuget/packages/microsoft.entityframeworkcore.analyzers/7.0.0/microsoft.entityframeworkcore.analyzers.7.0.0.nupkg.sha512",
"/home/william/.nuget/packages/microsoft.entityframeworkcore.design/7.0.0/microsoft.entityframeworkcore.design.7.0.0.nupkg.sha512",
"/home/william/.nuget/packages/microsoft.entityframeworkcore.relational/7.0.0/microsoft.entityframeworkcore.relational.7.0.0.nupkg.sha512",
"/home/william/.nuget/packages/microsoft.extensions.apidescription.server/6.0.5/microsoft.extensions.apidescription.server.6.0.5.nupkg.sha512", "/home/william/.nuget/packages/microsoft.extensions.apidescription.server/6.0.5/microsoft.extensions.apidescription.server.6.0.5.nupkg.sha512",
"/home/william/.nuget/packages/microsoft.extensions.caching.abstractions/7.0.0/microsoft.extensions.caching.abstractions.7.0.0.nupkg.sha512",
"/home/william/.nuget/packages/microsoft.extensions.caching.memory/7.0.0/microsoft.extensions.caching.memory.7.0.0.nupkg.sha512",
"/home/william/.nuget/packages/microsoft.extensions.configuration.abstractions/7.0.0/microsoft.extensions.configuration.abstractions.7.0.0.nupkg.sha512",
"/home/william/.nuget/packages/microsoft.extensions.dependencyinjection/7.0.0/microsoft.extensions.dependencyinjection.7.0.0.nupkg.sha512",
"/home/william/.nuget/packages/microsoft.extensions.dependencyinjection.abstractions/7.0.0/microsoft.extensions.dependencyinjection.abstractions.7.0.0.nupkg.sha512",
"/home/william/.nuget/packages/microsoft.extensions.dependencymodel/7.0.0/microsoft.extensions.dependencymodel.7.0.0.nupkg.sha512",
"/home/william/.nuget/packages/microsoft.extensions.logging/7.0.0/microsoft.extensions.logging.7.0.0.nupkg.sha512",
"/home/william/.nuget/packages/microsoft.extensions.logging.abstractions/7.0.0/microsoft.extensions.logging.abstractions.7.0.0.nupkg.sha512",
"/home/william/.nuget/packages/microsoft.extensions.options/7.0.0/microsoft.extensions.options.7.0.0.nupkg.sha512",
"/home/william/.nuget/packages/microsoft.extensions.primitives/7.0.0/microsoft.extensions.primitives.7.0.0.nupkg.sha512",
"/home/william/.nuget/packages/microsoft.identitymodel.abstractions/7.0.0/microsoft.identitymodel.abstractions.7.0.0.nupkg.sha512",
"/home/william/.nuget/packages/microsoft.identitymodel.logging/7.0.0/microsoft.identitymodel.logging.7.0.0.nupkg.sha512",
"/home/william/.nuget/packages/microsoft.identitymodel.tokens/7.0.0/microsoft.identitymodel.tokens.7.0.0.nupkg.sha512",
"/home/william/.nuget/packages/microsoft.openapi/1.4.3/microsoft.openapi.1.4.3.nupkg.sha512", "/home/william/.nuget/packages/microsoft.openapi/1.4.3/microsoft.openapi.1.4.3.nupkg.sha512",
"/home/william/.nuget/packages/mono.texttemplating/2.2.1/mono.texttemplating.2.2.1.nupkg.sha512",
"/home/william/.nuget/packages/npgsql/7.0.0/npgsql.7.0.0.nupkg.sha512",
"/home/william/.nuget/packages/npgsql.entityframeworkcore.postgresql/7.0.0/npgsql.entityframeworkcore.postgresql.7.0.0.nupkg.sha512",
"/home/william/.nuget/packages/swashbuckle.aspnetcore/6.5.0/swashbuckle.aspnetcore.6.5.0.nupkg.sha512", "/home/william/.nuget/packages/swashbuckle.aspnetcore/6.5.0/swashbuckle.aspnetcore.6.5.0.nupkg.sha512",
"/home/william/.nuget/packages/swashbuckle.aspnetcore.swagger/6.5.0/swashbuckle.aspnetcore.swagger.6.5.0.nupkg.sha512", "/home/william/.nuget/packages/swashbuckle.aspnetcore.swagger/6.5.0/swashbuckle.aspnetcore.swagger.6.5.0.nupkg.sha512",
"/home/william/.nuget/packages/swashbuckle.aspnetcore.swaggergen/6.5.0/swashbuckle.aspnetcore.swaggergen.6.5.0.nupkg.sha512", "/home/william/.nuget/packages/swashbuckle.aspnetcore.swaggergen/6.5.0/swashbuckle.aspnetcore.swaggergen.6.5.0.nupkg.sha512",
"/home/william/.nuget/packages/swashbuckle.aspnetcore.swaggerui/6.5.0/swashbuckle.aspnetcore.swaggerui.6.5.0.nupkg.sha512", "/home/william/.nuget/packages/swashbuckle.aspnetcore.swaggerui/6.5.0/swashbuckle.aspnetcore.swaggerui.6.5.0.nupkg.sha512",
"/home/william/.nuget/packages/system.codedom/4.4.0/system.codedom.4.4.0.nupkg.sha512",
"/home/william/.nuget/packages/system.runtime.compilerservices.unsafe/6.0.0/system.runtime.compilerservices.unsafe.6.0.0.nupkg.sha512",
"/home/william/.nuget/packages/system.text.encodings.web/7.0.0/system.text.encodings.web.7.0.0.nupkg.sha512",
"/home/william/.nuget/packages/system.text.json/7.0.0/system.text.json.7.0.0.nupkg.sha512",
"/home/william/.nuget/packages/microsoft.aspnetcore.app.ref/7.0.15/microsoft.aspnetcore.app.ref.7.0.15.nupkg.sha512" "/home/william/.nuget/packages/microsoft.aspnetcore.app.ref/7.0.15/microsoft.aspnetcore.app.ref.7.0.15.nupkg.sha512"
], ],
"logs": [] "logs": []

View File

@ -18,4 +18,8 @@ When running pgAdmin (a container in the docker compose stack) if there are erro
You may also need to allow full rwx (Read, Write, and Execute) rights on the directory. You may also need to allow full rwx (Read, Write, and Execute) rights on the directory.
```sudo chmod -R 777 ./Postgres/pg-admin_data``` ```sudo chmod -R 777 ./Postgres/pg-admin_data```
## Namespace
AAIntegration.SimmonsBank.API