diff --git a/Apis/IServerDiscordApi.cs b/DiscordBot.App/Apis/IServerDiscordApi.cs
similarity index 95%
rename from Apis/IServerDiscordApi.cs
rename to DiscordBot.App/Apis/IServerDiscordApi.cs
index a56fb98..6391500 100644
--- a/Apis/IServerDiscordApi.cs
+++ b/DiscordBot.App/Apis/IServerDiscordApi.cs
@@ -1,7 +1,7 @@
-using app.Models;
+using DiscordBot.Models;
using Refit;
-namespace app.Apis;
+namespace DiscordBot.Apis;
public interface IServerDiscordApi
{
diff --git a/Commands/GeneralCommands.cs b/DiscordBot.App/Commands/GeneralCommands.cs
similarity index 99%
rename from Commands/GeneralCommands.cs
rename to DiscordBot.App/Commands/GeneralCommands.cs
index 262d3ef..35478ee 100644
--- a/Commands/GeneralCommands.cs
+++ b/DiscordBot.App/Commands/GeneralCommands.cs
@@ -1,12 +1,12 @@
-using app.Apis;
-using app.Services;
+using DiscordBot.Apis;
+using DiscordBot.Services;
using DSharpPlus.CommandsNext;
using DSharpPlus.CommandsNext.Attributes;
using DSharpPlus.Entities;
using DSharpPlus.SlashCommands;
using Serilog;
-namespace app.Commands;
+namespace DiscordBot.Commands;
public class GeneralCommands : ApplicationCommandModule
{
diff --git a/Commands/RestartCommands.cs b/DiscordBot.App/Commands/RestartCommands.cs
similarity index 97%
rename from Commands/RestartCommands.cs
rename to DiscordBot.App/Commands/RestartCommands.cs
index 810eec1..8aefbc7 100644
--- a/Commands/RestartCommands.cs
+++ b/DiscordBot.App/Commands/RestartCommands.cs
@@ -1,9 +1,9 @@
-using app.Apis;
-using app.Services;
+using DiscordBot.Apis;
+using DiscordBot.Services;
using DSharpPlus.Entities;
using Serilog;
-namespace app.Commands;
+namespace DiscordBot.Commands;
using DSharpPlus.SlashCommands;
public class RestartCommands : ApplicationCommandModule
diff --git a/Controllers/DiscordController.cs b/DiscordBot.App/Controllers/DiscordController.cs
similarity index 97%
rename from Controllers/DiscordController.cs
rename to DiscordBot.App/Controllers/DiscordController.cs
index 0f0cdca..719b74d 100644
--- a/Controllers/DiscordController.cs
+++ b/DiscordBot.App/Controllers/DiscordController.cs
@@ -1,10 +1,10 @@
-using app.Models;
-using app.Services;
+using DiscordBot.Models;
+using DiscordBot.Services;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Serilog;
-namespace app.Controllers;
+namespace DiscordBot.Controllers;
[ApiController]
[Authorize]
diff --git a/Controllers/FeedsController.cs b/DiscordBot.App/Controllers/FeedsController.cs
similarity index 96%
rename from Controllers/FeedsController.cs
rename to DiscordBot.App/Controllers/FeedsController.cs
index a33a94d..055dc86 100644
--- a/Controllers/FeedsController.cs
+++ b/DiscordBot.App/Controllers/FeedsController.cs
@@ -1,9 +1,9 @@
-using app.Services;
+using DiscordBot.Services;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Serilog;
-namespace app.Controllers;
+namespace DiscordBot.Controllers;
[ApiController]
[Authorize]
diff --git a/Controllers/PresenceController.cs b/DiscordBot.App/Controllers/PresenceController.cs
similarity index 91%
rename from Controllers/PresenceController.cs
rename to DiscordBot.App/Controllers/PresenceController.cs
index e3c5eb1..1dffeaa 100644
--- a/Controllers/PresenceController.cs
+++ b/DiscordBot.App/Controllers/PresenceController.cs
@@ -1,10 +1,10 @@
-using app.Services;
+using DiscordBot.Services;
using DSharpPlus.Entities;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Serilog;
-namespace app.Controllers;
+namespace DiscordBot.Controllers;
[ApiController]
[Authorize]
diff --git a/app.csproj b/DiscordBot.App/DiscordBot.App.csproj
similarity index 92%
rename from app.csproj
rename to DiscordBot.App/DiscordBot.App.csproj
index ce6337a..2a05e63 100644
--- a/app.csproj
+++ b/DiscordBot.App/DiscordBot.App.csproj
@@ -26,4 +26,8 @@
+
+
+
+
diff --git a/Dockerfile b/DiscordBot.App/Dockerfile
similarity index 100%
rename from Dockerfile
rename to DiscordBot.App/Dockerfile
diff --git a/Middlewares/BasicAuthenticationHandler.cs b/DiscordBot.App/Middlewares/BasicAuthenticationHandler.cs
similarity index 96%
rename from Middlewares/BasicAuthenticationHandler.cs
rename to DiscordBot.App/Middlewares/BasicAuthenticationHandler.cs
index 995eb91..9d2ca6d 100644
--- a/Middlewares/BasicAuthenticationHandler.cs
+++ b/DiscordBot.App/Middlewares/BasicAuthenticationHandler.cs
@@ -1,11 +1,11 @@
-using app.Models;
+using DiscordBot.Models;
using Microsoft.AspNetCore.Authentication;
using Microsoft.Extensions.Options;
using System.Security.Claims;
using System.Text;
using System.Text.Encodings.Web;
-namespace app.Middlewares;
+namespace DiscordBot.Middlewares;
public class BasicAuthenticationHandler : AuthenticationHandler
{
diff --git a/Program.cs b/DiscordBot.App/Program.cs
similarity index 93%
rename from Program.cs
rename to DiscordBot.App/Program.cs
index 1124f86..edcd618 100644
--- a/Program.cs
+++ b/DiscordBot.App/Program.cs
@@ -1,8 +1,8 @@
-using app.Services;
-using app.Settings;
-using app;
-using app.Models;
-using app.Middlewares;
+using DiscordBot.Services;
+using DiscordBot.Settings;
+using DiscordBot;
+using DiscordBot.Models;
+using DiscordBot.Middlewares;
using Microsoft.AspNetCore.Authentication;
using Serilog;
@@ -17,8 +17,6 @@
var serverApiSettings = new ServerApiSettings();
builder.Configuration.GetSection(nameof(ServerApiSettings)).Bind(serverApiSettings);
-
-
builder.Services.Configure(options => builder.Configuration.GetSection(nameof(DiscordSettings)).Bind(options));
builder.Services.Configure(options => builder.Configuration.GetSection(nameof(ServerApiSettings)).Bind(options));
builder.Services.Configure(options => builder.Configuration.GetSection(nameof(Credentials)).Bind(options));
@@ -31,6 +29,7 @@
builder.Services.AddSingleton();
builder.Services.AddSingleton();
builder.Services.AddHostedService(provider => provider.GetService());
+
builder.Services.AddAuthentication("BasicAuthentication")
.AddScheme("BasicAuthentication", null);
diff --git a/Properties/launchSettings.json b/DiscordBot.App/Properties/launchSettings.json
similarity index 100%
rename from Properties/launchSettings.json
rename to DiscordBot.App/Properties/launchSettings.json
diff --git a/ServiceExtensions.cs b/DiscordBot.App/ServiceExtensions.cs
similarity index 95%
rename from ServiceExtensions.cs
rename to DiscordBot.App/ServiceExtensions.cs
index b6392a4..3e126de 100644
--- a/ServiceExtensions.cs
+++ b/DiscordBot.App/ServiceExtensions.cs
@@ -1,11 +1,11 @@
-using app.Apis;
-using app.Settings;
+using DiscordBot.Apis;
+using DiscordBot.Settings;
using Microsoft.OpenApi.Models;
using Refit;
using System.Net.Http.Headers;
using System.Text;
-namespace app;
+namespace DiscordBot;
public static class ServiceExtensions
{
diff --git a/Services/DiscordService.cs b/DiscordBot.App/Services/DiscordService.cs
similarity index 98%
rename from Services/DiscordService.cs
rename to DiscordBot.App/Services/DiscordService.cs
index cc97a9d..cb5e11f 100644
--- a/Services/DiscordService.cs
+++ b/DiscordBot.App/Services/DiscordService.cs
@@ -1,14 +1,14 @@
-using app.Settings;
+using DiscordBot.Settings;
using DSharpPlus;
using DSharpPlus.CommandsNext;
using DSharpPlus.Entities;
-using app.Commands;
+using DiscordBot.Commands;
using Serilog;
using DSharpPlus.EventArgs;
using Microsoft.Extensions.Options;
using DSharpPlus.SlashCommands;
-namespace app.Services;
+namespace DiscordBot.Services;
public class DiscordService
{
diff --git a/Services/GuildJoinService.cs b/DiscordBot.App/Services/GuildJoinService.cs
similarity index 95%
rename from Services/GuildJoinService.cs
rename to DiscordBot.App/Services/GuildJoinService.cs
index b7ded6e..614d57f 100644
--- a/Services/GuildJoinService.cs
+++ b/DiscordBot.App/Services/GuildJoinService.cs
@@ -1,8 +1,8 @@
-using app.Apis;
+using DiscordBot.Apis;
using DSharpPlus;
using DSharpPlus.EventArgs;
-namespace app.Services;
+namespace DiscordBot.Services;
public class GuildJoinService
{
diff --git a/Services/LoginService.cs b/DiscordBot.App/Services/LoginService.cs
similarity index 97%
rename from Services/LoginService.cs
rename to DiscordBot.App/Services/LoginService.cs
index 026a788..c6b35c8 100644
--- a/Services/LoginService.cs
+++ b/DiscordBot.App/Services/LoginService.cs
@@ -1,8 +1,8 @@
-using app.Apis;
+using DiscordBot.Apis;
using DSharpPlus;
using DSharpPlus.EventArgs;
-namespace app.Services;
+namespace DiscordBot.Services;
public class LoginService
{
diff --git a/Services/RunnerService.cs b/DiscordBot.App/Services/RunnerService.cs
similarity index 96%
rename from Services/RunnerService.cs
rename to DiscordBot.App/Services/RunnerService.cs
index a5bb52d..ab5c845 100644
--- a/Services/RunnerService.cs
+++ b/DiscordBot.App/Services/RunnerService.cs
@@ -1,8 +1,8 @@
-using app.Apis;
+using DiscordBot.Apis;
using DSharpPlus.Entities;
using Serilog;
-namespace app.Services;
+namespace DiscordBot.Services;
public class RunnerService : BackgroundService
{
diff --git a/Settings/DiscordSettings.cs b/DiscordBot.App/Settings/DiscordSettings.cs
similarity index 96%
rename from Settings/DiscordSettings.cs
rename to DiscordBot.App/Settings/DiscordSettings.cs
index 89b1db2..ab8bbb8 100644
--- a/Settings/DiscordSettings.cs
+++ b/DiscordBot.App/Settings/DiscordSettings.cs
@@ -1,4 +1,4 @@
-namespace app.Settings;
+namespace DiscordBot.Settings;
public class Roles
{
diff --git a/Settings/ServerApiSettings.cs b/DiscordBot.App/Settings/ServerApiSettings.cs
similarity index 81%
rename from Settings/ServerApiSettings.cs
rename to DiscordBot.App/Settings/ServerApiSettings.cs
index b6bda3b..f816758 100644
--- a/Settings/ServerApiSettings.cs
+++ b/DiscordBot.App/Settings/ServerApiSettings.cs
@@ -1,4 +1,4 @@
-namespace app.Settings;
+namespace DiscordBot.Settings;
public class ServerApiSettings
{
diff --git a/appsettings.Development.json b/DiscordBot.App/appsettings.Development.json
similarity index 100%
rename from appsettings.Development.json
rename to DiscordBot.App/appsettings.Development.json
diff --git a/appsettings.json b/DiscordBot.App/appsettings.json
similarity index 95%
rename from appsettings.json
rename to DiscordBot.App/appsettings.json
index 9ccba03..0a4060a 100644
--- a/appsettings.json
+++ b/DiscordBot.App/appsettings.json
@@ -11,7 +11,7 @@
"Password": "your_password"
},
"ServerApiSettings": {
- "Url": "http://localhost:9696/api/",
+ "Url": "http://localhost:9697/",
"Username": "admin",
"Password": "test"
},
diff --git a/DiscordBot.Data/DiscordBot.Data.csproj b/DiscordBot.Data/DiscordBot.Data.csproj
new file mode 100644
index 0000000..cfadb03
--- /dev/null
+++ b/DiscordBot.Data/DiscordBot.Data.csproj
@@ -0,0 +1,9 @@
+
+
+
+ net7.0
+ enable
+ enable
+
+
+
diff --git a/Models/Credentials.cs b/DiscordBot.Data/Models/Credentials.cs
similarity index 77%
rename from Models/Credentials.cs
rename to DiscordBot.Data/Models/Credentials.cs
index 0f307b3..860b531 100644
--- a/Models/Credentials.cs
+++ b/DiscordBot.Data/Models/Credentials.cs
@@ -1,4 +1,4 @@
-namespace app.Models;
+namespace DiscordBot.Models;
public class Credentials
{
diff --git a/Models/DiscordUserDto.cs b/DiscordBot.Data/Models/DiscordUserDto.cs
similarity index 86%
rename from Models/DiscordUserDto.cs
rename to DiscordBot.Data/Models/DiscordUserDto.cs
index def9361..45bc155 100644
--- a/Models/DiscordUserDto.cs
+++ b/DiscordBot.Data/Models/DiscordUserDto.cs
@@ -1,4 +1,4 @@
-namespace app.Models;
+namespace DiscordBot.Models;
public class DiscordUserDto
{
diff --git a/Models/ResponsePairDto.cs b/DiscordBot.Data/Models/ResponsePairDto.cs
similarity index 89%
rename from Models/ResponsePairDto.cs
rename to DiscordBot.Data/Models/ResponsePairDto.cs
index aa27934..8ce50bb 100644
--- a/Models/ResponsePairDto.cs
+++ b/DiscordBot.Data/Models/ResponsePairDto.cs
@@ -1,4 +1,4 @@
-namespace app.Models;
+namespace DiscordBot.Models;
public class ResponsePairDto
{
diff --git a/DiscordBot.FakeServer/Controllers/ServerController.cs b/DiscordBot.FakeServer/Controllers/ServerController.cs
new file mode 100644
index 0000000..007f2d4
--- /dev/null
+++ b/DiscordBot.FakeServer/Controllers/ServerController.cs
@@ -0,0 +1,74 @@
+using DiscordBot.Models;
+using Microsoft.AspNetCore.Authorization;
+using Microsoft.AspNetCore.Mvc;
+
+namespace DiscordBot.FakeServer.Controllers;
+
+[ApiController]
+[Authorize]
+[Route("[action]")]
+public class ServerController : ControllerBase
+{
+ [HttpPost("/remove-read-only")]
+ public bool PostRemoveReadOnly(string channel, ulong senderId, string senderName, ulong targetId, string targetName)
+ {
+ return true;
+ }
+
+ [HttpPost("/read-only")]
+ public bool PostReadOnly(string channel, ulong senderId, string senderName, ulong targetId, string targetName, string reason)
+ {
+ return true;
+ }
+
+ [HttpGet("/apps")]
+ public string GetApps()
+ {
+ return "Currently no apps...";
+ }
+
+ [HttpGet("/account-status")]
+ public string GetAccountStatus(ulong id)
+ {
+ return "[]";
+ }
+
+ [HttpPost("/announce")]
+ public void PostAnnouncement(string text)
+ {
+ }
+
+ [HttpPost("/save")]
+ public bool PostSave()
+ {
+ return true;
+ }
+
+ [HttpGet("/ping")]
+ public bool GetPing()
+ {
+ return true;
+ }
+
+ [HttpPost("/kick")]
+ public bool PostKick(string channel, ulong senderId, string senderName, ulong targetId, string targetName, string reason)
+ {
+ return true;
+ }
+
+ [HttpPost("/ban")]
+ public bool PostBan(string channel, ulong senderId, string senderName, ulong targetId, string targetName, string reason)
+ {
+ return true;
+ }
+
+ [HttpPost("/login")]
+ public ResponsePairDto PostLogin(string name, ulong id, string username, string discriminator, string avatarurl, string password)
+ {
+ return new ResponsePairDto()
+ {
+ Message = "Success",
+ Status = true
+ };
+ }
+}
\ No newline at end of file
diff --git a/DiscordBot.FakeServer/DiscordBot.FakeServer.csproj b/DiscordBot.FakeServer/DiscordBot.FakeServer.csproj
new file mode 100644
index 0000000..0fa0b59
--- /dev/null
+++ b/DiscordBot.FakeServer/DiscordBot.FakeServer.csproj
@@ -0,0 +1,18 @@
+
+
+
+ net7.0
+ enable
+ enable
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/DiscordBot.FakeServer/Middlewares/BasicAuthenticationHandler.cs b/DiscordBot.FakeServer/Middlewares/BasicAuthenticationHandler.cs
new file mode 100644
index 0000000..d4e2f8d
--- /dev/null
+++ b/DiscordBot.FakeServer/Middlewares/BasicAuthenticationHandler.cs
@@ -0,0 +1,51 @@
+using DiscordBot.Models;
+using Microsoft.AspNetCore.Authentication;
+using Microsoft.Extensions.Options;
+using System.Security.Claims;
+using System.Text;
+using System.Text.Encodings.Web;
+
+namespace DiscordBot.Middlewares;
+
+public class BasicAuthenticationHandler : AuthenticationHandler
+{
+ private readonly IConfiguration _configuration;
+ private readonly Credentials _credentials;
+
+ public BasicAuthenticationHandler(
+ IOptionsMonitor options,
+ ILoggerFactory logger,
+ UrlEncoder encoder,
+ ISystemClock clock,
+ IOptions credentials,
+ IConfiguration configuration) : base(options, logger, encoder, clock)
+ {
+ _configuration = configuration;
+ _credentials = credentials.Value;
+ }
+
+ protected override async Task HandleAuthenticateAsync()
+ {
+ string authHeader = Request.Headers["Authorization"];
+ if (authHeader != null && authHeader.StartsWith("Basic", StringComparison.InvariantCultureIgnoreCase))
+ {
+
+ var authHeaderValue = authHeader.Replace("Basic ", "", StringComparison.InvariantCultureIgnoreCase);
+ var decodedAuthHeaderValue = Encoding.UTF8.GetString(Convert.FromBase64String(authHeaderValue));
+ var userPassArray = decodedAuthHeaderValue.Split(":");
+ var extractedUsername = userPassArray[0];
+ var extractedPassword = userPassArray[1];
+
+ if (string.Equals(_credentials.Username, extractedUsername) && string.Equals(extractedPassword, _credentials.Password))
+ {
+ var claims = new[] { new Claim(ClaimTypes.Name, _credentials.Username) };
+ var identity = new ClaimsIdentity(claims, Scheme.Name);
+ var principal = new ClaimsPrincipal(identity);
+ var ticket = new AuthenticationTicket(principal, Scheme.Name);
+
+ return AuthenticateResult.Success(ticket);
+ }
+ }
+ return AuthenticateResult.Fail("Failed to authenticate");
+ }
+}
diff --git a/DiscordBot.FakeServer/Program.cs b/DiscordBot.FakeServer/Program.cs
new file mode 100644
index 0000000..27b0d4e
--- /dev/null
+++ b/DiscordBot.FakeServer/Program.cs
@@ -0,0 +1,33 @@
+using DiscordBot.FakeServer;
+using DiscordBot.Middlewares;
+using DiscordBot.Models;
+using Microsoft.AspNetCore.Authentication;
+
+var builder = WebApplication.CreateBuilder(args);
+builder.Services.Configure(options => builder.Configuration.GetSection(nameof(Credentials)).Bind(options));
+
+builder.Services.AddControllers();
+builder.Services.AddEndpointsApiExplorer();
+builder.Services.AddSwaggerGen();
+builder.Services.AddAuthentication("BasicAuthentication")
+ .AddScheme("BasicAuthentication", null);
+builder.Services.AddSwaggerServices();
+
+
+var app = builder.Build();
+
+if (app.Environment.IsDevelopment())
+{
+ app.UseSwagger();
+ app.UseSwaggerUI();
+}
+
+app.UseHttpsRedirection();
+
+app.UseAuthentication();
+app.UseAuthorization();
+
+
+app.MapControllers();
+
+app.Run();
diff --git a/DiscordBot.FakeServer/Properties/launchSettings.json b/DiscordBot.FakeServer/Properties/launchSettings.json
new file mode 100644
index 0000000..b1733ff
--- /dev/null
+++ b/DiscordBot.FakeServer/Properties/launchSettings.json
@@ -0,0 +1,41 @@
+{
+ "$schema": "https://json.schemastore.org/launchsettings.json",
+ "iisSettings": {
+ "windowsAuthentication": false,
+ "anonymousAuthentication": true,
+ "iisExpress": {
+ "applicationUrl": "http://localhost:9697",
+ "sslPort": 44382
+ }
+ },
+ "profiles": {
+ "http": {
+ "commandName": "Project",
+ "dotnetRunMessages": true,
+ "launchBrowser": true,
+ "launchUrl": "swagger",
+ "applicationUrl": "http://localhost:9697",
+ "environmentVariables": {
+ "ASPNETCORE_ENVIRONMENT": "Development"
+ }
+ },
+ "https": {
+ "commandName": "Project",
+ "dotnetRunMessages": true,
+ "launchBrowser": true,
+ "launchUrl": "swagger",
+ "applicationUrl": "https://localhost:9698;http://localhost:9697",
+ "environmentVariables": {
+ "ASPNETCORE_ENVIRONMENT": "Development"
+ }
+ },
+ "IIS Express": {
+ "commandName": "IISExpress",
+ "launchBrowser": true,
+ "launchUrl": "swagger",
+ "environmentVariables": {
+ "ASPNETCORE_ENVIRONMENT": "Development"
+ }
+ }
+ }
+}
diff --git a/DiscordBot.FakeServer/ServiceExtensions.cs b/DiscordBot.FakeServer/ServiceExtensions.cs
new file mode 100644
index 0000000..aca6828
--- /dev/null
+++ b/DiscordBot.FakeServer/ServiceExtensions.cs
@@ -0,0 +1,33 @@
+using Microsoft.OpenApi.Models;
+
+namespace DiscordBot.FakeServer;
+
+public static class ServiceExtensions
+{
+ public static IServiceCollection AddSwaggerServices(this IServiceCollection collection)
+ {
+ collection.AddSwaggerGen(c =>
+ {
+ c.SwaggerDoc("v1", new OpenApiInfo { Title = "Your API", Version = "v1" });
+ c.AddSecurityDefinition("Basic", new OpenApiSecurityScheme
+ {
+ Name = "Authorization",
+ Type = SecuritySchemeType.Http,
+ Scheme = "basic",
+ In = ParameterLocation.Header,
+ Description = "Basic Authorization header."
+ });
+ c.AddSecurityRequirement(new OpenApiSecurityRequirement
+ {
+ {
+ new OpenApiSecurityScheme
+ {
+ Reference = new OpenApiReference { Type = ReferenceType.SecurityScheme, Id = "Basic" }
+ },
+ Array.Empty()
+ }
+ });
+ });
+ return collection;
+ }
+}
diff --git a/DiscordBot.FakeServer/appsettings.Development.json b/DiscordBot.FakeServer/appsettings.Development.json
new file mode 100644
index 0000000..0c208ae
--- /dev/null
+++ b/DiscordBot.FakeServer/appsettings.Development.json
@@ -0,0 +1,8 @@
+{
+ "Logging": {
+ "LogLevel": {
+ "Default": "Information",
+ "Microsoft.AspNetCore": "Warning"
+ }
+ }
+}
diff --git a/DiscordBot.FakeServer/appsettings.json b/DiscordBot.FakeServer/appsettings.json
new file mode 100644
index 0000000..14d47aa
--- /dev/null
+++ b/DiscordBot.FakeServer/appsettings.json
@@ -0,0 +1,13 @@
+{
+ "Logging": {
+ "LogLevel": {
+ "Default": "Information",
+ "Microsoft.AspNetCore": "Warning"
+ }
+ },
+ "AllowedHosts": "*",
+ "Credentials": {
+ "Username": "admin",
+ "Password": "test"
+ }
+}
diff --git a/DiscordBot.sln b/DiscordBot.sln
new file mode 100644
index 0000000..9262871
--- /dev/null
+++ b/DiscordBot.sln
@@ -0,0 +1,37 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 17
+VisualStudioVersion = 17.7.34202.233
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DiscordBot.App", "DiscordBot.App\DiscordBot.App.csproj", "{0C50FDF8-9B8D-453B-933D-AD0D7ADC7F94}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DiscordBot.FakeServer", "DiscordBot.FakeServer\DiscordBot.FakeServer.csproj", "{07F2AE8C-6471-4AD7-99A8-1C017935EC5C}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DiscordBot.Data", "DiscordBot.Data\DiscordBot.Data.csproj", "{377974DC-9816-4674-947B-58052946D481}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {0C50FDF8-9B8D-453B-933D-AD0D7ADC7F94}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {0C50FDF8-9B8D-453B-933D-AD0D7ADC7F94}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {0C50FDF8-9B8D-453B-933D-AD0D7ADC7F94}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {0C50FDF8-9B8D-453B-933D-AD0D7ADC7F94}.Release|Any CPU.Build.0 = Release|Any CPU
+ {07F2AE8C-6471-4AD7-99A8-1C017935EC5C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {07F2AE8C-6471-4AD7-99A8-1C017935EC5C}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {07F2AE8C-6471-4AD7-99A8-1C017935EC5C}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {07F2AE8C-6471-4AD7-99A8-1C017935EC5C}.Release|Any CPU.Build.0 = Release|Any CPU
+ {377974DC-9816-4674-947B-58052946D481}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {377974DC-9816-4674-947B-58052946D481}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {377974DC-9816-4674-947B-58052946D481}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {377974DC-9816-4674-947B-58052946D481}.Release|Any CPU.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {E2E4773C-C24E-4416-B1BA-74362A08A2E2}
+ EndGlobalSection
+EndGlobal
diff --git a/app.sln b/app.sln
deleted file mode 100644
index b6db22b..0000000
--- a/app.sln
+++ /dev/null
@@ -1,25 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio Version 17
-VisualStudioVersion = 17.7.34202.233
-MinimumVisualStudioVersion = 10.0.40219.1
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "app", "app.csproj", "{0C50FDF8-9B8D-453B-933D-AD0D7ADC7F94}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Any CPU = Debug|Any CPU
- Release|Any CPU = Release|Any CPU
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {0C50FDF8-9B8D-453B-933D-AD0D7ADC7F94}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {0C50FDF8-9B8D-453B-933D-AD0D7ADC7F94}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {0C50FDF8-9B8D-453B-933D-AD0D7ADC7F94}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {0C50FDF8-9B8D-453B-933D-AD0D7ADC7F94}.Release|Any CPU.Build.0 = Release|Any CPU
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
- GlobalSection(ExtensibilityGlobals) = postSolution
- SolutionGuid = {E2E4773C-C24E-4416-B1BA-74362A08A2E2}
- EndGlobalSection
-EndGlobal