testing
This commit is contained in:
16
.vscode/settings.json
vendored
16
.vscode/settings.json
vendored
@ -1,18 +1,6 @@
|
|||||||
{
|
{
|
||||||
"dotnet-test-explorer.testProjectPath": "**/*Tests.@(csproj|vbproj|fsproj)",
|
"dotnet-test-explorer.testProjectPath": "test/**/*Tests.csproj",
|
||||||
"sqltools.connections": [
|
|
||||||
{
|
|
||||||
"previewLimit": 50,
|
|
||||||
"server": "localhost",
|
|
||||||
"port": 5432,
|
|
||||||
"driver": "PostgreSQL",
|
|
||||||
"name": "yavscdev",
|
|
||||||
"group": "yavsc",
|
|
||||||
"database": "YavscDev",
|
|
||||||
"username": "yavscdev",
|
|
||||||
"password": "admin"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"cSpell.words": [
|
"cSpell.words": [
|
||||||
"appsettings",
|
"appsettings",
|
||||||
"Newtonsoft",
|
"Newtonsoft",
|
||||||
|
50
Directory.Packages.props
Normal file
50
Directory.Packages.props
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
<Project>
|
||||||
|
<PropertyGroup>
|
||||||
|
<ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally>
|
||||||
|
</PropertyGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<PackageVersion Include="AsciiDocNet" Version="1.0.0" />
|
||||||
|
<PackageVersion Include="bootstrap" Version="5.3.7" />
|
||||||
|
<PackageVersion Include="coverlet.collector" Version="6.0.4" />
|
||||||
|
<PackageVersion Include="Google.Apis.Calendar.v3" Version="1.69.0.3746" />
|
||||||
|
<PackageVersion Include="Google.Apis.Compute.v1" Version="1.70.0.3829" />
|
||||||
|
<PackageVersion Include="HigginsSoft.IdentityServer8" Version="8.0.5-preview-net9" />
|
||||||
|
<PackageVersion Include="HigginsSoft.IdentityServer8.AspNetIdentity" Version="8.0.5-preview-net9" />
|
||||||
|
<PackageVersion Include="IdentityModel.AspNetCore" Version="4.3.0" />
|
||||||
|
<PackageVersion Include="MailKit" Version="4.13.0" />
|
||||||
|
<PackageVersion Include="Microsoft.AspNetCore.Antiforgery" Version="2.3.0" />
|
||||||
|
<PackageVersion Include="Microsoft.AspNetCore.Authentication.Google" Version="9.0.7" />
|
||||||
|
<PackageVersion Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="9.0.7" />
|
||||||
|
<PackageVersion Include="Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore" Version="9.0.7" />
|
||||||
|
<PackageVersion Include="Microsoft.AspNetCore.Hosting" Version="2.3.0" />
|
||||||
|
<PackageVersion Include="Microsoft.AspNetCore.Http.Features" Version="5.0.17" />
|
||||||
|
<PackageVersion Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="9.0.7" />
|
||||||
|
<PackageVersion Include="Microsoft.AspNetCore.Identity.UI" Version="9.0.7" />
|
||||||
|
<PackageVersion Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="9.0.7" />
|
||||||
|
<PackageVersion Include="Microsoft.AspNetCore.Razor" Version="2.3.0" />
|
||||||
|
<PackageVersion Include="Microsoft.AspNetCore.SignalR" Version="1.2.0" />
|
||||||
|
<PackageVersion Include="Microsoft.AspNetCore.StaticFiles" Version="2.3.0" />
|
||||||
|
<PackageVersion Include="Microsoft.EntityFrameworkCore.Design" Version="9.0.7" />
|
||||||
|
<PackageVersion Include="Microsoft.EntityFrameworkCore.SqlServer" Version="9.0.7" />
|
||||||
|
<PackageVersion Include="Microsoft.EntityFrameworkCore.Tools" Version="9.0.7" />
|
||||||
|
<PackageVersion Include="Microsoft.Extensions.Caching.Memory" Version="9.0.7" />
|
||||||
|
<PackageVersion Include="Microsoft.Extensions.Options" Version="9.0.7" />
|
||||||
|
<PackageVersion Include="Microsoft.Extensions.Options.ConfigurationExtensions" Version="9.0.7" />
|
||||||
|
<PackageVersion Include="Microsoft.NET.Test.Sdk" Version="17.14.1" />
|
||||||
|
<PackageVersion Include="Microsoft.Playwright" Version="1.53.0" />
|
||||||
|
<PackageVersion Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="9.0.0" />
|
||||||
|
<PackageVersion Include="MimeKit" Version="4.13.0" />
|
||||||
|
<PackageVersion Include="Newtonsoft.Json" Version="13.0.3" />
|
||||||
|
<PackageVersion Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="9.0.4" />
|
||||||
|
<PackageVersion Include="PayPalMerchantSDK" Version="2.16.250" />
|
||||||
|
<PackageVersion Include="pazof.rules" Version="1.1.3" />
|
||||||
|
<PackageVersion Include="popper.js" Version="1.16.1" />
|
||||||
|
<PackageVersion Include="RazorEngine.NetCore" Version="3.1.0" />
|
||||||
|
<PackageVersion Include="Serilog.AspNetCore" Version="9.0.0" />
|
||||||
|
<PackageVersion Include="SixLabors.ImageSharp" Version="3.1.10" />
|
||||||
|
<PackageVersion Include="Swashbuckle.AspNetCore" Version="9.0.3" />
|
||||||
|
<PackageVersion Include="System.Security.Cryptography.Pkcs" Version="9.0.7" />
|
||||||
|
<PackageVersion Include="xunit" Version="2.9.3" />
|
||||||
|
<PackageVersion Include="xunit.runner.visualstudio" Version="3.1.2" />
|
||||||
|
</ItemGroup>
|
||||||
|
</Project>
|
@ -1,12 +1,12 @@
|
|||||||
<Project Sdk="Microsoft.NET.Sdk.Web">
|
<Project Sdk="Microsoft.NET.Sdk.Web">
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<TargetFramework>net9.0</TargetFramework>
|
<TargetFramework>net9.0</TargetFramework>
|
||||||
<Nullable>enable</Nullable>
|
<Nullable>enable</Nullable>
|
||||||
<ImplicitUsings>enable</ImplicitUsings>
|
<ImplicitUsings>enable</ImplicitUsings>
|
||||||
<UserSecretsId>1c73094f-959f-4211-b1a1-6a69b236c283</UserSecretsId>
|
<UserSecretsId>1c73094f-959f-4211-b1a1-6a69b236c283</UserSecretsId>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="9.0.6" />
|
<PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" />
|
||||||
<ProjectReference Include="../Yavsc.Server/Yavsc.Server.csproj" />
|
<ProjectReference Include="../Yavsc.Server/Yavsc.Server.csproj" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
</Project>
|
</Project>
|
@ -1,5 +1,5 @@
|
|||||||
<Project >
|
<Project>
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<Version>1.0.8</Version>
|
<Version>1.0.8</Version>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
</Project>
|
</Project>
|
@ -37,7 +37,7 @@ namespace Yavsc
|
|||||||
public const string FrontOfficeGroupName = "FrontOffice";
|
public const string FrontOfficeGroupName = "FrontOffice";
|
||||||
public const string DefaultAvatar = "/images/Users/icon_user.png";
|
public const string DefaultAvatar = "/images/Users/icon_user.png";
|
||||||
public const string AnonAvatar = "/images/Users/icon_anon_user.png";
|
public const string AnonAvatar = "/images/Users/icon_anon_user.png";
|
||||||
public const string YavscConnectionStringEnvName = "DEFAULTCONNECTION_CONNECTIONSTRING";
|
public const string YavscConnectionStringEnvName = "YAVSC_CONNECTION_STRING";
|
||||||
|
|
||||||
// at the end, let 4*4 bytes in peace
|
// at the end, let 4*4 bytes in peace
|
||||||
public const int WebSocketsMaxBufLen = 4096;
|
public const int WebSocketsMaxBufLen = 4096;
|
||||||
|
@ -1,16 +1,12 @@
|
|||||||
<Project Sdk="Microsoft.NET.Sdk">
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<TargetFrameworks>net9.0</TargetFrameworks>
|
<TargetFrameworks>net9.0</TargetFrameworks>
|
||||||
<ImplicitUsings>enable</ImplicitUsings>
|
<ImplicitUsings>enable</ImplicitUsings>
|
||||||
<Nullable>enable</Nullable>
|
<Nullable>enable</Nullable>
|
||||||
<Description> A shared model for a little client/server app, dealing about establishing some contract, between some human client and provider.
|
<Description> A shared model for a little client/server app, dealing about establishing some contract, between some human client and provider.
|
||||||
</Description>
|
</Description>
|
||||||
|
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
|
<PackageReference Include="Newtonsoft.Json" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
</Project>
|
||||||
</Project>
|
|
@ -16,75 +16,80 @@ namespace Yavsc.Helpers
|
|||||||
|
|
||||||
public static class WorkflowHelpers
|
public static class WorkflowHelpers
|
||||||
{
|
{
|
||||||
public static async Task<List<PerformerProfileViewModel>>
|
public static async Task<List<PerformerProfileViewModel>>
|
||||||
ListPerformersAsync(this ApplicationDbContext context,
|
ListPerformersAsync(this ApplicationDbContext context,
|
||||||
IBillingService billing,
|
IBillingService billing,
|
||||||
string actCode)
|
string actCode)
|
||||||
{
|
{
|
||||||
|
|
||||||
var actors = context.Performers
|
var actors = context.Performers
|
||||||
.Include(p=>p.Activity)
|
.Include(p => p.Activity)
|
||||||
.Include(p=>p.Performer)
|
.Include(p => p.Performer)
|
||||||
.Where(p => p.Active && p.Activity.Any(u=>u.DoesCode==actCode)).OrderBy( x => x.Rate )
|
.Where(p => p.Active && p.Activity.Any(u => u.DoesCode == actCode)).OrderBy(x => x.Rate)
|
||||||
.ToArray();
|
.ToArray();
|
||||||
|
|
||||||
List<PerformerProfileViewModel> result = new ();
|
List<PerformerProfileViewModel> result = new();
|
||||||
foreach (var a in actors)
|
foreach (var a in actors)
|
||||||
{
|
{
|
||||||
var settings = await billing.GetPerformersSettingsAsync(actCode, a.PerformerId);
|
var settings = await billing.GetPerformersSettingsAsync(actCode, a.PerformerId);
|
||||||
result.Add(new PerformerProfileViewModel(a, actCode,settings));
|
result.Add(new PerformerProfileViewModel(a, actCode, settings));
|
||||||
}
|
}
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void RegisterBilling<T>(string code, Func<ApplicationDbContext, long,
|
public static void RegisterBilling<T>(string code, Func<ApplicationDbContext, long,
|
||||||
IDecidableQuery> getter) where T : IBillable
|
IDecidableQuery> getter) where T : IBillable
|
||||||
{
|
|
||||||
BillingService.Billing.Add(code, getter);
|
|
||||||
BillingService.GlobalBillingMap.Add(typeof(T).Name, code);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void ConfigureBillingService()
|
|
||||||
{
|
|
||||||
foreach (var a in System.AppDomain.CurrentDomain.GetAssemblies())
|
|
||||||
{
|
{
|
||||||
foreach (var c in a.GetTypes())
|
if (BillingService.Billing.ContainsKey(code)
|
||||||
|
|| BillingService.GlobalBillingMap.ContainsKey(code))
|
||||||
{
|
{
|
||||||
if (c.IsClass && !c.IsAbstract &&
|
throw new InvalidOperationException("Billing setup");
|
||||||
c.GetInterface("ISpecializationSettings") != null)
|
|
||||||
{
|
|
||||||
Config.ProfileTypes.Add(c);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
BillingService.Billing.Add(code, getter);
|
||||||
|
BillingService.GlobalBillingMap.Add(typeof(T).Name, code);
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach (var propertyInfo in typeof(ApplicationDbContext).GetProperties())
|
public static void ConfigureBillingService()
|
||||||
{
|
{
|
||||||
foreach (var attr in propertyInfo.CustomAttributes)
|
foreach (var a in System.AppDomain.CurrentDomain.GetAssemblies())
|
||||||
{
|
{
|
||||||
// something like a DbSet?
|
foreach (var c in a.GetTypes())
|
||||||
if (typeof(Yavsc.Attributes.ActivitySettingsAttribute).IsAssignableFrom(attr.AttributeType))
|
|
||||||
{
|
{
|
||||||
BillingService.UserSettings.Add(propertyInfo);
|
if (c.IsClass && !c.IsAbstract &&
|
||||||
|
c.GetInterface("ISpecializationSettings") != null)
|
||||||
|
{
|
||||||
|
Config.ProfileTypes.Add(c);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
foreach (var propertyInfo in typeof(ApplicationDbContext).GetProperties())
|
||||||
|
{
|
||||||
|
foreach (var attr in propertyInfo.CustomAttributes)
|
||||||
|
{
|
||||||
|
// something like a DbSet?
|
||||||
|
if (typeof(Yavsc.Attributes.ActivitySettingsAttribute).IsAssignableFrom(attr.AttributeType))
|
||||||
|
{
|
||||||
|
BillingService.UserSettings.Add(propertyInfo);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
RegisterBilling<HairCutQuery>(BillingCodes.Brush, new Func<ApplicationDbContext, long, IDecidableQuery>
|
||||||
|
((db, id) =>
|
||||||
|
{
|
||||||
|
var query = db.HairCutQueries.Include(q => q.Prestation).Include(q => q.Regularisation).Single(q => q.Id == id);
|
||||||
|
query.SelectedProfile = db.BrusherProfile.Single(b => b.UserId == query.PerformerId);
|
||||||
|
return query;
|
||||||
|
}));
|
||||||
|
|
||||||
|
RegisterBilling<HairMultiCutQuery>(BillingCodes.MBrush, new Func<ApplicationDbContext, long, IDecidableQuery>
|
||||||
|
((db, id) => db.HairMultiCutQueries.Include(q => q.Regularisation).Single(q => q.Id == id)));
|
||||||
|
|
||||||
|
RegisterBilling<RdvQuery>(BillingCodes.Rdv, new Func<ApplicationDbContext, long, IDecidableQuery>
|
||||||
|
((db, id) => db.RdvQueries.Include(q => q.Regularisation).Single(q => q.Id == id)));
|
||||||
}
|
}
|
||||||
|
|
||||||
RegisterBilling<HairCutQuery>(BillingCodes.Brush, new Func<ApplicationDbContext, long, IDecidableQuery>
|
|
||||||
((db, id) =>
|
|
||||||
{
|
|
||||||
var query = db.HairCutQueries.Include(q => q.Prestation).Include(q => q.Regularisation).Single(q => q.Id == id);
|
|
||||||
query.SelectedProfile = db.BrusherProfile.Single(b => b.UserId == query.PerformerId);
|
|
||||||
return query;
|
|
||||||
}));
|
|
||||||
|
|
||||||
RegisterBilling<HairMultiCutQuery>(BillingCodes.MBrush, new Func<ApplicationDbContext, long, IDecidableQuery>
|
|
||||||
((db, id) => db.HairMultiCutQueries.Include(q => q.Regularisation).Single(q => q.Id == id)));
|
|
||||||
|
|
||||||
RegisterBilling<RdvQuery>(BillingCodes.Rdv, new Func<ApplicationDbContext, long, IDecidableQuery>
|
|
||||||
((db, id) => db.RdvQueries.Include(q => q.Regularisation).Single(q => q.Id == id)));
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -17,7 +17,7 @@ namespace Yavsc.Migrations
|
|||||||
{
|
{
|
||||||
#pragma warning disable 612, 618
|
#pragma warning disable 612, 618
|
||||||
modelBuilder
|
modelBuilder
|
||||||
.HasAnnotation("ProductVersion", "9.0.6")
|
.HasAnnotation("ProductVersion", "9.0.7")
|
||||||
.HasAnnotation("Relational:MaxIdentifierLength", 63);
|
.HasAnnotation("Relational:MaxIdentifierLength", 63);
|
||||||
|
|
||||||
NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);
|
NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);
|
||||||
|
@ -35,17 +35,18 @@ namespace Yavsc.Models
|
|||||||
|
|
||||||
using Microsoft.EntityFrameworkCore.ChangeTracking;
|
using Microsoft.EntityFrameworkCore.ChangeTracking;
|
||||||
using Yavsc.Abstract.Models.Messaging;
|
using Yavsc.Abstract.Models.Messaging;
|
||||||
|
using Microsoft.Extensions.Logging;
|
||||||
|
using System.Configuration;
|
||||||
|
|
||||||
public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
|
public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
|
||||||
{
|
{
|
||||||
public ApplicationDbContext()
|
private readonly ILogger<ApplicationDbContext> logger;
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options) : base(options)
|
public ApplicationDbContext(ILoggerFactory loggerFactory,
|
||||||
|
DbContextOptions<ApplicationDbContext> options) : base(options)
|
||||||
{
|
{
|
||||||
|
logger = loggerFactory.CreateLogger<ApplicationDbContext>();
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void OnModelCreating(ModelBuilder builder)
|
protected override void OnModelCreating(ModelBuilder builder)
|
||||||
@ -89,22 +90,6 @@ namespace Yavsc.Models
|
|||||||
// builder.Entity<IdentityUserLogin<String>>().HasKey(i=> new { i.LoginProvider, i.UserId, i.ProviderKey });
|
// builder.Entity<IdentityUserLogin<String>>().HasKey(i=> new { i.LoginProvider, i.UserId, i.ProviderKey });
|
||||||
}
|
}
|
||||||
|
|
||||||
// this is not a failback procedure.
|
|
||||||
|
|
||||||
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
|
|
||||||
{
|
|
||||||
var appSetup = (string)AppDomain.CurrentDomain.GetData(Constants.YavscConnectionStringEnvName);
|
|
||||||
if (!string.IsNullOrWhiteSpace(appSetup))
|
|
||||||
{
|
|
||||||
optionsBuilder.UseNpgsql(appSetup);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
var envSetup = Environment.GetEnvironmentVariable(Constants.YavscConnectionStringEnvName);
|
|
||||||
if (envSetup != null)
|
|
||||||
optionsBuilder.UseNpgsql(envSetup);
|
|
||||||
else optionsBuilder.UseNpgsql();
|
|
||||||
}
|
|
||||||
|
|
||||||
public DbSet<Client> Applications { get; set; }
|
public DbSet<Client> Applications { get; set; }
|
||||||
|
|
||||||
public DbSet<RefreshToken> RefreshTokens { get; set; }
|
public DbSet<RefreshToken> RefreshTokens { get; set; }
|
||||||
|
@ -1,33 +1,32 @@
|
|||||||
<Project Sdk="Microsoft.NET.Sdk">
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<TargetFramework>net9.0</TargetFramework>
|
<TargetFramework>net9.0</TargetFramework>
|
||||||
<ImplicitUsings>enable</ImplicitUsings>
|
<ImplicitUsings>enable</ImplicitUsings>
|
||||||
<Nullable>enable</Nullable>
|
<Nullable>enable</Nullable>
|
||||||
<UserSecretsId>53bd70e8-ff81-497a-847f-a15fd8ea7a09</UserSecretsId>
|
<UserSecretsId>53bd70e8-ff81-497a-847f-a15fd8ea7a09</UserSecretsId>
|
||||||
|
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="9.0.4" />
|
<PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL" />
|
||||||
<PackageReference Include="HigginsSoft.IdentityServer8" Version="8.0.5-preview-net9" />
|
<PackageReference Include="HigginsSoft.IdentityServer8" />
|
||||||
<PackageReference Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="9.0.6" />
|
<PackageReference Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" />
|
||||||
<PackageReference Include="Microsoft.AspNetCore.Identity.UI" Version="9.0.6" />
|
<PackageReference Include="Microsoft.AspNetCore.Identity.UI" />
|
||||||
<PackageReference Include="Microsoft.AspNetCore.Http.Features" Version="5.0.17" />
|
<PackageReference Include="Microsoft.AspNetCore.Http.Features" />
|
||||||
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="9.0.6">
|
<PackageReference Include="Microsoft.EntityFrameworkCore.Design">
|
||||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||||
<PrivateAssets>all</PrivateAssets>
|
<PrivateAssets>all</PrivateAssets>
|
||||||
</PackageReference>
|
</PackageReference>
|
||||||
<PackageReference Include="Microsoft.AspNetCore.StaticFiles" Version="2.3.0" />
|
<PackageReference Include="Microsoft.AspNetCore.StaticFiles" />
|
||||||
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="9.0.6" />
|
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" />
|
||||||
<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="9.0.0" />
|
<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" />
|
||||||
<PackageReference Include="Google.Apis.Calendar.v3" Version="1.69.0.3746" />
|
<PackageReference Include="Google.Apis.Calendar.v3" />
|
||||||
<PackageReference Include="PayPalMerchantSDK" Version="2.16.250" />
|
<PackageReference Include="PayPalMerchantSDK" />
|
||||||
<PackageReference Include="SixLabors.ImageSharp" Version="3.1.10" />
|
<PackageReference Include="SixLabors.ImageSharp" />
|
||||||
<PackageReference Include="RazorEngine.NetCore" Version="3.1.0" />
|
<PackageReference Include="RazorEngine.NetCore" />
|
||||||
<PackageReference Include="MailKit" Version="4.13.0" />
|
<PackageReference Include="MailKit" />
|
||||||
<PackageReference Include="MimeKit" Version="4.13.0" />
|
<PackageReference Include="MimeKit" />
|
||||||
<PackageReference Include="pazof.rules" Version="1.1.3" />
|
<PackageReference Include="pazof.rules" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ProjectReference Include="../Yavsc.Abstract/Yavsc.Abstract.csproj" />
|
<ProjectReference Include="../Yavsc.Abstract/Yavsc.Abstract.csproj" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
</Project>
|
</Project>
|
@ -44,7 +44,7 @@ namespace Yavsc.Extensions;
|
|||||||
public static class HostingExtensions
|
public static class HostingExtensions
|
||||||
{
|
{
|
||||||
|
|
||||||
internal static WebApplication ConfigureWebAppServices(this WebApplicationBuilder builder)
|
public static WebApplication ConfigureWebAppServices(this WebApplicationBuilder builder)
|
||||||
{
|
{
|
||||||
IServiceCollection services = LoadConfiguration(builder);
|
IServiceCollection services = LoadConfiguration(builder);
|
||||||
|
|
||||||
@ -300,7 +300,7 @@ public static class HostingExtensions
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
internal async static Task<WebApplication> ConfigurePipeline(this WebApplication app)
|
public async static Task<WebApplication> ConfigurePipeline(this WebApplication app)
|
||||||
{
|
{
|
||||||
|
|
||||||
if (app.Environment.IsDevelopment())
|
if (app.Environment.IsDevelopment())
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
<Project Sdk="Microsoft.NET.Sdk.Web">
|
<Project Sdk="Microsoft.NET.Sdk.Web">
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<TargetFramework>net9.0</TargetFramework>
|
<TargetFramework>net9.0</TargetFramework>
|
||||||
<Nullable>enable</Nullable>
|
<Nullable>enable</Nullable>
|
||||||
@ -7,44 +7,42 @@
|
|||||||
<UserSecretsId>76e56fc2-1619-40d8-8393-365258b7a21d</UserSecretsId>
|
<UserSecretsId>76e56fc2-1619-40d8-8393-365258b7a21d</UserSecretsId>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="popper.js" Version="1.16.1">
|
<PackageReference Include="popper.js">
|
||||||
<PrivateAssets>all</PrivateAssets>
|
<PrivateAssets>all</PrivateAssets>
|
||||||
</PackageReference>
|
</PackageReference>
|
||||||
<PackageReference Include="bootstrap" Version="5.3.7">
|
<PackageReference Include="bootstrap">
|
||||||
<PrivateAssets>all</PrivateAssets>
|
<PrivateAssets>all</PrivateAssets>
|
||||||
</PackageReference>
|
</PackageReference>
|
||||||
<PackageReference Include="HigginsSoft.IdentityServer8" Version="8.0.5-preview-net9" />
|
<PackageReference Include="HigginsSoft.IdentityServer8" />
|
||||||
<PackageReference Include="HigginsSoft.IdentityServer8.AspNetIdentity" Version="8.0.5-preview-net9" />
|
<PackageReference Include="HigginsSoft.IdentityServer8.AspNetIdentity" />
|
||||||
|
<PackageReference Include="Serilog.AspNetCore" />
|
||||||
<PackageReference Include="Serilog.AspNetCore" Version="9.0.0" />
|
<PackageReference Include="Microsoft.AspNetCore.Authentication.Google" />
|
||||||
<PackageReference Include="Microsoft.AspNetCore.Authentication.Google" Version="9.0.7" />
|
<PackageReference Include="Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore" />
|
||||||
<PackageReference Include="Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore" Version="9.0.7" />
|
<PackageReference Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" />
|
||||||
<PackageReference Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="9.0.7" />
|
<PackageReference Include="Microsoft.AspNetCore.Identity.UI" />
|
||||||
<PackageReference Include="Microsoft.AspNetCore.Identity.UI" Version="9.0.7" />
|
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools">
|
||||||
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="9.0.7">
|
|
||||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||||
<PrivateAssets>all</PrivateAssets>
|
<PrivateAssets>all</PrivateAssets>
|
||||||
</PackageReference>
|
</PackageReference>
|
||||||
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="9.0.7">
|
<PackageReference Include="Microsoft.EntityFrameworkCore.Design">
|
||||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||||
<PrivateAssets>all</PrivateAssets>
|
<PrivateAssets>all</PrivateAssets>
|
||||||
</PackageReference>
|
</PackageReference>
|
||||||
<PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="9.0.7" />
|
<PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" />
|
||||||
<PackageReference Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="9.0.7" />
|
<PackageReference Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" />
|
||||||
<PackageReference Include="Google.Apis.Compute.v1" Version="1.70.0.3829" />
|
<PackageReference Include="Google.Apis.Compute.v1" />
|
||||||
<PackageReference Include="Microsoft.AspNetCore.SignalR" Version="1.2.0" />
|
<PackageReference Include="Microsoft.AspNetCore.SignalR" />
|
||||||
<PackageReference Include="Microsoft.AspNetCore.Razor" Version="2.3.0" />
|
<PackageReference Include="Microsoft.AspNetCore.Razor" />
|
||||||
<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="9.0.0" />
|
<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" />
|
||||||
<PackageReference Include="System.Security.Cryptography.Pkcs" Version="9.0.7" />
|
<PackageReference Include="System.Security.Cryptography.Pkcs" />
|
||||||
<PackageReference Include="Microsoft.AspNetCore.Antiforgery" Version="2.3.0" />
|
<PackageReference Include="Microsoft.AspNetCore.Antiforgery" />
|
||||||
<PackageReference Include="Swashbuckle.AspNetCore" Version="9.0.3" />
|
<PackageReference Include="Swashbuckle.AspNetCore" />
|
||||||
<PackageReference Include="AsciiDocNet" Version="1.0.0-alpha6" />
|
<PackageReference Include="AsciiDocNet" />
|
||||||
<PackageReference Include="SixLabors.ImageSharp" Version="3.1.10" />
|
<PackageReference Include="SixLabors.ImageSharp" />
|
||||||
<PackageReference Include="Microsoft.AspNetCore.Authentication.Google" Version="9.0.7" />
|
<PackageReference Include="Microsoft.AspNetCore.Authentication.Google" />
|
||||||
|
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ProjectReference Include="../Yavsc.Server/Yavsc.Server.csproj" />
|
<ProjectReference Include="../Yavsc.Server/Yavsc.Server.csproj" />
|
||||||
<ProjectReference Include="../Yavsc.Abstract/Yavsc.Abstract.csproj" />
|
<ProjectReference Include="../Yavsc.Abstract/Yavsc.Abstract.csproj" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
</Project>
|
</Project>
|
@ -4,18 +4,15 @@
|
|||||||
<Nullable>enable</Nullable>
|
<Nullable>enable</Nullable>
|
||||||
<ImplicitUsings>enable</ImplicitUsings>
|
<ImplicitUsings>enable</ImplicitUsings>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ProjectReference Include="..\Yavsc.Abstract\Yavsc.Abstract.csproj" />
|
<ProjectReference Include="..\Yavsc.Abstract\Yavsc.Abstract.csproj" />
|
||||||
<PackageReference Include="IdentityModel.AspNetCore" Version="4.3.0" />
|
<PackageReference Include="IdentityModel.AspNetCore" />
|
||||||
<PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="9.0.7" />
|
<PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Content Update="Views\Shared\Json.cshtml">
|
<Content Update="Views\Shared\Json.cshtml">
|
||||||
<ExcludeFromSingleFile>true</ExcludeFromSingleFile>
|
<ExcludeFromSingleFile>true</ExcludeFromSingleFile>
|
||||||
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
|
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
|
||||||
</Content>
|
</Content>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
</Project>
|
||||||
</Project>
|
|
@ -40,7 +40,6 @@ namespace yavscTests
|
|||||||
[Fact]
|
[Fact]
|
||||||
public void GitClone()
|
public void GitClone()
|
||||||
{
|
{
|
||||||
Assert.True(_serverFixture.EnsureTestDb());
|
|
||||||
Assert.NotNull (_serverFixture.DbContext.Project);
|
Assert.NotNull (_serverFixture.DbContext.Project);
|
||||||
var firstProject = _serverFixture.DbContext.Project.Include(p=>p.Repository).FirstOrDefault();
|
var firstProject = _serverFixture.DbContext.Project.Include(p=>p.Repository).FirstOrDefault();
|
||||||
Assert.NotNull (firstProject);
|
Assert.NotNull (firstProject);
|
||||||
@ -54,8 +53,6 @@ namespace yavscTests
|
|||||||
string gitRepo=null;
|
string gitRepo=null;
|
||||||
private IConfigurationRoot configurationRoot;
|
private IConfigurationRoot configurationRoot;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public void HaveConfigurationRoot()
|
public void HaveConfigurationRoot()
|
||||||
@ -66,55 +63,12 @@ namespace yavscTests
|
|||||||
configurationRoot = builder.Build();
|
configurationRoot = builder.Build();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
internal static IConfigurationRoot CreateConfiguration(string prjDir)
|
|
||||||
{
|
|
||||||
var builder = new ConfigurationBuilder();
|
|
||||||
|
|
||||||
builder.AddJsonFile(Path.Combine(prjDir, "appsettings.json"), false);
|
|
||||||
builder.AddJsonFile(Path.Combine(prjDir, "appsettings.Development.json"), true);
|
|
||||||
return builder.Build();
|
|
||||||
}
|
|
||||||
static IConfigurationRoot ConfigurationRoot;
|
|
||||||
internal static void ConfigureServices
|
|
||||||
(ServiceCollection serviceCollection,
|
|
||||||
string prjDir,
|
|
||||||
out IConfigurationRoot configuration,
|
|
||||||
out IServiceProvider provider)
|
|
||||||
{
|
|
||||||
ConfigurationRoot = configuration = CreateConfiguration(prjDir);
|
|
||||||
|
|
||||||
serviceCollection.AddOptions();
|
|
||||||
var siteSettingsconf = configuration.GetSection("Site");
|
|
||||||
serviceCollection.Configure<SiteSettings>(siteSettingsconf);
|
|
||||||
var smtpSettingsconf = configuration.GetSection("Smtp");
|
|
||||||
serviceCollection.Configure<SmtpSettings>(smtpSettingsconf);
|
|
||||||
var locOptions = configuration.GetSection("Localization");
|
|
||||||
serviceCollection.Configure<LocalizationOptions>(locOptions);
|
|
||||||
|
|
||||||
serviceCollection.AddSingleton(typeof(ILoggerFactory), typeof(LoggerFactory));
|
|
||||||
serviceCollection.AddTransient(typeof(IEmailSender<ApplicationUser>), typeof(MailSender));
|
|
||||||
|
|
||||||
serviceCollection.AddLogging();
|
|
||||||
serviceCollection.AddMvcCore();
|
|
||||||
serviceCollection.AddLocalization(options =>
|
|
||||||
{
|
|
||||||
options.ResourcesPath = "Resources";
|
|
||||||
});
|
|
||||||
serviceCollection.AddDbContext<ApplicationDbContext>(options =>
|
|
||||||
options.UseNpgsql(o => ConfigurationRoot.GetConnectionString("DefaultConnection")));
|
|
||||||
provider = serviceCollection.BuildServiceProvider();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public void Dispose()
|
public void Dispose()
|
||||||
{
|
{
|
||||||
if (gitRepo!=null)
|
if (gitRepo!=null)
|
||||||
{
|
{
|
||||||
Directory.Delete(Path.Combine(gitRepo,"yavsc"), true);
|
Directory.Delete(Path.Combine(gitRepo,"yavsc"), true);
|
||||||
}
|
}
|
||||||
_serverFixture.DropTestDb();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -5,6 +5,7 @@ using Xunit.Abstractions;
|
|||||||
|
|
||||||
namespace yavscTests.Mandatory
|
namespace yavscTests.Mandatory
|
||||||
{
|
{
|
||||||
|
|
||||||
[Collection("Database")]
|
[Collection("Database")]
|
||||||
[Trait("regression", "II")]
|
[Trait("regression", "II")]
|
||||||
[Trait("dev", "wip")]
|
[Trait("dev", "wip")]
|
||||||
@ -16,29 +17,14 @@ namespace yavscTests.Mandatory
|
|||||||
{
|
{
|
||||||
this.output = output;
|
this.output = output;
|
||||||
_serverFixture = serverFixture;
|
_serverFixture = serverFixture;
|
||||||
try {
|
|
||||||
if (_serverFixture.DbCreated)
|
output.WriteLine($"Testing connection string is {_serverFixture?.TestingSetup?.ConnectionStrings.DefaultConnection}");
|
||||||
|
|
||||||
_serverFixture.DropTestDb();
|
|
||||||
|
|
||||||
}
|
|
||||||
catch (Exception)
|
|
||||||
{
|
|
||||||
output.WriteLine("db not dropped");
|
|
||||||
}
|
|
||||||
output.WriteLine($"Startup.Testing.ConnectionStrings.Default is {_serverFixture.TestingSetup.ConnectionStrings.Default}");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Assuming we're using an account that may create databases,
|
/// Assuming we're using an account that may create databases,
|
||||||
/// Install all our migrations in a fresh new database.
|
/// Install all our migrations in a fresh new database.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[Fact]
|
|
||||||
public void InstallFromScratchUsingPoweredNpgsqlUser()
|
|
||||||
{
|
|
||||||
Assert.True(_serverFixture.EnsureTestDb());
|
|
||||||
Assert.True(_serverFixture.UpgradeDb()==0);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void Dispose()
|
public void Dispose()
|
||||||
{
|
{
|
||||||
|
@ -2,7 +2,6 @@ namespace yavscTests.Settings
|
|||||||
{
|
{
|
||||||
public class DbConnectionSettings
|
public class DbConnectionSettings
|
||||||
{
|
{
|
||||||
public string DatabaseCtor { get; set; }
|
public string? DefaultConnection { get; set; }
|
||||||
public string Default { get; set; }
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
using System.Net;
|
using System.Net;
|
||||||
using Microsoft.AspNetCore;
|
using Microsoft.AspNetCore;
|
||||||
|
using Microsoft.AspNetCore.Builder;
|
||||||
using Microsoft.AspNetCore.Hosting;
|
using Microsoft.AspNetCore.Hosting;
|
||||||
using Microsoft.AspNetCore.Hosting.Server;
|
using Microsoft.AspNetCore.Hosting.Server;
|
||||||
using Microsoft.AspNetCore.Hosting.Server.Features;
|
using Microsoft.AspNetCore.Hosting.Server.Features;
|
||||||
@ -13,6 +14,8 @@ using Yavsc;
|
|||||||
using Yavsc.Models;
|
using Yavsc.Models;
|
||||||
using Yavsc.Services;
|
using Yavsc.Services;
|
||||||
using yavscTests.Settings;
|
using yavscTests.Settings;
|
||||||
|
using Yavsc.Extensions;
|
||||||
|
using Microsoft.EntityFrameworkCore;
|
||||||
|
|
||||||
namespace isnd.tests
|
namespace isnd.tests
|
||||||
{
|
{
|
||||||
@ -20,12 +23,14 @@ namespace isnd.tests
|
|||||||
[CollectionDefinition("Web server collection")]
|
[CollectionDefinition("Web server collection")]
|
||||||
public class WebServerFixture : IDisposable
|
public class WebServerFixture : IDisposable
|
||||||
{
|
{
|
||||||
public IWebHost Host { get; private set;}
|
|
||||||
public List<string> Addresses { get; private set; } = new List<string>();
|
public List<string> Addresses { get; private set; } = new List<string>();
|
||||||
public Microsoft.Extensions.Logging.ILogger Logger { get; internal set; }
|
public Microsoft.Extensions.Logging.ILogger Logger { get; internal set; }
|
||||||
|
|
||||||
private SiteSettings siteSettings;
|
private SiteSettings siteSettings;
|
||||||
|
|
||||||
|
public IConfigurationRoot Configuration { get; private set; }
|
||||||
|
|
||||||
|
private WebApplication app;
|
||||||
|
|
||||||
public string TestingUserName { get; private set; }
|
public string TestingUserName { get; private set; }
|
||||||
public string ProtectedTestingApiKey { get; internal set; }
|
public string ProtectedTestingApiKey { get; internal set; }
|
||||||
@ -38,34 +43,41 @@ namespace isnd.tests
|
|||||||
|
|
||||||
public WebServerFixture()
|
public WebServerFixture()
|
||||||
{
|
{
|
||||||
SetupHost();
|
SetupHost().Wait();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Dispose()
|
public void Dispose()
|
||||||
{
|
{
|
||||||
Host.StopAsync().Wait();
|
if (app!=null)
|
||||||
Host.Dispose();
|
app.StopAsync().Wait();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SetupHost()
|
public async Task SetupHost()
|
||||||
{
|
{
|
||||||
var builder = WebHost.CreateDefaultBuilder(new string[0]);
|
var builder = WebApplication.CreateBuilder();
|
||||||
|
|
||||||
|
Configuration = builder.Configuration
|
||||||
|
.AddJsonFile("appsettings.json")
|
||||||
|
.AddJsonFile($"appsettings.{builder.Environment.EnvironmentName}.json", optional: true)
|
||||||
|
.AddEnvironmentVariables()
|
||||||
|
.Build();
|
||||||
|
|
||||||
// .UseContentRoot("../../../../../src/isnd")
|
this.app = builder.ConfigureWebAppServices();
|
||||||
builder.UseStartup(typeof(Startup))
|
using (var migrationScope = app.Services.CreateScope())
|
||||||
.ConfigureAppConfiguration((builderContext, config) =>
|
|
||||||
{
|
{
|
||||||
config.AddJsonFile("appsettings.json", true);
|
var db = migrationScope.ServiceProvider.GetRequiredService<ApplicationDbContext>();
|
||||||
config.AddJsonFile("appsettings.Development.json", false);
|
await db.Database.MigrateAsync();
|
||||||
});
|
}
|
||||||
|
await app.ConfigurePipeline();
|
||||||
|
app.UseSession();
|
||||||
|
await app.StartAsync();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Host = builder.Build();
|
var logFactory = app.Services.GetRequiredService<ILoggerFactory>();
|
||||||
|
|
||||||
var logFactory = Host.Services.GetRequiredService<ILoggerFactory>();
|
|
||||||
Logger = logFactory.CreateLogger<WebServerFixture>();
|
Logger = logFactory.CreateLogger<WebServerFixture>();
|
||||||
|
|
||||||
Host.Start(); //Starts listening on the configured addresses.
|
var server = app.Services.GetRequiredService<IServer>();
|
||||||
var server = Host.Services.GetRequiredService<IServer>();
|
|
||||||
|
|
||||||
var addressFeatures = server.Features.Get<IServerAddressesFeature>();
|
var addressFeatures = server.Features.Get<IServerAddressesFeature>();
|
||||||
|
|
||||||
@ -73,12 +85,13 @@ namespace isnd.tests
|
|||||||
{
|
{
|
||||||
Addresses.Add(address);
|
Addresses.Add(address);
|
||||||
}
|
}
|
||||||
SiteSettings = Host.Services.GetRequiredService<IOptions<SiteSettings>>().Value;
|
SiteSettings = app.Services.GetRequiredService<IOptions<SiteSettings>>().Value;
|
||||||
|
|
||||||
using IServiceScope scope = Host.Services.CreateScope();
|
using IServiceScope scope = app.Services.CreateScope();
|
||||||
ApplicationDbContext dbContext =
|
ApplicationDbContext dbContext =
|
||||||
scope.ServiceProvider.GetRequiredService<ApplicationDbContext>();
|
scope.ServiceProvider.GetRequiredService<ApplicationDbContext>();
|
||||||
|
//dbContext.Database.EnsureCreated();
|
||||||
|
dbContext.Database.Migrate();
|
||||||
|
|
||||||
TestingUserName = "Tester";
|
TestingUserName = "Tester";
|
||||||
TestingUser = dbContext.Users.FirstOrDefault(u => u.UserName == TestingUserName);
|
TestingUser = dbContext.Users.FirstOrDefault(u => u.UserName == TestingUserName);
|
||||||
@ -93,7 +106,7 @@ namespace isnd.tests
|
|||||||
{
|
{
|
||||||
if (TestingUser == null)
|
if (TestingUser == null)
|
||||||
{
|
{
|
||||||
using IServiceScope scope = Host.Services.CreateScope();
|
using IServiceScope scope = app.Services.CreateScope();
|
||||||
|
|
||||||
var userManager =
|
var userManager =
|
||||||
scope.ServiceProvider.GetRequiredService<UserManager<ApplicationUser>>();
|
scope.ServiceProvider.GetRequiredService<UserManager<ApplicationUser>>();
|
||||||
@ -114,19 +127,6 @@ namespace isnd.tests
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
internal void DropTestDb()
|
|
||||||
{
|
|
||||||
throw new NotImplementedException();
|
|
||||||
}
|
|
||||||
|
|
||||||
internal bool EnsureTestDb()
|
|
||||||
{
|
|
||||||
throw new NotImplementedException();
|
|
||||||
}
|
|
||||||
|
|
||||||
internal int UpgradeDb()
|
|
||||||
{
|
|
||||||
throw new NotImplementedException();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -41,9 +41,8 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"ConnectionStrings": {
|
"ConnectionStrings": {
|
||||||
"Default": "Server=lame-NpgsqlHostName;Port=5432;Database=lame-DataBase;Username=lame-Username;Password=lame-dbPassword;",
|
"DefaultConnection": "Server=lame-NpgsqlHostName;Port=5432;Database=lame-DataBase;Username=lame-Username;Password=lame-dbPassword;",
|
||||||
"DatabaseCtor": "Server=lame-NpgsqlHostName;Port=5432;Database=lame-ctor-DataBase;Username=lame-ctor-Username;Password=lame-ctordbPassword;"
|
},
|
||||||
},
|
|
||||||
"DataProtection": {
|
"DataProtection": {
|
||||||
"Keys": {
|
"Keys": {
|
||||||
"Dir": "DataProtection-Keys"
|
"Dir": "DataProtection-Keys"
|
||||||
|
@ -1,26 +1,32 @@
|
|||||||
<Project Sdk="Microsoft.NET.Sdk">
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<TargetFramework>net9.0</TargetFramework>
|
<TargetFramework>net9.0</TargetFramework>
|
||||||
<ImplicitUsings>enable</ImplicitUsings>
|
<ImplicitUsings>enable</ImplicitUsings>
|
||||||
<Nullable>enable</Nullable>
|
<Nullable>enable</Nullable>
|
||||||
|
<IsPackable>false</IsPackable>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="Microsoft.AspNetCore.Hosting" Version="2.3.0" />
|
<PackageReference Include="coverlet.collector" />
|
||||||
<PackageReference Include="Microsoft.Extensions.Caching.Memory" Version="9.0.7" />
|
<PackageReference Include="Microsoft.EntityFrameworkCore.Design">
|
||||||
<PackageReference Include="Microsoft.Extensions.Options" Version="9.0.7" />
|
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||||
<PackageReference Include="Microsoft.Extensions.Options.ConfigurationExtensions" Version="9.0.7" />
|
<PrivateAssets>all</PrivateAssets>
|
||||||
<PackageReference Include="Microsoft.Playwright" Version="1.53.0" />
|
</PackageReference>
|
||||||
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
|
<PackageReference Include="Microsoft.NET.Test.Sdk" />
|
||||||
<PackageReference Include="xunit" Version="2.9.3" />
|
<PackageReference Include="xunit" />
|
||||||
|
<PackageReference Include="xunit.runner.visualstudio" />
|
||||||
|
<PackageReference Include="Microsoft.AspNetCore.Hosting" />
|
||||||
|
<PackageReference Include="Microsoft.Extensions.Caching.Memory" />
|
||||||
|
<PackageReference Include="Microsoft.Extensions.Options" />
|
||||||
|
<PackageReference Include="Microsoft.Extensions.Options.ConfigurationExtensions" />
|
||||||
|
<PackageReference Include="Microsoft.Playwright" />
|
||||||
|
<PackageReference Include="Newtonsoft.Json" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ProjectReference Include="..\..\src\Yavsc\Yavsc.csproj" />
|
<ProjectReference Include="..\..\src\Yavsc\Yavsc.csproj" />
|
||||||
<ProjectReference Include="..\..\src\Yavsc.Abstract\Yavsc.Abstract.csproj" />
|
<ProjectReference Include="..\..\src\Yavsc.Abstract\Yavsc.Abstract.csproj" />
|
||||||
<ProjectReference Include="..\..\src\Yavsc.Server\Yavsc.Server.csproj" />
|
<ProjectReference Include="..\..\src\Yavsc.Server\Yavsc.Server.csproj" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
</Project>
|
<Using Include="Xunit" />
|
||||||
|
</ItemGroup>
|
||||||
|
</Project>
|
@ -1,4 +1,4 @@
|
|||||||
|
|
||||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||||
# Visual Studio Version 17
|
# Visual Studio Version 17
|
||||||
VisualStudioVersion = 17.0.31903.59
|
VisualStudioVersion = 17.0.31903.59
|
||||||
@ -21,6 +21,11 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "test", "test", "{27336229-4
|
|||||||
EndProject
|
EndProject
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "yavscTests", "test\yavscTests\yavscTests.csproj", "{D565C5C8-19A6-4134-A18B-FE71986FBA35}"
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "yavscTests", "test\yavscTests\yavscTests.csproj", "{D565C5C8-19A6-4134-A18B-FE71986FBA35}"
|
||||||
EndProject
|
EndProject
|
||||||
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution items", "Solution items", "{9EB76B06-CA8E-4211-A16D-6646ED584311}"
|
||||||
|
ProjectSection(SolutionItems) = preProject
|
||||||
|
Directory.Packages.props = Directory.Packages.props
|
||||||
|
EndProjectSection
|
||||||
|
EndProject
|
||||||
Global
|
Global
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
Debug|Any CPU = Debug|Any CPU
|
Debug|Any CPU = Debug|Any CPU
|
||||||
|
Reference in New Issue
Block a user