From cef0f73dbb2b0c159a98958b63fa3375d9a13fdd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Zieli=C5=84ski?= Date: Fri, 21 Nov 2025 14:09:06 +0100 Subject: [PATCH] some cleanup --- .dockerignore | 63 ---- .git-crypt/.gitattributes | 4 - ...054453396157A650BCEF41413B052D24F5B418.gpg | Bin 736 -> 0 bytes .gitattributes | 3 - BimAI.API/BimAI.API.csproj | 58 ++-- BimAI.API/BimAI.API.http | 12 +- BimAI.API/Program.cs | 288 +++++++++--------- BimAI.API/Properties/launchSettings.json | 26 +- BimAI.API/appsettings.Development.json | Bin 1191 -> 698 bytes BimAI.API/appsettings.Production.json | 63 ++-- BimAI.API/appsettings.json | 21 ++ BimAI.Application/BimAI.Application.csproj | 26 +- BimAI.Domain/BimAI.Domain.csproj | 18 +- .../BimAI.Infrastructure.csproj | 46 +-- BimAI.UI.Mobile/appsettings.Development.json | Bin 139 -> 117 bytes BimAI.UI.Shared/BimAI.UI.Shared.csproj | 60 ++-- BimAI.UI.Shared/_Imports.razor | 18 +- BimAI.UI.Web/appsettings.Development.json | Bin 319 -> 181 bytes BimAI.UI.Web/appsettings.Production.json | 17 +- BimAI.UI.Web/appsettings.json | 9 + BimAI.sln | 116 +++---- docker-compose.yml | 44 ++- 22 files changed, 412 insertions(+), 480 deletions(-) delete mode 100644 .dockerignore delete mode 100644 .git-crypt/.gitattributes delete mode 100644 .git-crypt/keys/default/0/A5054453396157A650BCEF41413B052D24F5B418.gpg delete mode 100644 .gitattributes create mode 100644 BimAI.API/appsettings.json create mode 100644 BimAI.UI.Web/appsettings.json diff --git a/.dockerignore b/.dockerignore deleted file mode 100644 index ab0818f..0000000 --- a/.dockerignore +++ /dev/null @@ -1,63 +0,0 @@ -# Build artifacts -**/bin/ -**/obj/ -**/out/ -**/publish/ - -# IDE and editor files -**/.vs/ -**/.vscode/ -**/.idea/ -**/.DS_Store -**/*.user -**/*.suo -**/*.userosscache -**/*.sln.docstates -**/*.userprefs -**/.fleet/ - -# Database files -**/*.dbmdl -**/*.jfm -**/*.mdf -**/*.ldf - -# Temp and swap files -**/*.swp -**/*.swo -**/*~ -**/*.tmp -**/*.temp - -# Logs -**/*.log - -# Node modules (if any frontend dependencies) -**/node_modules/ - -# Git files -.git/ -.gitignore -.gitattributes -.git-crypt/ - -# Documentation -README.md -**/*.md -LICENSE - -# Docker files -docker-compose.yml -docker-compose.*.yml -**/Dockerfile -**/.dockerignore - -# Development databases -docker/ - -# Test results -**/TestResults/ -**/*.trx - -# macOS -.DS_Store \ No newline at end of file diff --git a/.git-crypt/.gitattributes b/.git-crypt/.gitattributes deleted file mode 100644 index 665b10e..0000000 --- a/.git-crypt/.gitattributes +++ /dev/null @@ -1,4 +0,0 @@ -# Do not edit this file. To specify the files to encrypt, create your own -# .gitattributes file in the directory where your files are. -* !filter !diff -*.gpg binary diff --git a/.git-crypt/keys/default/0/A5054453396157A650BCEF41413B052D24F5B418.gpg b/.git-crypt/keys/default/0/A5054453396157A650BCEF41413B052D24F5B418.gpg deleted file mode 100644 index 5868b809fc248303db28d7af6e1f10a43ea11961..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 736 zcmV<60w4W_0t^F@x{~D9=|fWi5CD#Y09ULvY4IVyOd&g98XFM)4R$Q~MY-kRt4)7IFhokM(_}JOZ zp38M`(T6C*=GKiEbD*C_S5=RaI#Oz)LDk>YLPS+9z`R;l$){-rs;6|?gB z41+iqwYDiB)hmH#-L^DC3%c`l!eh~K_I5ZujN!ZmbA-LjrV$$5aHjLBse74%U`3CF zhuBKP8@v1|c%0*V|CVwMfrQz=0IqHdC_aKnen}n&?75$Qn0`U2K^h25!r--aLDx6y z)Dtls$J?CGxaH3s$E@q8zP|cza&VjJ<7c^cod-NhK(4^?BM&C=K>+J9_1YrL9Q7Wk zvH~y^5JPbV+d=WC9_E}t69%ES-ta8yg|MKDp|&g5U%vjupkP;jl6v8t<^TeWP&T8U zjy<~Gvfz`}S6+)PM5h^0mnnk5Gt*_7$V2ezU`Z!9`Z#46D~*MoS2EflJzjQXj-j}~ z9KEK<<;&Srf<6?SyQZ#>4;baC8(lsT%qzurYtbbo0_!Gtd4~i%Uu2eugACF`+KM4? zJ4Y{6V7k*CJ^L7~!^PCV4gm=Q5b2@f>72W@uiy3{G-z%v|H`?O&h2?bJ!}cCTEMlE z-ccZ%$Ylnd78@elx^Uz!>C&C#d)zU7S;OKm=fxaAt;x0#Cf;tF7X^H>&!Z)nb7a61 z>e$dufAF^nO#1S}=flmJx5fHWQ|Ln#fYjh}3cWZj%_aedSdKj#Zo!58{l9MRmKO^0 z2cg~r<6b)19&5I{sCvGnYr$OMzG-7Bg(9ZGQ&-7s|LRqpQ96Yr1yA~yyM<823aYWa Sp0vutFcM`wxVa*rJ - - - net8.0 - enable - enable - - - - - - - - - - runtime; build; native; contentfiles; analyzers; buildtransitive - all - - - - - - - - - - - - + + + + net8.0 + enable + enable + + + + + + + + + + runtime; build; native; contentfiles; analyzers; buildtransitive + all + + + + + + + + + + + + diff --git a/BimAI.API/BimAI.API.http b/BimAI.API/BimAI.API.http index 79ef21c..b08c02d 100644 --- a/BimAI.API/BimAI.API.http +++ b/BimAI.API/BimAI.API.http @@ -1,6 +1,6 @@ -@BimAI.API_HostAddress = http://localhost:5090 - -GET {{BimAI.API_HostAddress}}/weatherforecast/ -Accept: application/json - -### +@BimAI.API_HostAddress = http://localhost:5090 + +GET {{BimAI.API_HostAddress}}/weatherforecast/ +Accept: application/json + +### diff --git a/BimAI.API/Program.cs b/BimAI.API/Program.cs index b3c729f..1ae4034 100644 --- a/BimAI.API/Program.cs +++ b/BimAI.API/Program.cs @@ -1,145 +1,145 @@ -using System.Text; -using BimAI.API.Services; -using BimAI.Infrastructure.Data; -using BimAI.Infrastructure.Jobs; -using BimAI.Infrastructure.Sync; -using Hangfire; -using Hangfire.SqlServer; -using Microsoft.EntityFrameworkCore; -using Microsoft.AspNetCore.Authentication.JwtBearer; -using Microsoft.IdentityModel.Tokens; - - -var builder = WebApplication.CreateBuilder(args); - -var connectionString = builder.Configuration.GetConnectionString("DefaultConnection"); -builder.Services.AddDbContext(options => options.UseSqlServer(connectionString)); -builder.Services.AddScoped(); - -builder.Services.AddHttpClient(); -builder.Services.AddControllers(); -builder.Services.AddEndpointsApiExplorer(); -builder.Services.AddSwaggerGen(); - -// Start Hangfire section -builder.Services.AddHangfire(configuration => configuration - .SetDataCompatibilityLevel(CompatibilityLevel.Version_180) - .UseSimpleAssemblyNameTypeSerializer() - .UseRecommendedSerializerSettings() - .UseSqlServerStorage(builder.Configuration.GetConnectionString("HangfireConnection"), - new SqlServerStorageOptions - { - CommandBatchMaxTimeout = TimeSpan.FromMinutes(5), - SlidingInvisibilityTimeout = TimeSpan.FromMinutes(5), - QueuePollInterval = TimeSpan.Zero, - UseRecommendedIsolationLevel = true, - DisableGlobalLocks = true, - SchemaName = "Hangfire" - } - ) -); -builder.Services.AddHangfireServer(options => -{ - options.ServerName = builder.Configuration["Hangfire:ServerName"]; - options.WorkerCount = builder.Configuration.GetValue("Hangfire:WorkerCount", 5); -}); -// End Hangfire section -// Start auth section -var jwtSettings = builder.Configuration.GetSection("JwtSettings"); -var secretKey = jwtSettings["SecretKey"]; -var issuer = jwtSettings["Issuer"]; -var audience = jwtSettings["Audience"]; - -builder.Services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme) - .AddJwtBearer(options => - { - options.TokenValidationParameters = new TokenValidationParameters - { - ValidateIssuer = true, - ValidateAudience = true, - ValidateLifetime = true, - ValidateIssuerSigningKey = true, - ValidIssuer = issuer, - ValidAudience = audience, - IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(secretKey)), - ClockSkew = TimeSpan.Zero, - }; - }); -builder.Services.AddAuthentication(); - -builder.Services.AddScoped(); -builder.Services.AddScoped(); - -builder.Services.AddCors(options => -{ - options.AddPolicy("AllowAll", policy => - { - policy.AllowAnyOrigin() - .AllowAnyMethod() - .AllowAnyHeader(); - }); -}); -// End auth section - -var app = builder.Build(); - -// Auto-apply migrations on startup -using (var scope = app.Services.CreateScope()) -{ - var db = scope.ServiceProvider.GetRequiredService(); - - try - { - var pending = await db.Database.GetPendingMigrationsAsync(); - if (pending.Any()) - { - app.Logger.LogWarning("Applying {Count} pending migrations: {List}", - pending.Count(), string.Join(", ", pending)); - await db.Database.MigrateAsync(); - app.Logger.LogInformation("Migrations applied successfully."); - } - else - { - app.Logger.LogInformation("No pending migrations."); - } - } - catch (Exception ex) - { - app.Logger.LogCritical(ex, "Migration failed - application will not start."); - throw; // stop startup - } -} - -if (app.Environment.IsDevelopment()) -{ - app.UseSwagger(); - app.UseSwaggerUI(); -} - -app.UseHttpsRedirection(); -app.UseCors("AllowAll"); -app.UseHangfireDashboard(builder.Configuration["Hangfire:DashboardPath"] ?? "/hangfire", new DashboardOptions -{ - AsyncAuthorization = new[] { new HangfireAuthorizationFilter() }, - DashboardTitle = "BimAI - Job Dashboard" -}); -app.UseAuthorization(); -app.UseAuthorization(); -app.MapControllers(); - -app.MapGet("/health", () => Results.Ok(new { status = "OK", timestamp = DateTime.UtcNow })) - .AllowAnonymous(); - -RecurringJob.AddOrUpdate( - "product-sync", - job => job.ExecuteAsync(), - Cron.Daily(2, 0), // Every day at 2:00 AM - new RecurringJobOptions - { - TimeZone = TimeZoneInfo.Local, - MisfireHandling = app.Environment.IsDevelopment() - ? MisfireHandlingMode.Relaxed - : MisfireHandlingMode.Strict - }); - +using System.Text; +using BimAI.API.Services; +using BimAI.Infrastructure.Data; +using BimAI.Infrastructure.Jobs; +using BimAI.Infrastructure.Sync; +using Hangfire; +using Hangfire.SqlServer; +using Microsoft.EntityFrameworkCore; +using Microsoft.AspNetCore.Authentication.JwtBearer; +using Microsoft.IdentityModel.Tokens; + + +var builder = WebApplication.CreateBuilder(args); + +var connectionString = builder.Configuration.GetConnectionString("DefaultConnection"); +builder.Services.AddDbContext(options => options.UseSqlServer(connectionString)); +builder.Services.AddScoped(); + +builder.Services.AddHttpClient(); +builder.Services.AddControllers(); +builder.Services.AddEndpointsApiExplorer(); +builder.Services.AddSwaggerGen(); + +// Start Hangfire section +builder.Services.AddHangfire(configuration => configuration + .SetDataCompatibilityLevel(CompatibilityLevel.Version_180) + .UseSimpleAssemblyNameTypeSerializer() + .UseRecommendedSerializerSettings() + .UseSqlServerStorage(builder.Configuration.GetConnectionString("HangfireConnection"), + new SqlServerStorageOptions + { + CommandBatchMaxTimeout = TimeSpan.FromMinutes(5), + SlidingInvisibilityTimeout = TimeSpan.FromMinutes(5), + QueuePollInterval = TimeSpan.Zero, + UseRecommendedIsolationLevel = true, + DisableGlobalLocks = true, + SchemaName = "Hangfire" + } + ) +); +builder.Services.AddHangfireServer(options => +{ + options.ServerName = builder.Configuration["Hangfire:ServerName"]; + options.WorkerCount = builder.Configuration.GetValue("Hangfire:WorkerCount", 5); +}); +// End Hangfire section +// Start auth section +var jwtSettings = builder.Configuration.GetSection("JwtSettings"); +var secretKey = jwtSettings["SecretKey"]; +var issuer = jwtSettings["Issuer"]; +var audience = jwtSettings["Audience"]; + +builder.Services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme) + .AddJwtBearer(options => + { + options.TokenValidationParameters = new TokenValidationParameters + { + ValidateIssuer = true, + ValidateAudience = true, + ValidateLifetime = true, + ValidateIssuerSigningKey = true, + ValidIssuer = issuer, + ValidAudience = audience, + IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(secretKey)), + ClockSkew = TimeSpan.Zero, + }; + }); +builder.Services.AddAuthentication(); + +builder.Services.AddScoped(); +builder.Services.AddScoped(); + +builder.Services.AddCors(options => +{ + options.AddPolicy("AllowAll", policy => + { + policy.AllowAnyOrigin() + .AllowAnyMethod() + .AllowAnyHeader(); + }); +}); +// End auth section + +var app = builder.Build(); + +// Auto-apply migrations on startup +using (var scope = app.Services.CreateScope()) +{ + var db = scope.ServiceProvider.GetRequiredService(); + + try + { + var pending = await db.Database.GetPendingMigrationsAsync(); + if (pending.Any()) + { + app.Logger.LogWarning("Applying {Count} pending migrations: {List}", + pending.Count(), string.Join(", ", pending)); + await db.Database.MigrateAsync(); + app.Logger.LogInformation("Migrations applied successfully."); + } + else + { + app.Logger.LogInformation("No pending migrations."); + } + } + catch (Exception ex) + { + app.Logger.LogCritical(ex, "Migration failed - application will not start."); + throw; // stop startup + } +} + +if (app.Environment.IsDevelopment()) +{ + app.UseSwagger(); + app.UseSwaggerUI(); +} + +app.UseHttpsRedirection(); +app.UseCors("AllowAll"); +app.UseHangfireDashboard(builder.Configuration["Hangfire:DashboardPath"] ?? "/hangfire", new DashboardOptions +{ + AsyncAuthorization = new[] { new HangfireAuthorizationFilter() }, + DashboardTitle = "BimAI - Job Dashboard" +}); +app.UseAuthorization(); +app.UseAuthorization(); +app.MapControllers(); + +app.MapGet("/health", () => Results.Ok(new { status = "OK", timestamp = DateTime.UtcNow })) + .AllowAnonymous(); + +RecurringJob.AddOrUpdate( + "product-sync", + job => job.ExecuteAsync(), + Cron.Daily(2, 0), // Every day at 2:00 AM + new RecurringJobOptions + { + TimeZone = TimeZoneInfo.Local, + MisfireHandling = app.Environment.IsDevelopment() + ? MisfireHandlingMode.Relaxed + : MisfireHandlingMode.Strict + }); + app.Run(); \ No newline at end of file diff --git a/BimAI.API/Properties/launchSettings.json b/BimAI.API/Properties/launchSettings.json index 59e80da..6fe39d5 100644 --- a/BimAI.API/Properties/launchSettings.json +++ b/BimAI.API/Properties/launchSettings.json @@ -1,14 +1,14 @@ -{ - "profiles": { - "dev": { - "commandName": "Project", - "dotnetRunMessages": true, - "launchBrowser": true, - "launchUrl": "swagger", - "applicationUrl": "http://localhost:7142;http://0.0.0.0:7142", - "environmentVariables": { - "ASPNETCORE_ENVIRONMENT": "Development" - } - } - } +{ + "profiles": { + "dev": { + "commandName": "Project", + "dotnetRunMessages": true, + "launchBrowser": true, + "launchUrl": "swagger", + "applicationUrl": "http://localhost:7142;http://0.0.0.0:7142", + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + } + } + } } \ No newline at end of file diff --git a/BimAI.API/appsettings.Development.json b/BimAI.API/appsettings.Development.json index e288f74dabcc6038cc8ec5d086e4a9354e3e653c..1183cd34a9ef8db067447bf30d8cffb84be0bbb5 100644 GIT binary patch literal 698 zcmd5)%Wm5+5WE}kKR7x^h8|R9RnWna)7DK=6mfDkR`gP0A&~;Pau5Xh_fmG+2>F6s zXUTc&?8|(%Sa_vY3OPxwc4VZgt@m~DGEUrVg93(@-k-Rcw?lJ8Q?!~x+h|LdA&cXD z0|XUVEGpT7%pWb9#r9BG$bW;iPud)cE7`5L`wbrVBeai#h+X6lX0UXoEYXk@k^^Dk zV9c)-H_ts4-=MYVUA~$60jd_#;OB5PntDB1^RAP9d4D%q-@2DK_&n|`#Uy|gB)$kj z;WJTjf5pSfPcjh;&QexYi8rD8u65nwdZ1=PSGE!rZ4V=17$j*FvpCG6EcQ*9YJRjV z;EkkO|6z6&DFZ^Y8iWbw2wGT#?#2 literal 1191 zcmV;Y1X%k3M@dveQdv+`0PaUSgJ_$dGYp-kMr{f0?i{7e7Z1Ik;@}L4639YJd#=1# z{dKRK)F1zHL`b_iottpeh+TDgX(fDgg*9$45o76Jn*5?f{+nKn^Tqg?rZ#PmCk4Cd z_t(obb3Ylz$QX(n{i}}+@&f3_3soO%#J%HL?J5E*fT$!hY6~^xO#UdP;sM5BFiz@d;;}yJQUq> zFoV3-9gS9nO%IJp2(8_%i%|zSn|AS>GO=(_aa4+8*(42t8J1!!w7Sw8eZ_)^=dAbg zys)|dyc)HqjleV{4F_%4Sm&l|8*L#t8(BV2Oeo}r1qi-$pJ1#Ty6<3c48fyO~fR5DxW~Kc%3qQZQ=?9iSSJcl{11zZGRCsmnBOk*@ zbb{QxiVGE}Jqv)0E-yI~9b$rz)JpOzq%4|6C-_fGsddie<*ps zH;_)^KdmobUVtZK9-#yJ!Df@_0tO@jD8-Sul@ArciQ(9LDc*!vEuZPh%l}dcr#*CS zzY;hxk-}FRG*{!YInc-EA*Q%A63~nlaqD**vh+jG3jr{M!Rg2f6|fD@L&na$MQ~H` zWgVq3F2*KA({Q8i-LF|sJzj1ukxY|?nE9wn&It-err*8zvj#Ohh}J#*kRn?(49S!w zThf6yb%0fI4$q@aqj^Lt;j#0r416MD&|t{N@I~Ll>>yN^NB4U}1kOwE7(gUk#a(=Q6%C{XoEs ztH{LVh0qCuKksO|@r3~3{1N#$XhhC>^l-6%I0!Pue8rR8*7Plpw?)_M(k2iejXf?e zd60D0Mt}C$H@*Yxgw|U~$HaU(^PDQjGwpoA1DY)s84sezo%CG0=l{TI96fMPWvH7k^lgp&0f#RDXSOytt; zicM8JR9S%CamFJ^O8}h)m-}QR;oYL_0wq~W;7lCGfbU%jeTQ`qz{{G=GR9Yy&#Zip z4OX+qk3MRYWcfRYY8++Vz5DEZNeBEh36=0bA@NjQ+UtBBeu%8msv08#S-J))(&&KT zn{^Gg$zL#x`_R&phjEfI8uM!B8;?+xmUrOd@7ygxjkJp3^e1ILBLk5l?7f;_2IE)T z9@bY;|MwbLmC|<@)84lOMHt`M!X4aKPfJ_05c|9NA@H(12bOT@1X{YWC9FuZ6AOE^ F6WHTyN09&k diff --git a/BimAI.API/appsettings.Production.json b/BimAI.API/appsettings.Production.json index 25a1fd0..d5ca3f4 100644 --- a/BimAI.API/appsettings.Production.json +++ b/BimAI.API/appsettings.Production.json @@ -1,38 +1,25 @@ -{ - "Logging": { - "LogLevel": { - "Default": "Information", - "Microsoft.AspNetCore": "Warning", - "Microsoft.EntityFrameworkCore": "Warning" - } - }, - "AllowedHosts": "*", - "ConnectionStrings": { - "DefaultConnection": "#{db-connection-string}#", - "HangfireConnection": "#{hangfire-connection-string}#" - }, - "E5_CRM": { - "ApiKey": "#{e5-crm-api-key}#" - }, - "GoogleAuth": { - "ClientId": "#{google-auth-client-id}#" - }, - "JwtSettings": { - "SecretKey": "#{jwt-secret-key}#", - "Issuer": "#{jwt-issuer}#", - "Audience": "#{jwt-audience}#", - "ExpiryDays": 7 - }, - "Hangfire": { - "ServerName": "#{hangfire-server-name}#", - "WorkerCount": 5, - "DashboardPath": "/hangfire" - }, - "Kestrel": { - "Endpoints": { - "Http": { - "Url": "http://0.0.0.0:7142" - } - } - } -} \ No newline at end of file +{ + "ConnectionStrings": { + "DefaultConnection": "", + "HangfireConnection": "" + }, + "E5_CRM": { + "ApiKey": "" + }, + "GoogleAuth": { + "ClientId": "" + }, + "JwtSettings": { + "SecretKey": "" + }, + "Hangfire": { + "ServerName": "BimAI-Production" + }, + "Kestrel": { + "Endpoints": { + "Http": { + "Url": "http://0.0.0.0:7142" + } + } + } +} diff --git a/BimAI.API/appsettings.json b/BimAI.API/appsettings.json new file mode 100644 index 0000000..0867fcf --- /dev/null +++ b/BimAI.API/appsettings.json @@ -0,0 +1,21 @@ +{ + "AllowedHosts": "*", + "JwtSettings": { + "Issuer": "BimAI.API", + "Audience": "BimAI.Clients", + "ExpiryDays": 7 + }, + "Hangfire": { + "WorkerCount": 5, + "DashboardPath": "/hangfire" + }, + "Logging": { + "LogLevel": { + "Default": "Information", + "Microsoft.AspNetCore": "Warning", + "Microsoft.EntityFrameworkCore": "Warning", + "Microsoft.EntityFrameworkCore.Database.Command": "Warning", + "Microsoft.EntityFrameworkCore.Infrastructure": "Warning" + } + } +} diff --git a/BimAI.Application/BimAI.Application.csproj b/BimAI.Application/BimAI.Application.csproj index e16c50a..cc5734f 100644 --- a/BimAI.Application/BimAI.Application.csproj +++ b/BimAI.Application/BimAI.Application.csproj @@ -1,13 +1,13 @@ - - - - - - - - net8.0 - enable - enable - - - + + + + + + + + net8.0 + enable + enable + + + diff --git a/BimAI.Domain/BimAI.Domain.csproj b/BimAI.Domain/BimAI.Domain.csproj index fa71b7a..bb23fb7 100644 --- a/BimAI.Domain/BimAI.Domain.csproj +++ b/BimAI.Domain/BimAI.Domain.csproj @@ -1,9 +1,9 @@ - - - - net8.0 - enable - enable - - - + + + + net8.0 + enable + enable + + + diff --git a/BimAI.Infrastructure/BimAI.Infrastructure.csproj b/BimAI.Infrastructure/BimAI.Infrastructure.csproj index 5b7cb5e..2953e1d 100644 --- a/BimAI.Infrastructure/BimAI.Infrastructure.csproj +++ b/BimAI.Infrastructure/BimAI.Infrastructure.csproj @@ -1,23 +1,23 @@ - - - - - - - - - - - - runtime; build; native; contentfiles; analyzers; buildtransitive - all - - - - - net8.0 - enable - enable - - - + + + + + + + + + + + + runtime; build; native; contentfiles; analyzers; buildtransitive + all + + + + + net8.0 + enable + enable + + + diff --git a/BimAI.UI.Mobile/appsettings.Development.json b/BimAI.UI.Mobile/appsettings.Development.json index 52f541592b20225d2304cb2e24f125bb0eb77611..550f264b6792f15c4708c39c8f99af663316e1cc 100644 GIT binary patch literal 117 zcmW;Eu?~YE5CG8KuORFtMM#gh83)tPAV9DMJ)_)Y{P$kEzTsV+5OPM$HI393If#pe zZK|KNwRdEZ`e^`qFwQy)kEUzy=@rS?5<~Ipflg;CwP*-mzbL=&r^^46&U6Ia8doad JD*3*<`v>34B!U0{ literal 139 zcmV;60CfKVM@dveQdv+`0DgcSQUD0@^Q=az?dw!%JGqclnx}24U6$HCsdZf1X{0a_ zhmG)N7U;beb21p9xFJ;x0nyRJw1N4!k4@;^d%y5Fp(_oWw}c#tP%y_RL%uY(U - - - net8.0 - enable - enable - - - - - - - - - - - - - - - - - - - - - - - - + + + + net8.0 + enable + enable + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/BimAI.UI.Shared/_Imports.razor b/BimAI.UI.Shared/_Imports.razor index 1405344..735b66c 100644 --- a/BimAI.UI.Shared/_Imports.razor +++ b/BimAI.UI.Shared/_Imports.razor @@ -1,12 +1,12 @@ -@using System.Net.Http -@using System.Net.Http.Json -@using Microsoft.AspNetCore.Components.Forms -@using Microsoft.AspNetCore.Components.Routing -@using Microsoft.AspNetCore.Components.Web -@using static Microsoft.AspNetCore.Components.Web.RenderMode -@using Microsoft.AspNetCore.Components.Web.Virtualization -@using Microsoft.JSInterop -@using BimAI.UI.Shared +@using System.Net.Http +@using System.Net.Http.Json +@using Microsoft.AspNetCore.Components.Forms +@using Microsoft.AspNetCore.Components.Routing +@using Microsoft.AspNetCore.Components.Web +@using static Microsoft.AspNetCore.Components.Web.RenderMode +@using Microsoft.AspNetCore.Components.Web.Virtualization +@using Microsoft.JSInterop +@using BimAI.UI.Shared @using MudBlazor@using BimAI.Application.DTOModels @using BimAI.Application.DTOModels.Common @using BimAI.UI.Shared.Components diff --git a/BimAI.UI.Web/appsettings.Development.json b/BimAI.UI.Web/appsettings.Development.json index ee0eac4f786ca087111ef1741f7c2b37f769790d..25829593ec920ba3393902393476552bb2ba95c0 100644 GIT binary patch literal 181 zcmYL?u?~YE6aaU>!Z5cgg0Z^U4o&B#A7GFIhVlqJyBPny=+gC)yIZq7CwBm4<*=Y8 zeZD4=*v%U0@G&JqXw|eet^LSw{yr+g&U9f@|qxZ2;M{|iX x2ymEEg@6x9?d`NL2XCGd(Kr?V&+8cFE7*Oh5q)2l7Q|>ZMC@D2>qF1B><1ZbHV6O! literal 319 zcmV-F0l@wMM@dveQdv+`0JmhT6D()48928n8qkgI9ba+dEgaryR;ws630C}K4ew-Q zF~^MMyKZ1|B)5+cQ0aGg43<4(;9y=2v94%MhXABs0r~VBtL}*5nWabYW0e4Q1Sq^X zB@0U`ftRqh`CxBnq;_TfVY6)s#Zz&bcp6s|HdQC%3oi-Ep^{{1j^LTEQ@CUlhqT#v ztC#)kz2^t!L|)+xYmF!}D?1>-;<#G%txN%eFn|;DtsZtbjH+8|Ni2~!-- + bash -lc " + set -e + for i in {1..30}; do + /opt/mssql-tools18/bin/sqlcmd -S bimai-mssql -U sa -P \"$$MSSQL_SA_PASSWORD\" -C -Q \"SELECT 1\" && break || sleep 2; + done; + /opt/mssql-tools18/bin/sqlcmd -S bimai-mssql -U sa -P \"$$MSSQL_SA_PASSWORD\" -C -Q \"IF NOT EXISTS (SELECT name FROM sys.databases WHERE name = N'bimai') CREATE DATABASE [bimai];\" + " networks: bimai-network: @@ -51,7 +47,3 @@ networks: volumes: mssql-data: name: bimai-mssql-data - mongodb-data: - name: bimai-mongodb-data - mongodb-config: - name: bimai-mongodb-config \ No newline at end of file