diff --git a/Fuyu.Launcher/Fuyu.Launcher.csproj b/Fuyu.Launcher/Fuyu.Launcher.csproj
index ee5c0fe..3ab2938 100644
--- a/Fuyu.Launcher/Fuyu.Launcher.csproj
+++ b/Fuyu.Launcher/Fuyu.Launcher.csproj
@@ -21,6 +21,7 @@
+
diff --git a/Fuyu.Launcher/Layout/MainLayout.razor b/Fuyu.Launcher/Layout/MainLayout.razor
index 6d57ad9..b2332ae 100644
--- a/Fuyu.Launcher/Layout/MainLayout.razor
+++ b/Fuyu.Launcher/Layout/MainLayout.razor
@@ -7,9 +7,9 @@
-
-
- Account
+
+
+ Login
Settings
diff --git a/Fuyu.Launcher/Pages/Account.razor b/Fuyu.Launcher/Pages/Account.razor
index 663a37c..a2e927d 100644
--- a/Fuyu.Launcher/Pages/Account.razor
+++ b/Fuyu.Launcher/Pages/Account.razor
@@ -1,30 +1,31 @@
-@using Fuyu.Launcher.Services;
+@using Fuyu.Platform.Common.Models.Fuyu.Accounts
+@using Fuyu.Platform.Launcher.Services
-@page "/"
@page "/account"
- Start Server
- Start Game
+ Start EFT
+ Start Arena
@code
{
- private void StartServer()
+ [SupplyParameterFromQuery(Name = "sessionid")]
+ private string sessionId { get; set; }
+
+ private void StartEft_Clicked()
{
- using (var process = ProcessService.StartServer(SettingsService.ServerDirectory))
+ using (var process = ProcessService.StartEft(SettingsService.EftDirectory, sessionId, SettingsService.EftAddress))
{
process.Start();
}
}
- private void StartEft()
+ private void StartArena_Clicked()
{
- var sessionId = "test";
-
- using (var process = ProcessService.StartEft(SettingsService.ClientDirectory, sessionId, SettingsService.Address))
+ using (var process = ProcessService.StartArena(SettingsService.ArenaDirectory, sessionId, SettingsService.ArenaAddress))
{
process.Start();
}
diff --git a/Fuyu.Launcher/Pages/Login.razor b/Fuyu.Launcher/Pages/Login.razor
new file mode 100644
index 0000000..7ad399b
--- /dev/null
+++ b/Fuyu.Launcher/Pages/Login.razor
@@ -0,0 +1,45 @@
+@using Fuyu.Platform.Launcher.Services;
+
+@inject NavigationManager Navigation
+
+@page "/"
+@page "/login"
+
+
+
+
+
+ Username:
+
+ Password:
+
+
+
+ Login
+ Register
+
+
+
+
+@code
+{
+ string username = string.Empty;
+ string password = string.Empty;
+
+ private void Login_Clicked(EventArgs e)
+ {
+ var hashedPassword = HashService.GetSHA256(password);
+ var sessionId = RequestService.LoginAccount(username, hashedPassword);
+
+ if (sessionId == string.Empty)
+ {
+ // TODO:
+ // * show error
+ // -- seionmoya, 2024/09/02
+ }
+ else
+ {
+ Navigation.NavigateTo($"/account?sessionid={sessionId}");
+ }
+ }
+}
diff --git a/Fuyu.Launcher/Pages/Register.razor b/Fuyu.Launcher/Pages/Register.razor
new file mode 100644
index 0000000..6ac272e
--- /dev/null
+++ b/Fuyu.Launcher/Pages/Register.razor
@@ -0,0 +1,50 @@
+@using Fuyu.Platform.Common.Models.Fuyu.Accounts
+@using Fuyu.Platform.Launcher.Services;
+
+@inject NavigationManager Navigation
+
+@page "/register"
+
+
+
+
+
+ Username:
+
+ Password:
+
+ Edition:
+
+
+
+ Register
+ Login
+
+
+
+
+@code
+{
+ string username = string.Empty;
+ string password = string.Empty;
+ string edition = "unheard";
+
+ private void Register_Clicked(EventArgs e)
+ {
+ var hashedPassword = HashService.GetSHA256(password);
+ var registerStatus = RequestService.RegisterAccount(username, hashedPassword, edition);
+
+ switch (registerStatus)
+ {
+ case ERegisterStatus.Success:
+ Navigation.NavigateTo("/login");
+ break;
+
+ case ERegisterStatus.AlreadyExists:
+ // TODO:
+ // * show error
+ // -- seionmoya, 2024/09/02
+ break;
+ }
+ }
+}
diff --git a/Fuyu.Launcher/Pages/Settings.razor b/Fuyu.Launcher/Pages/Settings.razor
index d432608..c1bad5b 100644
--- a/Fuyu.Launcher/Pages/Settings.razor
+++ b/Fuyu.Launcher/Pages/Settings.razor
@@ -1,43 +1,63 @@
-@using Fuyu.Launcher.Services;
+@using Fuyu.Platform.Launcher.Services;
@page "/settings"
-
-
- Path to installation:
-
+
+
+ Server address:
+
-
-
- Path to installation:
-
+
+
Server address:
-
+
+ Client location:
+
+
+
+
+
+ Server address:
+
+ Client location:
+
@code
{
- string serverDirectory = SettingsService.ServerDirectory;
- string clientDirectory = SettingsService.ClientDirectory;
- string address = SettingsService.Address;
+ string fuyuAddress = SettingsService.FuyuAddress;
+ string eftAddress = SettingsService.EftAddress;
+ string arenaAddress = SettingsService.ArenaAddress;
+ string eftDirectory = SettingsService.EftDirectory;
+ string arenaDirectory = SettingsService.EftDirectory;
+
+ private void FuyuAddress_TextChanged(ChangeEventArgs e)
+ {
+ SettingsService.FuyuAddress = (string)e.Value;
+ }
+
+ private void EftAddress_TextChanged(ChangeEventArgs e)
+ {
+ SettingsService.EftAddress = (string)e.Value;
+ }
- private void ServerDirectory_TextChanged(ChangeEventArgs e)
+ private void ArenaAddress_TextChanged(ChangeEventArgs e)
{
- SettingsService.ServerDirectory = (string)e.Value;
+ SettingsService.ArenaAddress = (string)e.Value;
}
- private void ClientDirectory_TextChanged(ChangeEventArgs e)
+ private void EftDirectory_TextChanged(ChangeEventArgs e)
{
- SettingsService.ClientDirectory = (string)e.Value;
+ SettingsService.EftDirectory = (string)e.Value;
}
- private void Address_TextChanged(ChangeEventArgs e)
+ private void ArenaDirectory_TextChanged(ChangeEventArgs e)
{
- SettingsService.Address = (string)e.Value;
+ SettingsService.ArenaDirectory = (string)e.Value;
}
}
diff --git a/Fuyu.Launcher/Services/SettingsService.cs b/Fuyu.Launcher/Services/SettingsService.cs
deleted file mode 100644
index d83e2d7..0000000
--- a/Fuyu.Launcher/Services/SettingsService.cs
+++ /dev/null
@@ -1,18 +0,0 @@
-using System;
-
-namespace Fuyu.Launcher.Services
-{
- public static class SettingsService
- {
- public static string ServerDirectory;
- public static string ClientDirectory;
- public static string Address;
-
- static SettingsService()
- {
- ServerDirectory = Environment.CurrentDirectory;
- ClientDirectory = Environment.CurrentDirectory;
- Address = "http://localhost:8000";
- }
- }
-}
diff --git a/Fuyu.Platform.Common/IO/VFS.cs b/Fuyu.Platform.Common/IO/VFS.cs
index 195f3e4..89692b5 100644
--- a/Fuyu.Platform.Common/IO/VFS.cs
+++ b/Fuyu.Platform.Common/IO/VFS.cs
@@ -1,19 +1,66 @@
+using System;
using System.IO;
namespace Fuyu.Platform.Common.IO
{
public class VFS
{
- public static bool Exists(string filepath)
+ public static bool DirectoryExists(string filepath)
{
- return File.Exists(filepath) || Directory.Exists(filepath);
+ return Directory.Exists(filepath);
+ }
+
+ public static bool FileExists(string filepath)
+ {
+ return File.Exists(filepath);
+ }
+
+ public static string[] GetFiles(string path)
+ {
+ if (!Directory.Exists(path))
+ {
+ throw new DirectoryNotFoundException($"Directory {path} doesn't exist.");
+ }
+
+ return Directory.GetFiles(path);
+ }
+
+ public static void CreateDirectory(string path)
+ {
+ Directory.CreateDirectory(path);
+ }
+
+ public static string ReadTextFile(string filepath)
+ {
+ var path = Path.GetDirectoryName(filepath);
+
+ if (!DirectoryExists(path))
+ {
+ throw new DirectoryNotFoundException($"Directory {path} doesn't exist.");
+ }
+
+ if (!File.Exists(filepath))
+ {
+ throw new FileNotFoundException($"File {filepath} doesn't exist.");
+ }
+
+ using (var fs = new FileStream(filepath, FileMode.Open, FileAccess.Read, FileShare.None))
+ {
+ using (var sr = new StreamReader(fs))
+ {
+ var text = sr.ReadToEnd();
+ return text;
+ }
+ }
}
public static void WriteTextFile(string filepath, string text)
{
- if (!Exists(filepath))
+ var path = Path.GetDirectoryName(filepath);
+
+ if (!DirectoryExists(path))
{
- Directory.CreateDirectory(Path.GetDirectoryName(filepath));
+ CreateDirectory(path);
}
using (var fs = new FileStream(filepath, FileMode.OpenOrCreate, FileAccess.Write, FileShare.None))
diff --git a/Fuyu.Platform.Common/Models/EFT/Common/MongoId.cs b/Fuyu.Platform.Common/Models/EFT/Common/MongoId.cs
index baddc3d..622558f 100644
--- a/Fuyu.Platform.Common/Models/EFT/Common/MongoId.cs
+++ b/Fuyu.Platform.Common/Models/EFT/Common/MongoId.cs
@@ -36,7 +36,7 @@ public MongoId([JsonProperty("$value")] string id)
{
if (id == null || id.Length != 24)
{
- throw new ArgumentOutOfRangeException("Critical MongoId error: incorrect length. Id: " + id);
+ throw new ArgumentOutOfRangeException($"Critical MongoId error: incorrect length. Id: {id}");
}
_timeStamp = GetTimestamp(id);
diff --git a/Fuyu.Platform.Common/Models/Fuyu/Account.cs b/Fuyu.Platform.Common/Models/Fuyu/Accounts/Account.cs
similarity index 72%
rename from Fuyu.Platform.Common/Models/Fuyu/Account.cs
rename to Fuyu.Platform.Common/Models/Fuyu/Accounts/Account.cs
index 0188239..946f059 100644
--- a/Fuyu.Platform.Common/Models/Fuyu/Account.cs
+++ b/Fuyu.Platform.Common/Models/Fuyu/Accounts/Account.cs
@@ -1,11 +1,13 @@
using System.Runtime.Serialization;
-using Fuyu.Platform.Common.Models.Fuyu.Savegame;
-namespace Fuyu.Platform.Common.Models.Fuyu
+namespace Fuyu.Platform.Common.Models.Fuyu.Accounts
{
[DataContract]
public struct Account
{
+ [DataMember]
+ public int Id;
+
[DataMember]
public string Username;
diff --git a/Fuyu.Platform.Common/Models/Fuyu/Accounts/ERegisterStatus.cs b/Fuyu.Platform.Common/Models/Fuyu/Accounts/ERegisterStatus.cs
new file mode 100644
index 0000000..f1961c6
--- /dev/null
+++ b/Fuyu.Platform.Common/Models/Fuyu/Accounts/ERegisterStatus.cs
@@ -0,0 +1,8 @@
+namespace Fuyu.Platform.Common.Models.Fuyu.Accounts
+{
+ public enum ERegisterStatus
+ {
+ AlreadyExists,
+ Success
+ }
+}
\ No newline at end of file
diff --git a/Fuyu.Platform.Common/Models/Fuyu/Savegame/EftProfile.cs b/Fuyu.Platform.Common/Models/Fuyu/Accounts/EftProfile.cs
similarity index 87%
rename from Fuyu.Platform.Common/Models/Fuyu/Savegame/EftProfile.cs
rename to Fuyu.Platform.Common/Models/Fuyu/Accounts/EftProfile.cs
index 22668bf..d1910b9 100644
--- a/Fuyu.Platform.Common/Models/Fuyu/Savegame/EftProfile.cs
+++ b/Fuyu.Platform.Common/Models/Fuyu/Accounts/EftProfile.cs
@@ -1,7 +1,7 @@
using System.Runtime.Serialization;
using Fuyu.Platform.Common.Models.EFT.Profiles;
-namespace Fuyu.Platform.Common.Models.Fuyu.Savegame
+namespace Fuyu.Platform.Common.Models.Fuyu.Accounts
{
[DataContract]
public struct EftProfile
diff --git a/Fuyu.Platform.Common/Models/Fuyu/Savegame/EftSave.cs b/Fuyu.Platform.Common/Models/Fuyu/Accounts/EftSave.cs
similarity index 83%
rename from Fuyu.Platform.Common/Models/Fuyu/Savegame/EftSave.cs
rename to Fuyu.Platform.Common/Models/Fuyu/Accounts/EftSave.cs
index 9bb5e90..65075ca 100644
--- a/Fuyu.Platform.Common/Models/Fuyu/Savegame/EftSave.cs
+++ b/Fuyu.Platform.Common/Models/Fuyu/Accounts/EftSave.cs
@@ -1,6 +1,6 @@
using System.Runtime.Serialization;
-namespace Fuyu.Platform.Common.Models.Fuyu.Savegame
+namespace Fuyu.Platform.Common.Models.Fuyu.Accounts
{
[DataContract]
public struct EftSave
diff --git a/Fuyu.Platform.Common/Models/Fuyu/Requests/AccountLoginRequest.cs b/Fuyu.Platform.Common/Models/Fuyu/Requests/AccountLoginRequest.cs
new file mode 100644
index 0000000..16d80df
--- /dev/null
+++ b/Fuyu.Platform.Common/Models/Fuyu/Requests/AccountLoginRequest.cs
@@ -0,0 +1,14 @@
+using System.Runtime.Serialization;
+
+namespace Fuyu.Platform.Common.Models.Fuyu.Requests
+{
+ [DataContract]
+ public struct AccountLoginRequest
+ {
+ [DataMember]
+ public string Username;
+
+ [DataMember]
+ public string Password;
+ }
+}
\ No newline at end of file
diff --git a/Fuyu.Platform.Common/Models/Fuyu/Requests/AccountRegisterRequest.cs b/Fuyu.Platform.Common/Models/Fuyu/Requests/AccountRegisterRequest.cs
new file mode 100644
index 0000000..74014cc
--- /dev/null
+++ b/Fuyu.Platform.Common/Models/Fuyu/Requests/AccountRegisterRequest.cs
@@ -0,0 +1,17 @@
+using System.Runtime.Serialization;
+
+namespace Fuyu.Platform.Common.Models.Fuyu.Requests
+{
+ [DataContract]
+ public struct AccountRegisterRequest
+ {
+ [DataMember]
+ public string Username;
+
+ [DataMember]
+ public string Password;
+
+ [DataMember]
+ public string Edition;
+ }
+}
\ No newline at end of file
diff --git a/Fuyu.Platform.Common/Models/Fuyu/Response/AccountLoginResponse.cs b/Fuyu.Platform.Common/Models/Fuyu/Response/AccountLoginResponse.cs
new file mode 100644
index 0000000..7fedd5e
--- /dev/null
+++ b/Fuyu.Platform.Common/Models/Fuyu/Response/AccountLoginResponse.cs
@@ -0,0 +1,11 @@
+using System.Runtime.Serialization;
+
+namespace Fuyu.Platform.Common.Models.Fuyu.Responses
+{
+ [DataContract]
+ public struct AccountLoginResponse
+ {
+ [DataMember]
+ public string SessionId;
+ }
+}
\ No newline at end of file
diff --git a/Fuyu.Platform.Common/Models/Fuyu/Response/AccountRegisterResponse.cs b/Fuyu.Platform.Common/Models/Fuyu/Response/AccountRegisterResponse.cs
new file mode 100644
index 0000000..185effb
--- /dev/null
+++ b/Fuyu.Platform.Common/Models/Fuyu/Response/AccountRegisterResponse.cs
@@ -0,0 +1,12 @@
+using System.Runtime.Serialization;
+using Fuyu.Platform.Common.Models.Fuyu.Accounts;
+
+namespace Fuyu.Platform.Common.Models.Fuyu.Responses
+{
+ [DataContract]
+ public struct AccountRegisterResponse
+ {
+ [DataMember]
+ public ERegisterStatus Status;
+ }
+}
\ No newline at end of file
diff --git a/Fuyu.Platform.Common/README.md b/Fuyu.Platform.Common/README.md
index 08e7303..b6fc2f7 100644
--- a/Fuyu.Platform.Common/README.md
+++ b/Fuyu.Platform.Common/README.md
@@ -68,7 +68,7 @@ public class Program
static async Task Main()
{
// make a client instance
- var client = new HttpClient("http://localhost:8000");
+ var client = new HttpClient("http://localhost:8001");
// make request
var data = await client.GetAsync("/helloworld");
diff --git a/Fuyu.Platform.Launcher/Fuyu.Platform.Launcher.csproj b/Fuyu.Platform.Launcher/Fuyu.Platform.Launcher.csproj
index 58990cd..273b1b3 100644
--- a/Fuyu.Platform.Launcher/Fuyu.Platform.Launcher.csproj
+++ b/Fuyu.Platform.Launcher/Fuyu.Platform.Launcher.csproj
@@ -4,4 +4,8 @@
net8.0
+
+
+
+
diff --git a/Fuyu.Platform.Launcher/README.md b/Fuyu.Platform.Launcher/README.md
index 0d36e77..6e78ed8 100644
--- a/Fuyu.Platform.Launcher/README.md
+++ b/Fuyu.Platform.Launcher/README.md
@@ -12,7 +12,7 @@ are a couple of things you need to provide:
- `cwd`: Current working directory. This is also where `EscapeFromTarkov.exe`
must be located.
-- `accountId`: The user to login.
+- `sessionId`: The user's login session.
- `address`: Main server address.
```cs
@@ -24,10 +24,10 @@ public class Program
static void Main()
{
var cwd = Environment.CurrentDirectory;
- var accountId = 659885;
- var address = "http://localhost:8000";
+ var sessionId = "1234567890abcdef";
+ var address = "http://localhost:8001";
- using (var process = ProcessService.StartEft(cwd, accountId, address))
+ using (var process = ProcessService.StartEft(cwd, sessionId, address))
{
process.Start();
}
diff --git a/Fuyu.Platform.Launcher/Services/HashService.cs b/Fuyu.Platform.Launcher/Services/HashService.cs
new file mode 100644
index 0000000..93150a9
--- /dev/null
+++ b/Fuyu.Platform.Launcher/Services/HashService.cs
@@ -0,0 +1,17 @@
+using System;
+using System.Security.Cryptography;
+using System.Text;
+
+namespace Fuyu.Platform.Launcher.Services
+{
+ public static class HashService
+ {
+ public static string GetSHA256(string text)
+ {
+ var bytes = Encoding.UTF8.GetBytes(text);
+ var sha256 = SHA256.HashData(bytes);
+ var hash = Convert.ToHexString(sha256);
+ return hash;
+ }
+ }
+}
diff --git a/Fuyu.Platform.Launcher/Services/ProcessService.cs b/Fuyu.Platform.Launcher/Services/ProcessService.cs
index 95c41b0..48b1a99 100644
--- a/Fuyu.Platform.Launcher/Services/ProcessService.cs
+++ b/Fuyu.Platform.Launcher/Services/ProcessService.cs
@@ -26,14 +26,14 @@ public static Process StartEft(string cwd, string sessionId, string address)
};
}
- public static Process StartServer(string cwd)
+ public static Process StartArena(string cwd, string sessionId, string address)
{
return new Process()
{
StartInfo = new ProcessStartInfo()
{
- Arguments = string.Empty,
- FileName = Path.Combine(cwd, "Fuyu.Server.exe"),
+ Arguments = GetLaunchArguments(sessionId, address),
+ FileName = Path.Combine(cwd, "EscapeFromTarkovArena.exe"),
WorkingDirectory = cwd
}
};
diff --git a/Fuyu.Platform.Launcher/Services/RequestService.cs b/Fuyu.Platform.Launcher/Services/RequestService.cs
new file mode 100644
index 0000000..84f0e10
--- /dev/null
+++ b/Fuyu.Platform.Launcher/Services/RequestService.cs
@@ -0,0 +1,54 @@
+using System.Text;
+using Fuyu.Platform.Common.Models.Fuyu.Accounts;
+using Fuyu.Platform.Common.Models.Fuyu.Requests;
+using Fuyu.Platform.Common.Models.Fuyu.Responses;
+using Fuyu.Platform.Common.Networking;
+using Fuyu.Platform.Common.Serialization;
+
+namespace Fuyu.Platform.Launcher.Services
+{
+ public static class RequestService
+ {
+ private static readonly HttpClient _httpClient;
+
+ static RequestService()
+ {
+ _httpClient = new HttpClient(SettingsService.FuyuAddress);
+ }
+
+ private static T2 HttpPost(string path, T1 request)
+ {
+ var requestJson = Json.Stringify(request);
+ var requestBytes = Encoding.UTF8.GetBytes(requestJson);
+ var responseBytes = _httpClient.Post(path, requestBytes);
+ var responseJson = Encoding.UTF8.GetString(responseBytes);
+ var response = Json.Parse(responseJson);
+ return response;
+ }
+
+ public static ERegisterStatus RegisterAccount(string username, string password, string edition)
+ {
+ var request = new AccountRegisterRequest()
+ {
+ Username = username,
+ Password = password,
+ Edition = edition
+ };
+ var response = HttpPost("/account/register", request);
+
+ return response.Status;
+ }
+
+ public static string LoginAccount(string username, string password)
+ {
+ var request = new AccountLoginRequest()
+ {
+ Username = username,
+ Password = password
+ };
+ var response = HttpPost("/account/login", request);
+
+ return response.SessionId;
+ }
+ }
+}
diff --git a/Fuyu.Platform.Launcher/Services/SettingsService.cs b/Fuyu.Platform.Launcher/Services/SettingsService.cs
new file mode 100644
index 0000000..e12f56e
--- /dev/null
+++ b/Fuyu.Platform.Launcher/Services/SettingsService.cs
@@ -0,0 +1,28 @@
+using System;
+
+namespace Fuyu.Platform.Launcher.Services
+{
+ public static class SettingsService
+ {
+ // server settings
+ public static string FuyuAddress;
+ public static string EftAddress;
+ public static string ArenaAddress;
+
+ // client settings
+ public static string EftDirectory;
+ public static string ArenaDirectory;
+
+ static SettingsService()
+ {
+ // server settings
+ FuyuAddress = "http://localhost:8000";
+ EftAddress = "http://localhost:8001";
+ ArenaAddress = "http://localhost:8020";
+
+ // client settings
+ EftDirectory = Environment.CurrentDirectory;
+ ArenaDirectory = Environment.CurrentDirectory;
+ }
+ }
+}
diff --git a/Fuyu.Platform.Server/Behaviours/EFT/CustomizationStorage.cs b/Fuyu.Platform.Server/Behaviours/EFT/CustomizationStorage.cs
index 8858d7e..379460b 100644
--- a/Fuyu.Platform.Server/Behaviours/EFT/CustomizationStorage.cs
+++ b/Fuyu.Platform.Server/Behaviours/EFT/CustomizationStorage.cs
@@ -16,7 +16,9 @@ public override void Run(HttpContext context)
var sessionId = context.GetSessionId();
var account = FuyuDatabase.Accounts.GetAccount(sessionId);
- // TODO: PVP-PVE STATE DETECTION
+ // TODO:
+ // * PVP-PVE state detection
+ // -- seionmoya, 2024/08/28
var response = new ResponseBody()
{
data = new CustomizationStorageResponse()
diff --git a/Fuyu.Platform.Server/Behaviours/EFT/GameBotGenerate.cs b/Fuyu.Platform.Server/Behaviours/EFT/GameBotGenerate.cs
index 2ab85e7..7cd9c67 100644
--- a/Fuyu.Platform.Server/Behaviours/EFT/GameBotGenerate.cs
+++ b/Fuyu.Platform.Server/Behaviours/EFT/GameBotGenerate.cs
@@ -1,4 +1,4 @@
-using Fuyu.Platform.Server.Services;
+using Fuyu.Platform.Server.Services.EFT;
using Fuyu.Platform.Common.Models.EFT.Profiles;
using Fuyu.Platform.Common.Models.EFT.Requests;
using Fuyu.Platform.Common.Models.EFT.Responses;
diff --git a/Fuyu.Platform.Server/Behaviours/EFT/GameConfig.cs b/Fuyu.Platform.Server/Behaviours/EFT/GameConfig.cs
index c5b0c45..23e1890 100644
--- a/Fuyu.Platform.Server/Behaviours/EFT/GameConfig.cs
+++ b/Fuyu.Platform.Server/Behaviours/EFT/GameConfig.cs
@@ -18,11 +18,11 @@ public override void Run(HttpContext context)
{
backend = new Backends()
{
- Lobby = "http://localhost:8000",
- Trading = "http://localhost:8000",
- Messaging = "http://localhost:8000",
- Main = "http://localhost:8000",
- RagFair = "http://localhost:8000"
+ Lobby = "http://localhost:8001",
+ Trading = "http://localhost:8001",
+ Messaging = "http://localhost:8001",
+ Main = "http://localhost:8001",
+ RagFair = "http://localhost:8001"
},
utc_time = 1724450891.010541,
reportAvailable = true,
diff --git a/Fuyu.Platform.Server/Behaviours/EFT/GameMode.cs b/Fuyu.Platform.Server/Behaviours/EFT/GameMode.cs
index 3ba6eb2..0410e60 100644
--- a/Fuyu.Platform.Server/Behaviours/EFT/GameMode.cs
+++ b/Fuyu.Platform.Server/Behaviours/EFT/GameMode.cs
@@ -17,7 +17,7 @@ public override void Run(HttpContext context)
data = new GameModeResponse()
{
gameMode = "pve",
- backendUrl = "http://localhost:8000"
+ backendUrl = "http://localhost:8001"
}
};
diff --git a/Fuyu.Platform.Server/Behaviours/EFT/GameProfileCreate.cs b/Fuyu.Platform.Server/Behaviours/EFT/GameProfileCreate.cs
index 8398285..db25057 100644
--- a/Fuyu.Platform.Server/Behaviours/EFT/GameProfileCreate.cs
+++ b/Fuyu.Platform.Server/Behaviours/EFT/GameProfileCreate.cs
@@ -6,9 +6,13 @@
using Fuyu.Platform.Common.Networking;
using Fuyu.Platform.Common.Serialization;
using Fuyu.Platform.Server.Databases;
+using Fuyu.Platform.Server.Services.Fuyu;
namespace Fuyu.Platform.Server.Behaviours.EFT
{
+ // TODO:
+ // * move code into TemplateTable and ProfileService
+ // -- seionmoya, 2024/09/02
public class GameProfileCreate : HttpBehaviour
{
private readonly string _bearJson;
@@ -29,7 +33,9 @@ public override void Run(HttpContext context)
var accountId = FuyuDatabase.Accounts.GetSession(sessionId);
var account = FuyuDatabase.Accounts.GetAccount(accountId);
- // TODO: PVP-PVE STATE DETECTION
+ // TODO:
+ // * PVP-PVE state detection
+ // -- seionmoya, 2024/08/28
// generate ids
var pmcId = new MongoId(accountId).ToString();
@@ -61,6 +67,7 @@ public override void Run(HttpContext context)
// store account
FuyuDatabase.Accounts.SetAccount(accountId, account);
+ AccountService.WriteAccountToDisk(account);
// respond
var response = new ResponseBody()
diff --git a/Fuyu.Platform.Server/Behaviours/EFT/GameProfileList.cs b/Fuyu.Platform.Server/Behaviours/EFT/GameProfileList.cs
index a609c61..3556caf 100644
--- a/Fuyu.Platform.Server/Behaviours/EFT/GameProfileList.cs
+++ b/Fuyu.Platform.Server/Behaviours/EFT/GameProfileList.cs
@@ -17,7 +17,9 @@ public override void Run(HttpContext context)
var sessionId = context.GetSessionId();
var account = FuyuDatabase.Accounts.GetAccount(sessionId);
- // TODO: PVP-PVE STATE DETECTION
+ // TODO:
+ // * PVP-PVE state detection
+ // -- seionmoya, 2024/08/28
var pve = account.EftSave.PvE;
Profile[] profiles = pve.ShouldWipe
? []
diff --git a/Fuyu.Platform.Server/Behaviours/EFT/GameProfileNicknameValidate.cs b/Fuyu.Platform.Server/Behaviours/EFT/GameProfileNicknameValidate.cs
index f5658d4..4c10c72 100644
--- a/Fuyu.Platform.Server/Behaviours/EFT/GameProfileNicknameValidate.cs
+++ b/Fuyu.Platform.Server/Behaviours/EFT/GameProfileNicknameValidate.cs
@@ -15,7 +15,9 @@ public override void Run(HttpContext context)
{
var request = context.GetJson();
- // TODO: validate nickname usage
+ // TODO:
+ // * validate nickname usage
+ // -- seionmoya, 2024/08/28
var response = new ResponseBody()
{
diff --git a/Fuyu.Platform.Server/Behaviours/EFT/NotifierChannelCreate.cs b/Fuyu.Platform.Server/Behaviours/EFT/NotifierChannelCreate.cs
index e0fffc6..135352d 100644
--- a/Fuyu.Platform.Server/Behaviours/EFT/NotifierChannelCreate.cs
+++ b/Fuyu.Platform.Server/Behaviours/EFT/NotifierChannelCreate.cs
@@ -21,7 +21,7 @@ public override void Run(HttpContext context)
server = "localhost:8000",
channel_id = channelId,
url = string.Empty,
- notifierServer = $"http://localhost:8000/push/notifier/get/{channelId}",
+ notifierServer = $"http://localhost:8001/push/notifier/get/{channelId}",
ws = $"ws://localhost:8000/push/notifier/getwebsocket/{channelId}"
}
};
diff --git a/Fuyu.Platform.Server/Behaviours/EFT/ProfileStatus.cs b/Fuyu.Platform.Server/Behaviours/EFT/ProfileStatus.cs
index a30335d..3b22ed6 100644
--- a/Fuyu.Platform.Server/Behaviours/EFT/ProfileStatus.cs
+++ b/Fuyu.Platform.Server/Behaviours/EFT/ProfileStatus.cs
@@ -17,7 +17,9 @@ public override void Run(HttpContext context)
var sessionId = context.GetSessionId();
var account = FuyuDatabase.Accounts.GetAccount(sessionId);
- // TODO: PVP-PVE STATE DETECTION
+ // TODO:
+ // * PVP-PVE state detection
+ // -- seionmoya, 2024/08/28
var response = new ResponseBody()
{
diff --git a/Fuyu.Platform.Server/Behaviours/Fuyu/AccountLogin.cs b/Fuyu.Platform.Server/Behaviours/Fuyu/AccountLogin.cs
new file mode 100644
index 0000000..463fc68
--- /dev/null
+++ b/Fuyu.Platform.Server/Behaviours/Fuyu/AccountLogin.cs
@@ -0,0 +1,27 @@
+using Fuyu.Platform.Common.Models.Fuyu.Requests;
+using Fuyu.Platform.Common.Models.Fuyu.Responses;
+using Fuyu.Platform.Common.Networking;
+using Fuyu.Platform.Common.Serialization;
+using Fuyu.Platform.Server.Services.Fuyu;
+
+namespace Fuyu.Platform.Server.Behaviours.EFT
+{
+ public class AccountLogin : HttpBehaviour
+ {
+ public AccountLogin() : base("/account/login")
+ {
+ }
+
+ public override void Run(HttpContext context)
+ {
+ var request = context.GetJson();
+ var result = AccountService.LoginAccount(request.Username, request.Password);
+ var response = new AccountLoginResponse()
+ {
+ SessionId = result
+ };
+
+ SendJson(context, Json.Stringify(response));
+ }
+ }
+}
\ No newline at end of file
diff --git a/Fuyu.Platform.Server/Behaviours/Fuyu/AccountRegister.cs b/Fuyu.Platform.Server/Behaviours/Fuyu/AccountRegister.cs
new file mode 100644
index 0000000..0832520
--- /dev/null
+++ b/Fuyu.Platform.Server/Behaviours/Fuyu/AccountRegister.cs
@@ -0,0 +1,27 @@
+using Fuyu.Platform.Common.Models.Fuyu.Requests;
+using Fuyu.Platform.Common.Models.Fuyu.Responses;
+using Fuyu.Platform.Common.Networking;
+using Fuyu.Platform.Common.Serialization;
+using Fuyu.Platform.Server.Services.Fuyu;
+
+namespace Fuyu.Platform.Server.Behaviours.EFT
+{
+ public class AccountRegister : HttpBehaviour
+ {
+ public AccountRegister() : base("/account/register")
+ {
+ }
+
+ public override void Run(HttpContext context)
+ {
+ var request = context.GetJson();
+ var result = AccountService.RegisterAccount(request.Username, request.Password, request.Edition);
+ var response = new AccountRegisterResponse()
+ {
+ Status = result
+ };
+
+ SendJson(context, Json.Stringify(response));
+ }
+ }
+}
\ No newline at end of file
diff --git a/Fuyu.Platform.Server/Databases/Fuyu/AccountTable.cs b/Fuyu.Platform.Server/Databases/Fuyu/AccountTable.cs
index 58fe3c4..4299b6d 100644
--- a/Fuyu.Platform.Server/Databases/Fuyu/AccountTable.cs
+++ b/Fuyu.Platform.Server/Databases/Fuyu/AccountTable.cs
@@ -1,6 +1,8 @@
+using System;
using System.Collections.Generic;
-using Fuyu.Platform.Common.Models.Fuyu;
-using Fuyu.Platform.Common.Models.Fuyu.Savegame;
+using Fuyu.Platform.Common.IO;
+using Fuyu.Platform.Common.Models.Fuyu.Accounts;
+using Fuyu.Platform.Common.Serialization;
namespace Fuyu.Platform.Server.Databases.Fuyu
{
@@ -10,12 +12,14 @@ static AccountTable()
{
_accountsLock = new object();
_sessionsLock = new object();
+ _pathLock = new object();
}
public AccountTable()
{
- _accounts = new Dictionary();
- _sessions = new Dictionary();
+ _path = "./fuyu/accounts/";
+ _accounts = [];
+ _sessions = [];
}
public void Load()
@@ -24,41 +28,61 @@ public void Load()
LoadSessions();
}
+#region path
+ // TODO:
+ // * move to a config system
+ // -- seionmoya, 2024/09/02
+ private string _path;
+ private static readonly object _pathLock;
+
+ public string GetPath()
+ {
+ return _path;
+ }
+
+ public void SetPath(string path)
+ {
+ lock (_pathLock)
+ {
+ _path = path;
+ }
+ }
+#endregion
+
#region Accounts
-// aid account
- private readonly Dictionary _accounts;
+ // NOTE: rationale for using List over Dictionary
+ // is the accountId is already stored in the Account so having to
+ // sync both the Account.Id and dictionary is a bit annoying, and
+ // a dictionary loops over all keys anyways (unless using
+ // TryGetValue() but that uses 'out' which I want to avoid).
+ // -- seionmoya, 2024/09/02
+
+ private readonly List _accounts;
private static readonly object _accountsLock;
+ // TODO:
+ // * separate database from loading functionality
+ // -- seionmoya, 2024/09/02
private void LoadAccounts()
{
- var account = new Account()
+ if (!VFS.DirectoryExists(_path))
{
- Username = "Senko-san",
- Password = string.Empty,
- EftSave = new EftSave()
- {
- Edition = "Unheard",
- PvE = new EftProfile()
- {
- Savage = default,
- Pmc = default,
- Suites = [],
- ShouldWipe = true
- },
- PvP = new EftProfile()
- {
- Savage = default,
- Pmc = default,
- Suites = [],
- ShouldWipe = true
- }
- }
- };
+ VFS.CreateDirectory(_path);
+ }
- AddAccount(1, account);
+ var files = VFS.GetFiles(_path);
+
+ foreach (var filepath in files)
+ {
+ var json = VFS.ReadTextFile(filepath);
+ var account = Json.Parse(json);
+ AddAccount(account);
+
+ Terminal.WriteLine($"Loaded account {account.Id}");
+ }
}
- public Dictionary GetAccounts()
+ public List GetAccounts()
{
return _accounts;
}
@@ -71,31 +95,67 @@ public Account GetAccount(string sessionId)
public Account GetAccount(int accountId)
{
- return _accounts[accountId];
+ foreach (var entry in _accounts)
+ {
+ if (entry.Id == accountId)
+ {
+ return entry;
+ }
+ }
+
+ throw new Exception($"Account with {accountId} does not exist.");
}
public void SetAccount(int accountId, Account account)
{
- lock (_accountsLock)
+ for (var i = 0; i < _accounts.Count; ++i)
{
- _accounts[accountId] = account;
+ if (_accounts[i].Id == accountId)
+ {
+ lock (_accountsLock)
+ {
+ _accounts[i] = account;
+ }
+
+ return;
+ }
}
+
+ throw new Exception($"Account with {accountId} does not exist.");
}
- public void AddAccount(int accountId, Account account)
+ public void AddAccount(Account account)
{
+ foreach (var entry in _accounts)
+ {
+ if (entry.Id == account.Id)
+ {
+ _accounts.Remove(entry);
+ }
+ }
+
lock (_accountsLock)
{
- _accounts.Add(accountId, account);
+ _accounts.Add(account);
}
}
public void RemoveAccount(int accountId)
{
- lock (_accountsLock)
+ foreach (var entry in _accounts)
{
- _accounts.Remove(accountId);
+ if (entry.Id == accountId)
+ {
+ lock (_accountsLock)
+ {
+ _accounts.Remove(entry);
+ }
+
+ return;
+ }
}
+
+ throw new Exception($"Account with {accountId} does not exist.");
}
#endregion
@@ -106,16 +166,28 @@ public void RemoveAccount(int accountId)
public void LoadSessions()
{
- AddSession("test", 1);
+ // intentionally empty
+ // sessions are created when users are logged in successfully
+ // -- seionmoya, 2024/09/02
}
public int GetSession(string sessionId)
{
+ if (!_sessions.ContainsKey(sessionId))
+ {
+ throw new Exception($"Session {sessionId} does not exist.");
+ }
+
return _sessions[sessionId];
}
public void SetSession(string sessionId, int accountId)
{
+ if (!_sessions.ContainsKey(sessionId))
+ {
+ throw new Exception($"Session {sessionId} does not exist.");
+ }
+
lock (_sessionsLock)
{
_sessions[sessionId] = accountId;
@@ -124,14 +196,29 @@ public void SetSession(string sessionId, int accountId)
public void AddSession(string sessionId, int accountId)
{
- lock (_sessionsLock)
+ if (_sessions.ContainsKey(sessionId))
{
- _sessions.Add(sessionId, accountId);
+ lock (_sessionsLock)
+ {
+ _sessions[sessionId] = accountId;
+ }
+ }
+ else
+ {
+ lock (_sessionsLock)
+ {
+ _sessions.Add(sessionId, accountId);
+ }
}
}
public void RemoveSession(string sessionId)
{
+ if (!_sessions.ContainsKey(sessionId))
+ {
+ throw new Exception($"Session {sessionId} does not exist.");
+ }
+
lock (_sessionsLock)
{
_sessions.Remove(sessionId);
diff --git a/Fuyu.Platform.Server/ServerManager.cs b/Fuyu.Platform.Server/ServerManager.cs
index c4c038a..e1af4d9 100644
--- a/Fuyu.Platform.Server/ServerManager.cs
+++ b/Fuyu.Platform.Server/ServerManager.cs
@@ -11,7 +11,8 @@ public static class ServerManager
static ServerManager()
{
_servers = [
- new EftServer()
+ new FuyuServer(),
+ new EftMainServer()
];
}
diff --git a/Fuyu.Platform.Server/Servers/MainServer.cs b/Fuyu.Platform.Server/Servers/EftMainServer.cs
similarity index 95%
rename from Fuyu.Platform.Server/Servers/MainServer.cs
rename to Fuyu.Platform.Server/Servers/EftMainServer.cs
index 1a48240..80e9c0f 100644
--- a/Fuyu.Platform.Server/Servers/MainServer.cs
+++ b/Fuyu.Platform.Server/Servers/EftMainServer.cs
@@ -3,9 +3,9 @@
namespace Fuyu.Platform.Server.Servers
{
- public class EftServer : HttpServer
+ public class EftMainServer : HttpServer
{
- public EftServer() : base("eft-main", "http://localhost:8000")
+ public EftMainServer() : base("eft-main", "http://localhost:8001")
{
}
diff --git a/Fuyu.Platform.Server/Servers/FuyuServer.cs b/Fuyu.Platform.Server/Servers/FuyuServer.cs
new file mode 100644
index 0000000..2172acc
--- /dev/null
+++ b/Fuyu.Platform.Server/Servers/FuyuServer.cs
@@ -0,0 +1,18 @@
+using Fuyu.Platform.Common.Networking;
+using Fuyu.Platform.Server.Behaviours.EFT;
+
+namespace Fuyu.Platform.Server.Servers
+{
+ public class FuyuServer : HttpServer
+ {
+ public FuyuServer() : base("fuyu", "http://localhost:8000")
+ {
+ }
+
+ public override void RegisterServices()
+ {
+ AddHttpBehaviour();
+ AddHttpBehaviour();
+ }
+ }
+}
\ No newline at end of file
diff --git a/Fuyu.Platform.Server/Services/BotService.cs b/Fuyu.Platform.Server/Services/EFT/BotService.cs
similarity index 85%
rename from Fuyu.Platform.Server/Services/BotService.cs
rename to Fuyu.Platform.Server/Services/EFT/BotService.cs
index 452e2f8..8b34a0b 100644
--- a/Fuyu.Platform.Server/Services/BotService.cs
+++ b/Fuyu.Platform.Server/Services/EFT/BotService.cs
@@ -1,7 +1,7 @@
using Fuyu.Platform.Common.Models.EFT.Profiles;
using Fuyu.Platform.Common.Models.EFT.Profiles.Info;
-namespace Fuyu.Platform.Server.Services
+namespace Fuyu.Platform.Server.Services.EFT
{
public static class BotService
{
diff --git a/Fuyu.Platform.Server/Services/Fuyu/AccountService.cs b/Fuyu.Platform.Server/Services/Fuyu/AccountService.cs
new file mode 100644
index 0000000..4b55f8d
--- /dev/null
+++ b/Fuyu.Platform.Server/Services/Fuyu/AccountService.cs
@@ -0,0 +1,144 @@
+using System;
+using System.Collections.Concurrent;
+using System.Linq;
+using System.Threading.Tasks;
+using Fuyu.Platform.Common.IO;
+using Fuyu.Platform.Common.Models.EFT.Common;
+using Fuyu.Platform.Common.Models.Fuyu.Accounts;
+using Fuyu.Platform.Common.Serialization;
+using Fuyu.Platform.Server.Databases;
+
+namespace Fuyu.Platform.Server.Services.Fuyu
+{
+ public static class AccountService
+ {
+ // TODO:
+ // * account login state tracking
+ // -- seionmoya, 2024/09/02
+
+ public static int AccountExists(string username, string password)
+ {
+ var lowerUsername = username.ToLowerInvariant();
+ var accounts = FuyuDatabase.Accounts.GetAccounts();
+ var found = new ConcurrentBag();
+
+ Parallel.ForEach(accounts, account =>
+ {
+ if (account.Username == lowerUsername && account.Password == password)
+ {
+ found.Add(account);
+ }
+ });
+
+ if (found.Count > 1)
+ {
+ throw new Exception($"Multiple accounts found with username {username}.");
+ }
+
+ if (found.IsEmpty)
+ {
+ return -1;
+ }
+
+ return found.First().Id;
+ }
+
+ public static string LoginAccount(string username, string password)
+ {
+ var accountId = AccountExists(username, password);
+
+ if (accountId != -1)
+ {
+ // NOTE: MongoId's are used internally, but EFT's launcher uses
+ // a different ID system (hwid+timestamp hash). Instead of
+ // fully mimicking this, I decided to generate a new MongoId
+ // for each login.
+ // -- seionmoya, 2024/09/02
+ var sessionId = new MongoId().ToString();
+
+ FuyuDatabase.Accounts.AddSession(sessionId, accountId);
+ return sessionId.ToString();
+ }
+
+ return string.Empty;
+ }
+
+ private static int GetNewAccountId()
+ {
+ var accounts = FuyuDatabase.Accounts.GetAccounts();
+
+ // using linq because sorting otherwise takes up too much code
+ var sorted = accounts.OrderBy(account => account.Id).ToArray();
+
+ // NOTE: I know multi-threading is overkill for most systems, but I
+ // want to keep in mind large server workloads
+ // -- seionmoya, 2024/09/02
+ var found = new ConcurrentBag();
+
+ Parallel.For(0, sorted.Length, i =>
+ {
+ if (sorted[i].Id != i)
+ {
+ found.Add(sorted[i].Id);
+ }
+ });
+
+ if (!found.IsEmpty)
+ {
+ // use gap entry
+ return found.First();
+ }
+ else
+ {
+ // use new entry
+ return sorted.Length;
+ }
+ }
+
+ public static ERegisterStatus RegisterAccount(string username, string password, string edition)
+ {
+ if (AccountExists(username, password) != -1)
+ {
+ return ERegisterStatus.AlreadyExists;
+ }
+
+ var id = GetNewAccountId();
+ var account = new Account()
+ {
+ Id = id,
+ Username = username.ToLowerInvariant(),
+ Password = password,
+ EftSave = new EftSave()
+ {
+ Edition = edition,
+ PvE = new EftProfile()
+ {
+ Savage = default,
+ Pmc = default,
+ Suites = [],
+ ShouldWipe = true
+ },
+ PvP = new EftProfile()
+ {
+ Savage = default,
+ Pmc = default,
+ Suites = [],
+ ShouldWipe = true
+ }
+ }
+ };
+
+ FuyuDatabase.Accounts.AddAccount(account);
+ WriteAccountToDisk(account);
+
+ return ERegisterStatus.Success;
+ }
+
+ public static void WriteAccountToDisk(Account account)
+ {
+ VFS.WriteTextFile(
+ $"{FuyuDatabase.Accounts.GetPath()}{account.Id}.json",
+ Json.Stringify(account));
+ }
+ }
+}
\ No newline at end of file
diff --git a/Fuyu.Tests/EndToEnd/BackendTest.cs b/Fuyu.Tests/EndToEnd/BackendTest.cs
index 929672b..476e6a4 100644
--- a/Fuyu.Tests/EndToEnd/BackendTest.cs
+++ b/Fuyu.Tests/EndToEnd/BackendTest.cs
@@ -8,30 +8,85 @@
using Fuyu.Platform.Common.Serialization;
using Fuyu.Platform.Server;
using Fuyu.Platform.Server.Databases;
+using Fuyu.Platform.Server.Services.Fuyu;
+using Fuyu.Platform.Server.Behaviours.EFT;
+using Fuyu.Platform.Common.Models.Fuyu.Requests;
namespace Fuyu.Tests.EndToEnd
{
[TestClass]
public class BackendTest
{
- private static HttpClient _client;
+ private static HttpClient _fuyuClient;
+ private static HttpClient _eftMainClient;
[AssemblyInitialize]
public static void AssemblyInitialize(TestContext testContext)
{
- _client = new HttpClient("http://localhost:8000", "test");
-
+ // setup databases
FuyuDatabase.Load();
EftDatabase.Load();
+ // setup servers
ServerManager.LoadAll();
ServerManager.StartAll();
+
+ // register fake account
+ AccountService.RegisterAccount("test-username", "test-password", "unheard");
+ var sessionId = AccountService.LoginAccount("test-username", "test-password");
+
+ // create request clients
+ _fuyuClient = new HttpClient("http://localhost:8000");
+ _eftMainClient = new HttpClient("http://localhost:8001", sessionId);
+ }
+
+ [TestMethod]
+ public async Task TestAccountRegister()
+ {
+ // get request data
+ var request = new AccountRegisterRequest()
+ {
+ Username = "senko-san",
+ Password = "test-password",
+ Edition = "unheard"
+ };
+
+ // get request body
+ var json = Json.Stringify(request);
+ var body = Encoding.UTF8.GetBytes(json);
+
+ // get response
+ var data = await _fuyuClient.PostAsync("/account/register", body);
+ var result = Encoding.UTF8.GetString(data);
+
+ Assert.IsFalse(string.IsNullOrEmpty(result));
+ }
+
+ [TestMethod]
+ public async Task TestLoginCreate()
+ {
+ // get request data
+ var request = new AccountLoginRequest()
+ {
+ Username = "senko-san",
+ Password = "test-password"
+ };
+
+ // get request body
+ var json = Json.Stringify(request);
+ var body = Encoding.UTF8.GetBytes(json);
+
+ // get response
+ var data = await _fuyuClient.PostAsync("/account/login", body);
+ var result = Encoding.UTF8.GetString(data);
+
+ Assert.IsFalse(string.IsNullOrEmpty(result));
}
[TestMethod]
public async Task TestClientAccountCustomization()
{
- var data = await _client.GetAsync("/client/account/customization");
+ var data = await _eftMainClient.GetAsync("/client/account/customization");
var result = Encoding.UTF8.GetString(data);
Assert.IsFalse(string.IsNullOrEmpty(result));
@@ -40,7 +95,7 @@ public async Task TestClientAccountCustomization()
[TestMethod]
public async Task TestClientAchievementList()
{
- var data = await _client.GetAsync("/client/achievement/list");
+ var data = await _eftMainClient.GetAsync("/client/achievement/list");
var result = Encoding.UTF8.GetString(data);
Assert.IsFalse(string.IsNullOrEmpty(result));
@@ -49,7 +104,7 @@ public async Task TestClientAchievementList()
[TestMethod]
public async Task TestClientAchievementStatistic()
{
- var data = await _client.GetAsync("/client/achievement/statistic");
+ var data = await _eftMainClient.GetAsync("/client/achievement/statistic");
var result = Encoding.UTF8.GetString(data);
Assert.IsFalse(string.IsNullOrEmpty(result));
@@ -58,7 +113,7 @@ public async Task TestClientAchievementStatistic()
[TestMethod]
public async Task TestClientBuildList()
{
- var data = await _client.GetAsync("/client/builds/list");
+ var data = await _eftMainClient.GetAsync("/client/builds/list");
var result = Encoding.UTF8.GetString(data);
Assert.IsFalse(string.IsNullOrEmpty(result));
@@ -67,7 +122,7 @@ public async Task TestClientBuildList()
[TestMethod]
public async Task TestClientCheckVersion()
{
- var data = await _client.GetAsync("/client/checkVersion");
+ var data = await _eftMainClient.GetAsync("/client/checkVersion");
var result = Encoding.UTF8.GetString(data);
Assert.IsFalse(string.IsNullOrEmpty(result));
@@ -76,7 +131,7 @@ public async Task TestClientCheckVersion()
[TestMethod]
public async Task TestClientCustomization()
{
- var data = await _client.GetAsync("/client/customization");
+ var data = await _eftMainClient.GetAsync("/client/customization");
var result = Encoding.UTF8.GetString(data);
Assert.IsFalse(string.IsNullOrEmpty(result));
@@ -85,7 +140,7 @@ public async Task TestClientCustomization()
[TestMethod]
public async Task TestClientTradingCustomizationStorage()
{
- var data = await _client.GetAsync("/client/trading/customization/storage");
+ var data = await _eftMainClient.GetAsync("/client/trading/customization/storage");
var result = Encoding.UTF8.GetString(data);
Assert.IsFalse(string.IsNullOrEmpty(result));
@@ -94,7 +149,7 @@ public async Task TestClientTradingCustomizationStorage()
[TestMethod]
public async Task TestClientFriendList()
{
- var data = await _client.GetAsync("/client/friend/list");
+ var data = await _eftMainClient.GetAsync("/client/friend/list");
var result = Encoding.UTF8.GetString(data);
Assert.IsFalse(string.IsNullOrEmpty(result));
@@ -103,7 +158,7 @@ public async Task TestClientFriendList()
[TestMethod]
public async Task TestClientFriendRequestListInbox()
{
- var data = await _client.GetAsync("/client/friend/request/list/inbox");
+ var data = await _eftMainClient.GetAsync("/client/friend/request/list/inbox");
var result = Encoding.UTF8.GetString(data);
Assert.IsFalse(string.IsNullOrEmpty(result));
@@ -112,7 +167,7 @@ public async Task TestClientFriendRequestListInbox()
[TestMethod]
public async Task TestClientFriendRequestListOutbox()
{
- var data = await _client.GetAsync("/client/friend/request/list/outbox");
+ var data = await _eftMainClient.GetAsync("/client/friend/request/list/outbox");
var result = Encoding.UTF8.GetString(data);
Assert.IsFalse(string.IsNullOrEmpty(result));
@@ -139,7 +194,7 @@ public async Task TestClientGameBotGenerate()
var body = Encoding.UTF8.GetBytes(json);
// get response
- var data = await _client.PostAsync("/client/game/bot/generate", body);
+ var data = await _eftMainClient.PostAsync("/client/game/bot/generate", body);
var result = Encoding.UTF8.GetString(data);
Assert.IsFalse(string.IsNullOrEmpty(result));
@@ -148,7 +203,7 @@ public async Task TestClientGameBotGenerate()
[TestMethod]
public async Task TestClientGameConfig()
{
- var data = await _client.GetAsync("/client/game/config");
+ var data = await _eftMainClient.GetAsync("/client/game/config");
var result = Encoding.UTF8.GetString(data);
Assert.IsFalse(string.IsNullOrEmpty(result));
@@ -157,7 +212,7 @@ public async Task TestClientGameConfig()
[TestMethod]
public async Task TestClientGameKeepalive()
{
- var data = await _client.GetAsync("/client/game/keepalive");
+ var data = await _eftMainClient.GetAsync("/client/game/keepalive");
var result = Encoding.UTF8.GetString(data);
Assert.IsFalse(string.IsNullOrEmpty(result));
@@ -166,7 +221,7 @@ public async Task TestClientGameKeepalive()
[TestMethod]
public async Task TestClientLogout()
{
- var data = await _client.GetAsync("/client/game/logout");
+ var data = await _eftMainClient.GetAsync("/client/game/logout");
var result = Encoding.UTF8.GetString(data);
Assert.IsFalse(string.IsNullOrEmpty(result));
@@ -175,7 +230,7 @@ public async Task TestClientLogout()
[TestMethod]
public async Task TestClientGameMode()
{
- var data = await _client.GetAsync("/client/game/mode");
+ var data = await _eftMainClient.GetAsync("/client/game/mode");
var result = Encoding.UTF8.GetString(data);
Assert.IsFalse(string.IsNullOrEmpty(result));
@@ -198,7 +253,7 @@ public async Task TestClientGameProfileCreate()
var body = Encoding.UTF8.GetBytes(json);
// get response
- var data = await _client.PostAsync("/client/game/profile/create", body);
+ var data = await _eftMainClient.PostAsync("/client/game/profile/create", body);
var result = Encoding.UTF8.GetString(data);
Assert.IsFalse(string.IsNullOrEmpty(result));
@@ -207,7 +262,7 @@ public async Task TestClientGameProfileCreate()
[TestMethod]
public async Task TestClientGameProfileList()
{
- var data = await _client.GetAsync("/client/game/profile/list");
+ var data = await _eftMainClient.GetAsync("/client/game/profile/list");
var result = Encoding.UTF8.GetString(data);
Assert.IsFalse(string.IsNullOrEmpty(result));
@@ -216,7 +271,7 @@ public async Task TestClientGameProfileList()
[TestMethod]
public async Task TestClientGameProfileNicknameReserved()
{
- var data = await _client.GetAsync("/client/game/profile/nickname/reserved");
+ var data = await _eftMainClient.GetAsync("/client/game/profile/nickname/reserved");
var result = Encoding.UTF8.GetString(data);
Assert.IsFalse(string.IsNullOrEmpty(result));
@@ -236,7 +291,7 @@ public async Task TestClientGameProfileNicknameValidate()
var body = Encoding.UTF8.GetBytes(json);
// get response
- var data = await _client.PostAsync("/client/game/profile/nickname/validate", body);
+ var data = await _eftMainClient.PostAsync("/client/game/profile/nickname/validate", body);
var result = Encoding.UTF8.GetString(data);
Assert.IsFalse(string.IsNullOrEmpty(result));
@@ -245,7 +300,7 @@ public async Task TestClientGameProfileNicknameValidate()
[TestMethod]
public async Task TestClientGameProfileSelect()
{
- var data = await _client.GetAsync("/client/game/profile/select");
+ var data = await _eftMainClient.GetAsync("/client/game/profile/select");
var result = Encoding.UTF8.GetString(data);
Assert.IsFalse(string.IsNullOrEmpty(result));
@@ -254,7 +309,7 @@ public async Task TestClientGameProfileSelect()
[TestMethod]
public async Task TestClientGameStart()
{
- var data = await _client.GetAsync("/client/game/start");
+ var data = await _eftMainClient.GetAsync("/client/game/start");
var result = Encoding.UTF8.GetString(data);
Assert.IsFalse(string.IsNullOrEmpty(result));
@@ -263,7 +318,7 @@ public async Task TestClientGameStart()
[TestMethod]
public async Task TestClientGameVersionValidate()
{
- var data = await _client.GetAsync("/client/game/version/validate");
+ var data = await _eftMainClient.GetAsync("/client/game/version/validate");
var result = Encoding.UTF8.GetString(data);
Assert.IsFalse(string.IsNullOrEmpty(result));
@@ -272,7 +327,7 @@ public async Task TestClientGameVersionValidate()
[TestMethod]
public async Task TestClientGetMetricsConfig()
{
- var data = await _client.GetAsync("/client/getMetricsConfig");
+ var data = await _eftMainClient.GetAsync("/client/getMetricsConfig");
var result = Encoding.UTF8.GetString(data);
Assert.IsFalse(string.IsNullOrEmpty(result));
@@ -281,7 +336,7 @@ public async Task TestClientGetMetricsConfig()
[TestMethod]
public async Task TestClientGlobals()
{
- var data = await _client.GetAsync("/client/globals");
+ var data = await _eftMainClient.GetAsync("/client/globals");
var result = Encoding.UTF8.GetString(data);
Assert.IsFalse(string.IsNullOrEmpty(result));
@@ -290,7 +345,7 @@ public async Task TestClientGlobals()
[TestMethod]
public async Task TestClientHandbookTemplates()
{
- var data = await _client.GetAsync("/client/handbook/templates");
+ var data = await _eftMainClient.GetAsync("/client/handbook/templates");
var result = Encoding.UTF8.GetString(data);
Assert.IsFalse(string.IsNullOrEmpty(result));
@@ -299,7 +354,7 @@ public async Task TestClientHandbookTemplates()
[TestMethod]
public async Task TestClientHideoutAreas()
{
- var data = await _client.GetAsync("/client/hideout/areas");
+ var data = await _eftMainClient.GetAsync("/client/hideout/areas");
var result = Encoding.UTF8.GetString(data);
Assert.IsFalse(string.IsNullOrEmpty(result));
@@ -308,7 +363,7 @@ public async Task TestClientHideoutAreas()
[TestMethod]
public async Task TestClientProductionRecipes()
{
- var data = await _client.GetAsync("/client/hideout/production/recipes");
+ var data = await _eftMainClient.GetAsync("/client/hideout/production/recipes");
var result = Encoding.UTF8.GetString(data);
Assert.IsFalse(string.IsNullOrEmpty(result));
@@ -317,7 +372,7 @@ public async Task TestClientProductionRecipes()
[TestMethod]
public async Task TestClientHideoutQteList()
{
- var data = await _client.GetAsync("/client/hideout/qte/list");
+ var data = await _eftMainClient.GetAsync("/client/hideout/qte/list");
var result = Encoding.UTF8.GetString(data);
Assert.IsFalse(string.IsNullOrEmpty(result));
@@ -326,7 +381,7 @@ public async Task TestClientHideoutQteList()
[TestMethod]
public async Task TestClientHideoutSettings()
{
- var data = await _client.GetAsync("/client/hideout/settings");
+ var data = await _eftMainClient.GetAsync("/client/hideout/settings");
var result = Encoding.UTF8.GetString(data);
Assert.IsFalse(string.IsNullOrEmpty(result));
@@ -335,7 +390,7 @@ public async Task TestClientHideoutSettings()
[TestMethod]
public async Task TestClientItems()
{
- var data = await _client.GetAsync("/client/items");
+ var data = await _eftMainClient.GetAsync("/client/items");
var result = Encoding.UTF8.GetString(data);
Assert.IsFalse(string.IsNullOrEmpty(result));
@@ -344,7 +399,7 @@ public async Task TestClientItems()
[TestMethod]
public async Task TestClientLanguages()
{
- var data = await _client.GetAsync("/client/languages");
+ var data = await _eftMainClient.GetAsync("/client/languages");
var result = Encoding.UTF8.GetString(data);
Assert.IsFalse(string.IsNullOrEmpty(result));
@@ -353,7 +408,7 @@ public async Task TestClientLanguages()
[TestMethod]
public async Task TestClientLocaleCh()
{
- var data = await _client.GetAsync("/client/locale/ch");
+ var data = await _eftMainClient.GetAsync("/client/locale/ch");
var result = Encoding.UTF8.GetString(data);
Assert.IsFalse(string.IsNullOrEmpty(result));
@@ -362,7 +417,7 @@ public async Task TestClientLocaleCh()
[TestMethod]
public async Task TestClientLocaleCz()
{
- var data = await _client.GetAsync("/client/locale/cz");
+ var data = await _eftMainClient.GetAsync("/client/locale/cz");
var result = Encoding.UTF8.GetString(data);
Assert.IsFalse(string.IsNullOrEmpty(result));
@@ -371,7 +426,7 @@ public async Task TestClientLocaleCz()
[TestMethod]
public async Task TestClientLocaleEn()
{
- var data = await _client.GetAsync("/client/locale/en");
+ var data = await _eftMainClient.GetAsync("/client/locale/en");
var result = Encoding.UTF8.GetString(data);
Assert.IsFalse(string.IsNullOrEmpty(result));
@@ -380,7 +435,7 @@ public async Task TestClientLocaleEn()
[TestMethod]
public async Task TestClientLocaleEs()
{
- var data = await _client.GetAsync("/client/locale/es");
+ var data = await _eftMainClient.GetAsync("/client/locale/es");
var result = Encoding.UTF8.GetString(data);
Assert.IsFalse(string.IsNullOrEmpty(result));
@@ -389,7 +444,7 @@ public async Task TestClientLocaleEs()
[TestMethod]
public async Task TestClientLocaleEsMx()
{
- var data = await _client.GetAsync("/client/locale/es-mx");
+ var data = await _eftMainClient.GetAsync("/client/locale/es-mx");
var result = Encoding.UTF8.GetString(data);
Assert.IsFalse(string.IsNullOrEmpty(result));
@@ -398,7 +453,7 @@ public async Task TestClientLocaleEsMx()
[TestMethod]
public async Task TestClientLocaleFr()
{
- var data = await _client.GetAsync("/client/locale/fr");
+ var data = await _eftMainClient.GetAsync("/client/locale/fr");
var result = Encoding.UTF8.GetString(data);
Assert.IsFalse(string.IsNullOrEmpty(result));
@@ -407,7 +462,7 @@ public async Task TestClientLocaleFr()
[TestMethod]
public async Task TestClientLocaleGe()
{
- var data = await _client.GetAsync("/client/locale/ge");
+ var data = await _eftMainClient.GetAsync("/client/locale/ge");
var result = Encoding.UTF8.GetString(data);
Assert.IsFalse(string.IsNullOrEmpty(result));
@@ -416,7 +471,7 @@ public async Task TestClientLocaleGe()
[TestMethod]
public async Task TestClientLocaleHu()
{
- var data = await _client.GetAsync("/client/locale/hu");
+ var data = await _eftMainClient.GetAsync("/client/locale/hu");
var result = Encoding.UTF8.GetString(data);
Assert.IsFalse(string.IsNullOrEmpty(result));
@@ -425,7 +480,7 @@ public async Task TestClientLocaleHu()
[TestMethod]
public async Task TestClientLocaleIt()
{
- var data = await _client.GetAsync("/client/locale/it");
+ var data = await _eftMainClient.GetAsync("/client/locale/it");
var result = Encoding.UTF8.GetString(data);
Assert.IsFalse(string.IsNullOrEmpty(result));
@@ -434,7 +489,7 @@ public async Task TestClientLocaleIt()
[TestMethod]
public async Task TestClientLocaleJp()
{
- var data = await _client.GetAsync("/client/locale/jp");
+ var data = await _eftMainClient.GetAsync("/client/locale/jp");
var result = Encoding.UTF8.GetString(data);
Assert.IsFalse(string.IsNullOrEmpty(result));
@@ -443,7 +498,7 @@ public async Task TestClientLocaleJp()
[TestMethod]
public async Task TestClientLocaleKr()
{
- var data = await _client.GetAsync("/client/locale/kr");
+ var data = await _eftMainClient.GetAsync("/client/locale/kr");
var result = Encoding.UTF8.GetString(data);
Assert.IsFalse(string.IsNullOrEmpty(result));
@@ -452,7 +507,7 @@ public async Task TestClientLocaleKr()
[TestMethod]
public async Task TestClientLocalePo()
{
- var data = await _client.GetAsync("/client/locale/po");
+ var data = await _eftMainClient.GetAsync("/client/locale/po");
var result = Encoding.UTF8.GetString(data);
Assert.IsFalse(string.IsNullOrEmpty(result));
@@ -461,7 +516,7 @@ public async Task TestClientLocalePo()
[TestMethod]
public async Task TestClientLocalePl()
{
- var data = await _client.GetAsync("/client/locale/pl");
+ var data = await _eftMainClient.GetAsync("/client/locale/pl");
var result = Encoding.UTF8.GetString(data);
Assert.IsFalse(string.IsNullOrEmpty(result));
@@ -470,7 +525,7 @@ public async Task TestClientLocalePl()
[TestMethod]
public async Task TestClientLocaleRo()
{
- var data = await _client.GetAsync("/client/locale/ro");
+ var data = await _eftMainClient.GetAsync("/client/locale/ro");
var result = Encoding.UTF8.GetString(data);
Assert.IsFalse(string.IsNullOrEmpty(result));
@@ -479,7 +534,7 @@ public async Task TestClientLocaleRo()
[TestMethod]
public async Task TestClientLocaleRu()
{
- var data = await _client.GetAsync("/client/locale/ru");
+ var data = await _eftMainClient.GetAsync("/client/locale/ru");
var result = Encoding.UTF8.GetString(data);
Assert.IsFalse(string.IsNullOrEmpty(result));
@@ -488,7 +543,7 @@ public async Task TestClientLocaleRu()
[TestMethod]
public async Task TestClientLocaleSk()
{
- var data = await _client.GetAsync("/client/locale/sk");
+ var data = await _eftMainClient.GetAsync("/client/locale/sk");
var result = Encoding.UTF8.GetString(data);
Assert.IsFalse(string.IsNullOrEmpty(result));
@@ -497,7 +552,7 @@ public async Task TestClientLocaleSk()
[TestMethod]
public async Task TestClientLocaleTu()
{
- var data = await _client.GetAsync("/client/locale/tu");
+ var data = await _eftMainClient.GetAsync("/client/locale/tu");
var result = Encoding.UTF8.GetString(data);
Assert.IsFalse(string.IsNullOrEmpty(result));
@@ -506,7 +561,7 @@ public async Task TestClientLocaleTu()
[TestMethod]
public async Task TestClientLocalGameWeather()
{
- var data = await _client.GetAsync("/client/localGame/weather");
+ var data = await _eftMainClient.GetAsync("/client/localGame/weather");
var result = Encoding.UTF8.GetString(data);
Assert.IsFalse(string.IsNullOrEmpty(result));
@@ -515,7 +570,7 @@ public async Task TestClientLocalGameWeather()
[TestMethod]
public async Task TestClientLocations()
{
- var data = await _client.GetAsync("/client/locations");
+ var data = await _eftMainClient.GetAsync("/client/locations");
var result = Encoding.UTF8.GetString(data);
Assert.IsFalse(string.IsNullOrEmpty(result));
@@ -524,7 +579,7 @@ public async Task TestClientLocations()
[TestMethod]
public async Task TestClientMailDialogList()
{
- var data = await _client.GetAsync("/client/mail/dialog/list");
+ var data = await _eftMainClient.GetAsync("/client/mail/dialog/list");
var result = Encoding.UTF8.GetString(data);
Assert.IsFalse(string.IsNullOrEmpty(result));
@@ -533,7 +588,7 @@ public async Task TestClientMailDialogList()
[TestMethod]
public async Task TestClientMatchGroupCurrent()
{
- var data = await _client.GetAsync("/client/match/group/current");
+ var data = await _eftMainClient.GetAsync("/client/match/group/current");
var result = Encoding.UTF8.GetString(data);
Assert.IsFalse(string.IsNullOrEmpty(result));
@@ -542,7 +597,7 @@ public async Task TestClientMatchGroupCurrent()
[TestMethod]
public async Task TestClientMatchGroupExitFromMenu()
{
- var data = await _client.GetAsync("/client/match/group/exit_from_menu");
+ var data = await _eftMainClient.GetAsync("/client/match/group/exit_from_menu");
var result = Encoding.UTF8.GetString(data);
Assert.IsFalse(string.IsNullOrEmpty(result));
@@ -551,7 +606,7 @@ public async Task TestClientMatchGroupExitFromMenu()
[TestMethod]
public async Task TestClientMatchGroupInviteCancelAll()
{
- var data = await _client.GetAsync("/client/match/group/invite/cancel-all");
+ var data = await _eftMainClient.GetAsync("/client/match/group/invite/cancel-all");
var result = Encoding.UTF8.GetString(data);
Assert.IsFalse(string.IsNullOrEmpty(result));
@@ -560,7 +615,7 @@ public async Task TestClientMatchGroupInviteCancelAll()
[TestMethod]
public async Task TestClientMatchLocalEnd()
{
- var data = await _client.GetAsync("/client/match/local/end");
+ var data = await _eftMainClient.GetAsync("/client/match/local/end");
var result = Encoding.UTF8.GetString(data);
Assert.IsFalse(string.IsNullOrEmpty(result));
@@ -583,7 +638,7 @@ public async Task TestClientMatchLocalStart()
var body = Encoding.UTF8.GetBytes(json);
// get response
- var data = await _client.PostAsync("/client/match/local/start", body);
+ var data = await _eftMainClient.PostAsync("/client/match/local/start", body);
var result = Encoding.UTF8.GetString(data);
Assert.IsFalse(string.IsNullOrEmpty(result));
@@ -592,7 +647,7 @@ public async Task TestClientMatchLocalStart()
[TestMethod]
public async Task TestClientMenuLocaleCh()
{
- var data = await _client.GetAsync("/client/menu/locale/ch");
+ var data = await _eftMainClient.GetAsync("/client/menu/locale/ch");
var result = Encoding.UTF8.GetString(data);
Assert.IsFalse(string.IsNullOrEmpty(result));
@@ -601,7 +656,7 @@ public async Task TestClientMenuLocaleCh()
[TestMethod]
public async Task TestClientMenuLocaleCz()
{
- var data = await _client.GetAsync("/client/menu/locale/cz");
+ var data = await _eftMainClient.GetAsync("/client/menu/locale/cz");
var result = Encoding.UTF8.GetString(data);
Assert.IsFalse(string.IsNullOrEmpty(result));
@@ -610,7 +665,7 @@ public async Task TestClientMenuLocaleCz()
[TestMethod]
public async Task TestClientMenuLocaleEn()
{
- var data = await _client.GetAsync("/client/menu/locale/en");
+ var data = await _eftMainClient.GetAsync("/client/menu/locale/en");
var result = Encoding.UTF8.GetString(data);
Assert.IsFalse(string.IsNullOrEmpty(result));
@@ -619,7 +674,7 @@ public async Task TestClientMenuLocaleEn()
[TestMethod]
public async Task TestClientMenuLocaleEs()
{
- var data = await _client.GetAsync("/client/menu/locale/es");
+ var data = await _eftMainClient.GetAsync("/client/menu/locale/es");
var result = Encoding.UTF8.GetString(data);
Assert.IsFalse(string.IsNullOrEmpty(result));
@@ -628,7 +683,7 @@ public async Task TestClientMenuLocaleEs()
[TestMethod]
public async Task TestClientMenuLocaleEsMx()
{
- var data = await _client.GetAsync("/client/menu/locale/es-mx");
+ var data = await _eftMainClient.GetAsync("/client/menu/locale/es-mx");
var result = Encoding.UTF8.GetString(data);
Assert.IsFalse(string.IsNullOrEmpty(result));
@@ -637,7 +692,7 @@ public async Task TestClientMenuLocaleEsMx()
[TestMethod]
public async Task TestClientMenuLocaleFr()
{
- var data = await _client.GetAsync("/client/menu/locale/fr");
+ var data = await _eftMainClient.GetAsync("/client/menu/locale/fr");
var result = Encoding.UTF8.GetString(data);
Assert.IsFalse(string.IsNullOrEmpty(result));
@@ -646,7 +701,7 @@ public async Task TestClientMenuLocaleFr()
[TestMethod]
public async Task TestClientMenuLocaleGe()
{
- var data = await _client.GetAsync("/client/menu/locale/ge");
+ var data = await _eftMainClient.GetAsync("/client/menu/locale/ge");
var result = Encoding.UTF8.GetString(data);
Assert.IsFalse(string.IsNullOrEmpty(result));
@@ -655,7 +710,7 @@ public async Task TestClientMenuLocaleGe()
[TestMethod]
public async Task TestClientMenuLocaleHu()
{
- var data = await _client.GetAsync("/client/menu/locale/hu");
+ var data = await _eftMainClient.GetAsync("/client/menu/locale/hu");
var result = Encoding.UTF8.GetString(data);
Assert.IsFalse(string.IsNullOrEmpty(result));
@@ -664,7 +719,7 @@ public async Task TestClientMenuLocaleHu()
[TestMethod]
public async Task TestClientMenuLocaleIt()
{
- var data = await _client.GetAsync("/client/menu/locale/it");
+ var data = await _eftMainClient.GetAsync("/client/menu/locale/it");
var result = Encoding.UTF8.GetString(data);
Assert.IsFalse(string.IsNullOrEmpty(result));
@@ -673,7 +728,7 @@ public async Task TestClientMenuLocaleIt()
[TestMethod]
public async Task TestClientMenuLocaleJp()
{
- var data = await _client.GetAsync("/client/menu/locale/jp");
+ var data = await _eftMainClient.GetAsync("/client/menu/locale/jp");
var result = Encoding.UTF8.GetString(data);
Assert.IsFalse(string.IsNullOrEmpty(result));
@@ -682,7 +737,7 @@ public async Task TestClientMenuLocaleJp()
[TestMethod]
public async Task TestClientMenuLocaleKr()
{
- var data = await _client.GetAsync("/client/menu/locale/kr");
+ var data = await _eftMainClient.GetAsync("/client/menu/locale/kr");
var result = Encoding.UTF8.GetString(data);
Assert.IsFalse(string.IsNullOrEmpty(result));
@@ -691,7 +746,7 @@ public async Task TestClientMenuLocaleKr()
[TestMethod]
public async Task TestClientMenuLocalePo()
{
- var data = await _client.GetAsync("/client/menu/locale/po");
+ var data = await _eftMainClient.GetAsync("/client/menu/locale/po");
var result = Encoding.UTF8.GetString(data);
Assert.IsFalse(string.IsNullOrEmpty(result));
@@ -700,7 +755,7 @@ public async Task TestClientMenuLocalePo()
[TestMethod]
public async Task TestClientMenuLocalePl()
{
- var data = await _client.GetAsync("/client/menu/locale/pl");
+ var data = await _eftMainClient.GetAsync("/client/menu/locale/pl");
var result = Encoding.UTF8.GetString(data);
Assert.IsFalse(string.IsNullOrEmpty(result));
@@ -709,7 +764,7 @@ public async Task TestClientMenuLocalePl()
[TestMethod]
public async Task TestClientMenuLocaleRo()
{
- var data = await _client.GetAsync("/client/menu/locale/ro");
+ var data = await _eftMainClient.GetAsync("/client/menu/locale/ro");
var result = Encoding.UTF8.GetString(data);
Assert.IsFalse(string.IsNullOrEmpty(result));
@@ -718,7 +773,7 @@ public async Task TestClientMenuLocaleRo()
[TestMethod]
public async Task TestClientMenuLocaleRu()
{
- var data = await _client.GetAsync("/client/menu/locale/ru");
+ var data = await _eftMainClient.GetAsync("/client/menu/locale/ru");
var result = Encoding.UTF8.GetString(data);
Assert.IsFalse(string.IsNullOrEmpty(result));
@@ -727,7 +782,7 @@ public async Task TestClientMenuLocaleRu()
[TestMethod]
public async Task TestClientMenuLocaleSk()
{
- var data = await _client.GetAsync("/client/menu/locale/sk");
+ var data = await _eftMainClient.GetAsync("/client/menu/locale/sk");
var result = Encoding.UTF8.GetString(data);
Assert.IsFalse(string.IsNullOrEmpty(result));
@@ -736,7 +791,7 @@ public async Task TestClientMenuLocaleSk()
[TestMethod]
public async Task TestClientMenuLocaleTu()
{
- var data = await _client.GetAsync("/client/menu/locale/tu");
+ var data = await _eftMainClient.GetAsync("/client/menu/locale/tu");
var result = Encoding.UTF8.GetString(data);
Assert.IsFalse(string.IsNullOrEmpty(result));
@@ -745,7 +800,7 @@ public async Task TestClientMenuLocaleTu()
[TestMethod]
public async Task TestNotifierChannelCreate()
{
- var data = await _client.GetAsync("/client/notifier/channel/create");
+ var data = await _eftMainClient.GetAsync("/client/notifier/channel/create");
var result = Encoding.UTF8.GetString(data);
Assert.IsFalse(string.IsNullOrEmpty(result));
@@ -754,7 +809,7 @@ public async Task TestNotifierChannelCreate()
[TestMethod]
public async Task TestProfileStatus()
{
- var data = await _client.GetAsync("/client/profile/status");
+ var data = await _eftMainClient.GetAsync("/client/profile/status");
var result = Encoding.UTF8.GetString(data);
Assert.IsFalse(string.IsNullOrEmpty(result));
@@ -763,7 +818,7 @@ public async Task TestProfileStatus()
[TestMethod]
public async Task TestPutMetrics()
{
- var data = await _client.GetAsync("/client/putMetrics");
+ var data = await _eftMainClient.GetAsync("/client/putMetrics");
var result = Encoding.UTF8.GetString(data);
Assert.IsFalse(string.IsNullOrEmpty(result));
@@ -772,7 +827,7 @@ public async Task TestPutMetrics()
[TestMethod]
public async Task TestProfileSettings()
{
- var data = await _client.GetAsync("/client/profile/settings");
+ var data = await _eftMainClient.GetAsync("/client/profile/settings");
var result = Encoding.UTF8.GetString(data);
Assert.IsFalse(string.IsNullOrEmpty(result));
@@ -781,7 +836,7 @@ public async Task TestProfileSettings()
[TestMethod]
public async Task TestClientQuestList()
{
- var data = await _client.GetAsync("/client/quest/list");
+ var data = await _eftMainClient.GetAsync("/client/quest/list");
var result = Encoding.UTF8.GetString(data);
Assert.IsFalse(string.IsNullOrEmpty(result));
@@ -790,7 +845,7 @@ public async Task TestClientQuestList()
[TestMethod]
public async Task TestClientRaidConfiguration()
{
- var data = await _client.GetAsync("/client/raid/configuration");
+ var data = await _eftMainClient.GetAsync("/client/raid/configuration");
var result = Encoding.UTF8.GetString(data);
Assert.IsFalse(string.IsNullOrEmpty(result));
@@ -799,7 +854,7 @@ public async Task TestClientRaidConfiguration()
[TestMethod]
public async Task TestClientRepeatableQuestActivityPeriods()
{
- var data = await _client.GetAsync("/client/repeatalbeQuests/activityPeriods");
+ var data = await _eftMainClient.GetAsync("/client/repeatalbeQuests/activityPeriods");
var result = Encoding.UTF8.GetString(data);
Assert.IsFalse(string.IsNullOrEmpty(result));
@@ -808,7 +863,7 @@ public async Task TestClientRepeatableQuestActivityPeriods()
[TestMethod]
public async Task TestClientServerList()
{
- var data = await _client.GetAsync("/client/server/list");
+ var data = await _eftMainClient.GetAsync("/client/server/list");
var result = Encoding.UTF8.GetString(data);
Assert.IsFalse(string.IsNullOrEmpty(result));
@@ -817,7 +872,7 @@ public async Task TestClientServerList()
[TestMethod]
public async Task TestClientSettings()
{
- var data = await _client.GetAsync("/client/settings");
+ var data = await _eftMainClient.GetAsync("/client/settings");
var result = Encoding.UTF8.GetString(data);
Assert.IsFalse(string.IsNullOrEmpty(result));
@@ -826,7 +881,7 @@ public async Task TestClientSettings()
[TestMethod]
public async Task TestClientSurvey()
{
- var data = await _client.GetAsync("/client/survey");
+ var data = await _eftMainClient.GetAsync("/client/survey");
var result = Encoding.UTF8.GetString(data);
Assert.IsFalse(string.IsNullOrEmpty(result));
@@ -835,7 +890,7 @@ public async Task TestClientSurvey()
[TestMethod]
public async Task TestClientTradingApiTraderSettings()
{
- var data = await _client.GetAsync("/client/trading/api/traderSettings");
+ var data = await _eftMainClient.GetAsync("/client/trading/api/traderSettings");
var result = Encoding.UTF8.GetString(data);
Assert.IsFalse(string.IsNullOrEmpty(result));
@@ -844,7 +899,7 @@ public async Task TestClientTradingApiTraderSettings()
[TestMethod]
public async Task TestClientWeather()
{
- var data = await _client.GetAsync("/client/weather");
+ var data = await _eftMainClient.GetAsync("/client/weather");
var result = Encoding.UTF8.GetString(data);
Assert.IsFalse(string.IsNullOrEmpty(result));