diff --git a/BlueWest.Data/BlueWest.Data.csproj b/BlueWest.Data/BlueWest.Data.csproj
index a0d6337..540b8e3 100644
--- a/BlueWest.Data/BlueWest.Data.csproj
+++ b/BlueWest.Data/BlueWest.Data.csproj
@@ -7,7 +7,7 @@
-
+
diff --git a/BlueWest.Data/Data/User.cs b/BlueWest.Data/Data/User.cs
index 6a9ba8e..f3eb6e2 100644
--- a/BlueWest.Data/Data/User.cs
+++ b/BlueWest.Data/Data/User.cs
@@ -11,7 +11,7 @@ namespace BlueWest.Data
[MapFrom(typeof(UserUpdateDto))]
public partial class User : DataObject
{
- [Key(1)]public int Id { get; set; } = -1;
+ [Key(1)]public int Id { get; } = -1;
[Key(2)]public string Name { get; set; } = "";
[Key(3)]public string Address { get; set; } = "";
@@ -21,8 +21,7 @@ namespace BlueWest.Data
[Key(6)]public double BTCAmount { get; set; } = 0;
[Key(7)]public double LTCAmount { get; set; } = 0;
- [IgnoreProperty]
- [Key(8)] public List FinanceTransactions { get; set; }
+ [IgnoreProperty] [Key(8)] public List FinanceTransactions { get; set; }
public User(int id, string name, string address, string btcAddress, string ltcAddress, double btcAmount, double ltcAmount, List financeTransactions)
{
@@ -36,6 +35,11 @@ namespace BlueWest.Data
FinanceTransactions = financeTransactions;
}
+ public void AddTransaction(FinanceTransaction financeTransaction)
+ {
+ FinanceTransactions.Add(financeTransaction);
+ }
+
}
}
diff --git a/BlueWest.Data/Data/UserUpdateDto.cs b/BlueWest.Data/Data/UserUpdateDto.cs
index 818c6a2..4f6f3fe 100644
--- a/BlueWest.Data/Data/UserUpdateDto.cs
+++ b/BlueWest.Data/Data/UserUpdateDto.cs
@@ -15,11 +15,7 @@ namespace BlueWest.Data
public double BTCAmount { get; set; }
public double LTCAmount { get; set; }
-
- public UserUpdateDto()
- {
-
- }
+
}
}
\ No newline at end of file
diff --git a/BlueWest.WebApi/Controllers/UserController.cs b/BlueWest.WebApi/Controllers/UserController.cs
index 420739c..148f58b 100644
--- a/BlueWest.WebApi/Controllers/UserController.cs
+++ b/BlueWest.WebApi/Controllers/UserController.cs
@@ -82,7 +82,7 @@ namespace BlueWest.WebApi.Controllers
[HttpPost]
public ActionResult AddOrModifyUser(UserUpdateDto userUpdateDto)
{
- var user = MemoryData.AddOrModify(userUpdateDto);
+ var user = MemoryData.AddOrModifyUser(userUpdateDto);
return CreatedAtRoute(nameof(GetUserById), new {userId = user.Id}, user);
}
diff --git a/BlueWest.WebApi/Program.cs b/BlueWest.WebApi/Program.cs
index 4be1a38..98c63ad 100644
--- a/BlueWest.WebApi/Program.cs
+++ b/BlueWest.WebApi/Program.cs
@@ -18,7 +18,20 @@ namespace BlueWest.WebApi
new EventManager(new FastDictionary>(10000));
private static ThreadServer _threadServer;
+
+ /*private static CSharpCompilation GenerateCode(string sourceCode)
+ {
+ var codeString = SourceText.From(sourceCode);
+ var parsedSyntaxTree = SyntaxFactory.ParseSyntaxTree(codeString, CSharpParseOptions.Default);
+ return CSharpCompilation.Create("Hello.dll",
+ new[] { parsedSyntaxTree },
+ references: ReferenceAssemblies.Net50, // install jared's Basic.Reference.Assemblies for this, otherwise, you are going to manually add the DLLs you want
+ options: new CSharpCompilationOptions(OutputKind.ConsoleApplication,
+
+ optimizationLevel: OptimizationLevel.Release));
+ }*/
+
public static IHost Host1 { get; private set; }
public static void Main(string[] args)
diff --git a/BlueWest/Data/MemoryData.cs b/BlueWest/Data/MemoryData.cs
index c6173d2..330c76f 100644
--- a/BlueWest/Data/MemoryData.cs
+++ b/BlueWest/Data/MemoryData.cs
@@ -55,8 +55,13 @@ namespace PerformanceSolution.Data
SaveUserList();
return true;
}
+ public static async Task AddUserAsync(User user) => await Task.Run(() => { AddOrModifyUser(user); });
+
+ private static int GetIndexById(int userId) => UserList.Users.FindIndex(row => row.Id == userId);
- public static void AddOrModify(User user)
+ private static void SaveUserList() => SaveUserList(UserList);
+
+ public static void AddOrModifyUser(User user)
{
var index = GetIndexById(user.Id);
if (index != -1)
@@ -71,29 +76,28 @@ namespace PerformanceSolution.Data
}
}
- public static User AddOrModify(UserUpdateDto userUpdateDto, int userId = -1)
+ public static User? AddOrModifyUser(UserUpdateDto userUpdateDto, int userId = -1)
{
var id = userId != -1 ? userId : UserList.Length + 1;
var index = GetIndexById(userId);
- User user = null;
+ User? user;
if (index != -1)
{
-
user = GetUserById(id);
+
+ if (user == null) return user;
- if (user != null)
- {
- UserList.Users[index] = user;
- SaveUserList();
- }
+ UserList.Users[index] = user;
+
+ SaveUserList();
}
else
{
user = new User(userUpdateDto);
- user.Id = id;
+
UserList.Users.Add(user);
SaveUserList();
@@ -104,12 +108,13 @@ namespace PerformanceSolution.Data
public static User? UpdateUser(int userId, UserUpdateDto userUpdate)
{
-
var index = GetIndexById(userId);
if (index == -1) return null;
var actualUser = GetUserById(userId);
+
+ if (actualUser == null) return null;
actualUser.Update(userUpdate);
@@ -120,56 +125,20 @@ namespace PerformanceSolution.Data
return actualUser;
}
- public static async Task AddUserAsync(User user)
- {
- await Task.Run(() => { AddOrModify(user); });
- }
-
-
- private static int GetIndexById(int userId)
- {
- return UserList.Users.FindIndex(row => row.Id == userId);
- }
-
- private static void SaveUserList()
- {
- SaveUserList(UserList);
- }
+
public static FinanceTransaction? AddFinanceTransaction(int userId, FinanceTransaction financeTransaction)
{
- var index = GetIndexById(userId);
-
- if (index < UserList.Users.Count)
- {
- if (financeTransaction.Id == 0)
- {
- financeTransaction.Id = UserList.Users[index].FinanceTransactions.Count;
- }
-
- if (financeTransaction.UserId == 0)
- {
- financeTransaction.UserId = UserList.Users[index].Id;
- }
-
- if (UserList.Users[index].FinanceTransactions == null)
- {
- UserList.Users[index].FinanceTransactions = new List();
- }
- UserList.Users[index].FinanceTransactions.Add(financeTransaction);
-
- SaveUserList();
-
- return financeTransaction;
- }
-
- return null;
- }
-
- public static void GenerateAdminAndSave()
- {
-
+ var user = GetUserById(userId);
+
+ if (user == null) return null;
+
+ user.AddTransaction(financeTransaction);
+
SaveUserList();
+
+ return financeTransaction;
+
}
private static UserList GenerateMockData()