diff --git a/OwnChar/Client/Data/Clients/CharactersApiClient.cs b/OwnChar/Api/Clients/CharactersApiClient.cs similarity index 60% rename from OwnChar/Client/Data/Clients/CharactersApiClient.cs rename to OwnChar/Api/Clients/CharactersApiClient.cs index 1127346..10832c8 100644 --- a/OwnChar/Client/Data/Clients/CharactersApiClient.cs +++ b/OwnChar/Api/Clients/CharactersApiClient.cs @@ -1,4 +1,4 @@ -namespace OwnChar.Client.Data.Clients; +namespace OwnChar.Api.Clients; public class CharactersApiClient(OwnCharApiClient client) { diff --git a/OwnChar/Api/Clients/GroupsApiClient.cs b/OwnChar/Api/Clients/GroupsApiClient.cs new file mode 100644 index 0000000..fbdc347 --- /dev/null +++ b/OwnChar/Api/Clients/GroupsApiClient.cs @@ -0,0 +1,43 @@ +using OwnChar.Api.Packets.General; +using OwnChar.Api.Packets.Groups; +using OwnChar.Data.Model.Client; + +namespace OwnChar.Api.Clients; + +public class GroupsApiClient(OwnCharApiClient client) +{ + public async Task GetGroup(long id) + { + var result = await client.MakeRequest>("/groups/get/byid", new(id)); + result.EnsureSuccess(); + return result.Result; + } + + public async Task> GetGroupsForProfile(long userProfileId) + { + var result = await client.MakeRequest("/groups/get", new() + { + ProfileId = userProfileId, + UseProfileId = true, + }); + result.EnsureSuccess(); + return result.Groups; + } + + public async Task> GetPublicGroups() + { + var result = await client.MakeRequest("/groups/get", new()); + result.EnsureSuccess(); + return result.Groups; + } + + public async Task> GetAllGroups() + { + var result = await client.MakeRequest("/groups/get", new() + { + IncludeNonPublic = true, + }); + result.EnsureSuccess(); + return result.Groups; + } +} diff --git a/OwnChar/Client/Data/Clients/LoginApiClient.cs b/OwnChar/Api/Clients/LoginApiClient.cs similarity index 80% rename from OwnChar/Client/Data/Clients/LoginApiClient.cs rename to OwnChar/Api/Clients/LoginApiClient.cs index 211a9bf..9bb50bb 100644 --- a/OwnChar/Client/Data/Clients/LoginApiClient.cs +++ b/OwnChar/Api/Clients/LoginApiClient.cs @@ -1,17 +1,16 @@ -using OwnChar.Base.Data; -using OwnChar.Base.Data.Requests; -using OwnChar.Base.Data.Responses; -using OwnChar.Client.Data.Model; +using OwnChar.Api.Packets; +using OwnChar.Api.Packets.General; +using OwnChar.Data.Model.Client; using Pilz.Cryptography; -namespace OwnChar.Client.Data.Clients; +namespace OwnChar.Api.Clients; public class LoginApiClient(OwnCharApiClient client) { public async Task Login(string username, SecureString password) { var result = await client.MakeRequest("/auth/login", new(username, password)); - + if (!string.IsNullOrEmpty(result.Secret) && result.Profile != null && result.Account != null) { client.AuthSecret = result.Secret; diff --git a/OwnChar/Client/Data/Clients/UsersApiClient.cs b/OwnChar/Api/Clients/UsersApiClient.cs similarity index 58% rename from OwnChar/Client/Data/Clients/UsersApiClient.cs rename to OwnChar/Api/Clients/UsersApiClient.cs index f1ddf28..bc6456a 100644 --- a/OwnChar/Client/Data/Clients/UsersApiClient.cs +++ b/OwnChar/Api/Clients/UsersApiClient.cs @@ -1,4 +1,4 @@ -namespace OwnChar.Client.Data.Clients; +namespace OwnChar.Api.Clients; public class UsersApiClient(OwnCharApiClient client) { diff --git a/OwnChar/Client/Data/OwnCharApiClient.cs b/OwnChar/Api/OwnCharApiClient.cs similarity index 76% rename from OwnChar/Client/Data/OwnCharApiClient.cs rename to OwnChar/Api/OwnCharApiClient.cs index e1feeba..3d4c51d 100644 --- a/OwnChar/Client/Data/OwnCharApiClient.cs +++ b/OwnChar/Api/OwnCharApiClient.cs @@ -1,9 +1,11 @@ -using OwnChar.Api.Exceptions; -using OwnChar.Base.Data; -using OwnChar.Client.Data.Clients; +using Newtonsoft.Json; +using OwnChar.Api.Clients; +using OwnChar.Api.Exceptions; +using OwnChar.Api.Packets; +using System.Net.Http.Headers; using System.Net.Http.Json; -namespace OwnChar.Client.Data; +namespace OwnChar.Api; public class OwnCharApiClient { @@ -46,17 +48,18 @@ public class OwnCharApiClient { if (await TryMakeRequest(requestUrl, request) is TResponse response) return response; - throw new ApiException(string.Format("The api request to \"{0}\" failed!", requestUrl)); + throw new ApiException(string.Format("The API request to \"{0}\" failed!", requestUrl)); } public async Task TryMakeRequest(string requestUrl, TRequest request) where TRequest : OwnCharRequest where TResponse : OwnCharResponse { request.AuthSecret = AuthSecret; - var res = await httpClient.PostAsJsonAsync(requestUrl, request); + var content = new StringContent(JsonHelpers.SerializeRequest(request)!, MediaTypeHeaderValue.Parse("application/json")); + var res = await httpClient.PostAsync(requestUrl, content); if (res.IsSuccessStatusCode) - return await res.Content.ReadFromJsonAsync(); + return JsonHelpers.DeserializeResponse(await res.Content.ReadAsStringAsync()); return null; } diff --git a/OwnChar/Api/Packets/General/DeleteObjectRequest.cs b/OwnChar/Api/Packets/General/DeleteObjectRequest.cs new file mode 100644 index 0000000..3ee0c5b --- /dev/null +++ b/OwnChar/Api/Packets/General/DeleteObjectRequest.cs @@ -0,0 +1,8 @@ +using OwnChar.Api.Packets; + +namespace OwnChar.Api.Packets.General; + +public class DeleteObjectRequest(long objectId) : OwnCharRequest +{ + public long ObjectId { get; } = objectId; +} diff --git a/OwnChar/Api/Packets/General/DeleteObjectResponse.cs b/OwnChar/Api/Packets/General/DeleteObjectResponse.cs new file mode 100644 index 0000000..5ac38e8 --- /dev/null +++ b/OwnChar/Api/Packets/General/DeleteObjectResponse.cs @@ -0,0 +1,7 @@ +using OwnChar.Api.Packets; + +namespace OwnChar.Api.Packets.General; + +public class DeleteObjectResponse : OwnCharResponse +{ +} diff --git a/OwnChar/Api/Packets/General/GetSingleObjectResponse.cs b/OwnChar/Api/Packets/General/GetSingleObjectResponse.cs new file mode 100644 index 0000000..c6c51c1 --- /dev/null +++ b/OwnChar/Api/Packets/General/GetSingleObjectResponse.cs @@ -0,0 +1,9 @@ +using OwnChar.Api.Packets; +using OwnChar.Data; + +namespace OwnChar.Api.Packets.General; + +public class GetSingleObjectResponse(T? result) : OwnCharResponse where T : OwnCharObject +{ + public T? Result { get; } = result; +} diff --git a/OwnChar/Api/Packets/General/GetSinlgeObjectRequest.cs b/OwnChar/Api/Packets/General/GetSinlgeObjectRequest.cs new file mode 100644 index 0000000..f282516 --- /dev/null +++ b/OwnChar/Api/Packets/General/GetSinlgeObjectRequest.cs @@ -0,0 +1,8 @@ +using OwnChar.Api.Packets; + +namespace OwnChar.Api.Packets.General; + +public class GetSinlgeObjectRequest(long objectId) : OwnCharRequest +{ + public long ObjectId { get; } = objectId; +} diff --git a/OwnChar/Api/Packets/General/LoginRequest.cs b/OwnChar/Api/Packets/General/LoginRequest.cs new file mode 100644 index 0000000..92ae000 --- /dev/null +++ b/OwnChar/Api/Packets/General/LoginRequest.cs @@ -0,0 +1,10 @@ +using OwnChar.Api.Packets; +using Pilz.Cryptography; + +namespace OwnChar.Api.Packets.General; + +public class LoginRequest(string username, SecureString password) : OwnCharRequest +{ + public new string Username { get; set; } = username; + public SecureString Password { get; } = password; +} diff --git a/OwnChar/Base/Data/Responses/LoginResponse.cs b/OwnChar/Api/Packets/General/LoginResponse.cs similarity index 71% rename from OwnChar/Base/Data/Responses/LoginResponse.cs rename to OwnChar/Api/Packets/General/LoginResponse.cs index 9d7f8be..7f85b96 100644 --- a/OwnChar/Base/Data/Responses/LoginResponse.cs +++ b/OwnChar/Api/Packets/General/LoginResponse.cs @@ -1,6 +1,7 @@ -using OwnChar.Client.Data.Model; +using OwnChar.Api.Packets; +using OwnChar.Data.Model.Client; -namespace OwnChar.Base.Data.Responses; +namespace OwnChar.Api.Packets.General; public class LoginResponse(UserAccount? account, UserProfile? profile, string? secret) : OwnCharResponse { diff --git a/OwnChar/Api/Packets/General/LogoutRequest.cs b/OwnChar/Api/Packets/General/LogoutRequest.cs new file mode 100644 index 0000000..bd5a4c2 --- /dev/null +++ b/OwnChar/Api/Packets/General/LogoutRequest.cs @@ -0,0 +1,7 @@ +using OwnChar.Api.Packets; + +namespace OwnChar.Api.Packets.General; + +public class LogoutRequest : OwnCharRequest +{ +} diff --git a/OwnChar/Api/Packets/General/LogoutResponse.cs b/OwnChar/Api/Packets/General/LogoutResponse.cs new file mode 100644 index 0000000..6d90973 --- /dev/null +++ b/OwnChar/Api/Packets/General/LogoutResponse.cs @@ -0,0 +1,7 @@ +using OwnChar.Api.Packets; + +namespace OwnChar.Api.Packets.General; + +public class LogoutResponse : OwnCharResponse +{ +} diff --git a/OwnChar/Api/Packets/General/SetOwnerRequest.cs b/OwnChar/Api/Packets/General/SetOwnerRequest.cs new file mode 100644 index 0000000..d72015c --- /dev/null +++ b/OwnChar/Api/Packets/General/SetOwnerRequest.cs @@ -0,0 +1,7 @@ +namespace OwnChar.Api.Packets.General; + +public class SetOwnerRequest : OwnCharRequest +{ + public long ObjectId { get; set; } + public bool Enforce { get; set; } +} diff --git a/OwnChar/Api/Packets/General/SetOwnerResponse.cs b/OwnChar/Api/Packets/General/SetOwnerResponse.cs new file mode 100644 index 0000000..8f49dbe --- /dev/null +++ b/OwnChar/Api/Packets/General/SetOwnerResponse.cs @@ -0,0 +1,5 @@ +namespace OwnChar.Api.Packets.General; + +public class SetOwnerResponse : OwnCharResponse +{ +} diff --git a/OwnChar/Base/Data/Requests/UpdateRequest.cs b/OwnChar/Api/Packets/General/UpdateRequest.cs similarity index 58% rename from OwnChar/Base/Data/Requests/UpdateRequest.cs rename to OwnChar/Api/Packets/General/UpdateRequest.cs index 022f513..6d6e856 100644 --- a/OwnChar/Base/Data/Requests/UpdateRequest.cs +++ b/OwnChar/Api/Packets/General/UpdateRequest.cs @@ -1,6 +1,7 @@ -using OwnChar.Base.Data.Updates; +using OwnChar.Api.Packets; +using OwnChar.Api.Updates; -namespace OwnChar.Base.Data.Requests; +namespace OwnChar.Api.Packets.General; public class UpdateRequest(OwnCharObjectUpdate update) : OwnCharRequest { diff --git a/OwnChar/Api/Packets/General/UpdateResponse.cs b/OwnChar/Api/Packets/General/UpdateResponse.cs new file mode 100644 index 0000000..a67686e --- /dev/null +++ b/OwnChar/Api/Packets/General/UpdateResponse.cs @@ -0,0 +1,7 @@ +using OwnChar.Api.Packets; + +namespace OwnChar.Api.Packets.General; + +public class UpdateResponse : OwnCharResponse +{ +} diff --git a/OwnChar/Api/Packets/Groups/CreateGroupRequest.cs b/OwnChar/Api/Packets/Groups/CreateGroupRequest.cs new file mode 100644 index 0000000..2736234 --- /dev/null +++ b/OwnChar/Api/Packets/Groups/CreateGroupRequest.cs @@ -0,0 +1,8 @@ +using OwnChar.Api.Packets; + +namespace OwnChar.Api.Packets.Groups; + +public class CreateGroupRequest : OwnCharRequest +{ + public string? Name { get; set; } +} diff --git a/OwnChar/Api/Packets/Groups/CreateGroupResponse.cs b/OwnChar/Api/Packets/Groups/CreateGroupResponse.cs new file mode 100644 index 0000000..eda4486 --- /dev/null +++ b/OwnChar/Api/Packets/Groups/CreateGroupResponse.cs @@ -0,0 +1,9 @@ +using OwnChar.Api.Packets; +using OwnChar.Data.Model.Client; + +namespace OwnChar.Api.Packets.Groups; + +public class CreateGroupResponse(Group? group) : OwnCharResponse +{ + public Group? Group { get; } = group; +} diff --git a/OwnChar/Api/Packets/Groups/GetGroupMembersRequest.cs b/OwnChar/Api/Packets/Groups/GetGroupMembersRequest.cs new file mode 100644 index 0000000..fc09126 --- /dev/null +++ b/OwnChar/Api/Packets/Groups/GetGroupMembersRequest.cs @@ -0,0 +1,8 @@ +using OwnChar.Api.Packets; + +namespace OwnChar.Api.Packets.Groups; + +public class GetGroupMembersRequest(long groupId) : OwnCharRequest +{ + public long GroupId { get; } = groupId; +} diff --git a/OwnChar/Api/Packets/Groups/GetGroupMembersResponse.cs b/OwnChar/Api/Packets/Groups/GetGroupMembersResponse.cs new file mode 100644 index 0000000..08cad1e --- /dev/null +++ b/OwnChar/Api/Packets/Groups/GetGroupMembersResponse.cs @@ -0,0 +1,9 @@ +using OwnChar.Data; +using OwnChar.Data.Model.Client; + +namespace OwnChar.Api.Packets.Groups; + +public class GetGroupMembersResponse(List members) : OwnCharResponse +{ + public List Members { get; } = members; +} diff --git a/OwnChar/Api/Packets/Groups/GetGroupsRequest.cs b/OwnChar/Api/Packets/Groups/GetGroupsRequest.cs new file mode 100644 index 0000000..1daa7e0 --- /dev/null +++ b/OwnChar/Api/Packets/Groups/GetGroupsRequest.cs @@ -0,0 +1,10 @@ +using OwnChar.Api.Packets; + +namespace OwnChar.Api.Packets.Groups; + +public class GetGroupsRequest : OwnCharRequest +{ + public long ProfileId { get; set; } = -1; + public bool UseProfileId { get; set; } + public bool IncludeNonPublic { get; set; } +} diff --git a/OwnChar/Api/Packets/Groups/GetGroupsResponse.cs b/OwnChar/Api/Packets/Groups/GetGroupsResponse.cs new file mode 100644 index 0000000..fc3355d --- /dev/null +++ b/OwnChar/Api/Packets/Groups/GetGroupsResponse.cs @@ -0,0 +1,9 @@ +using OwnChar.Api.Packets; +using OwnChar.Data.Model.Client; + +namespace OwnChar.Api.Packets.Groups; + +public class GetGroupsResponse(List groups) : OwnCharResponse +{ + public List Groups { get; } = groups; +} diff --git a/OwnChar/Api/Packets/Groups/GroupMemberAddRequest.cs b/OwnChar/Api/Packets/Groups/GroupMemberAddRequest.cs new file mode 100644 index 0000000..2e84052 --- /dev/null +++ b/OwnChar/Api/Packets/Groups/GroupMemberAddRequest.cs @@ -0,0 +1,9 @@ +using OwnChar.Data; + +namespace OwnChar.Api.Packets.Groups; + +public class GroupMemberAddRequest() : OwnCharRequest +{ + public long GroupId { get; set; } = -1; + public Dictionary Members { get; set; } = []; +} diff --git a/OwnChar/Api/Packets/Groups/GroupMemberAddResponse.cs b/OwnChar/Api/Packets/Groups/GroupMemberAddResponse.cs new file mode 100644 index 0000000..b36d85d --- /dev/null +++ b/OwnChar/Api/Packets/Groups/GroupMemberAddResponse.cs @@ -0,0 +1,8 @@ +using OwnChar.Data.Model.Client; + +namespace OwnChar.Api.Packets.Groups; + +public class GroupMemberAddResponse(List addedMembers) : OwnCharResponse +{ + public List AddedMembers { get; } = addedMembers; +} diff --git a/OwnChar/Base/Data/OwnCharRequest.cs b/OwnChar/Api/Packets/OwnCharRequest.cs similarity index 59% rename from OwnChar/Base/Data/OwnCharRequest.cs rename to OwnChar/Api/Packets/OwnCharRequest.cs index bff1c5c..1b66310 100644 --- a/OwnChar/Base/Data/OwnCharRequest.cs +++ b/OwnChar/Api/Packets/OwnCharRequest.cs @@ -1,8 +1,9 @@ using Pilz.Cryptography; -namespace OwnChar.Base.Data; +namespace OwnChar.Api.Packets; public class OwnCharRequest { + public string? Username { get; set; } = null; public SecureString? AuthSecret { get; set; } = null; } diff --git a/OwnChar/Base/Data/OwnCharResponse.cs b/OwnChar/Api/Packets/OwnCharResponse.cs similarity index 87% rename from OwnChar/Base/Data/OwnCharResponse.cs rename to OwnChar/Api/Packets/OwnCharResponse.cs index 7de2ce7..adea60a 100644 --- a/OwnChar/Base/Data/OwnCharResponse.cs +++ b/OwnChar/Api/Packets/OwnCharResponse.cs @@ -1,11 +1,11 @@ using System.Text.Json.Serialization; -namespace OwnChar.Base.Data; +namespace OwnChar.Api.Packets; public class OwnCharResponse { + public OwnCharResponseError ErrorCode { get; set; } + [JsonIgnore] public bool IsSuccess => ErrorCode != OwnCharResponseError.None; - - public OwnCharResponseError ErrorCode { get; set; } } diff --git a/OwnChar/Api/Packets/OwnCharResponseError.cs b/OwnChar/Api/Packets/OwnCharResponseError.cs new file mode 100644 index 0000000..9d3c45b --- /dev/null +++ b/OwnChar/Api/Packets/OwnCharResponseError.cs @@ -0,0 +1,9 @@ +namespace OwnChar.Api.Packets; + +public enum OwnCharResponseError +{ + None, + Default, + NotFound, + StillInUse, +} diff --git a/OwnChar/Api/Packets/UserProfiles/GetUserProfileRequest.cs b/OwnChar/Api/Packets/UserProfiles/GetUserProfileRequest.cs new file mode 100644 index 0000000..c4f1277 --- /dev/null +++ b/OwnChar/Api/Packets/UserProfiles/GetUserProfileRequest.cs @@ -0,0 +1,8 @@ +using OwnChar.Api.Packets; + +namespace OwnChar.Api.Packets.UserProfiles; + +public class GetUserProfileRequest(long userProfileId) : OwnCharRequest +{ + public long UserProfileId { get; } = userProfileId; +} diff --git a/OwnChar/Api/Packets/UserProfiles/GetUserProfileResponse.cs b/OwnChar/Api/Packets/UserProfiles/GetUserProfileResponse.cs new file mode 100644 index 0000000..76a1e98 --- /dev/null +++ b/OwnChar/Api/Packets/UserProfiles/GetUserProfileResponse.cs @@ -0,0 +1,9 @@ +using OwnChar.Api.Packets; +using OwnChar.Data.Model.Client; + +namespace OwnChar.Api.Packets.UserProfiles; + +public class GetUserProfileResponse(UserProfile? profile) : OwnCharResponse +{ + public UserProfile? Profile { get; } = profile; +} diff --git a/OwnChar/Api/Packets/UserProfiles/GetUserProfilesRequest.cs b/OwnChar/Api/Packets/UserProfiles/GetUserProfilesRequest.cs new file mode 100644 index 0000000..6a3aa48 --- /dev/null +++ b/OwnChar/Api/Packets/UserProfiles/GetUserProfilesRequest.cs @@ -0,0 +1,8 @@ +using OwnChar.Api.Packets; + +namespace OwnChar.Api.Packets.UserProfiles; + +public class GetUserProfilesRequest : OwnCharRequest +{ + public bool AllProfiles { get; set; } +} diff --git a/OwnChar/Api/Packets/UserProfiles/GetUserProfilesResponse.cs b/OwnChar/Api/Packets/UserProfiles/GetUserProfilesResponse.cs new file mode 100644 index 0000000..e295860 --- /dev/null +++ b/OwnChar/Api/Packets/UserProfiles/GetUserProfilesResponse.cs @@ -0,0 +1,9 @@ +using OwnChar.Api.Packets; +using OwnChar.Data.Model.Client; + +namespace OwnChar.Api.Packets.UserProfiles; + +public class GetUserProfilesResponse(List profiles) : OwnCharResponse +{ + public List Profiles { get; } = profiles; +} diff --git a/OwnChar/Base/Data/Updates/GroupUpdate.cs b/OwnChar/Api/Updates/GroupUpdate.cs similarity index 80% rename from OwnChar/Base/Data/Updates/GroupUpdate.cs rename to OwnChar/Api/Updates/GroupUpdate.cs index b496129..7ef8d67 100644 --- a/OwnChar/Base/Data/Updates/GroupUpdate.cs +++ b/OwnChar/Api/Updates/GroupUpdate.cs @@ -1,6 +1,6 @@ -using OwnChar.Client.Data.Model; +using OwnChar.Data.Model.Client; -namespace OwnChar.Base.Data.Updates; +namespace OwnChar.Api.Updates; public class GroupUpdate : OwnCharObjectUpdate { diff --git a/OwnChar/Api/Updates/MemberUpdate.cs b/OwnChar/Api/Updates/MemberUpdate.cs new file mode 100644 index 0000000..b0d4fbd --- /dev/null +++ b/OwnChar/Api/Updates/MemberUpdate.cs @@ -0,0 +1,9 @@ +using OwnChar.Data; + +namespace OwnChar.Api.Updates; + +public class MemberUpdate : OwnCharObjectUpdate +{ + public long GroupId { get; set; } + public MemberLevel Level { get; set; } +} diff --git a/OwnChar/Base/Data/Updates/OwnCharObjectUpdate.cs b/OwnChar/Api/Updates/OwnCharObjectUpdate.cs similarity index 79% rename from OwnChar/Base/Data/Updates/OwnCharObjectUpdate.cs rename to OwnChar/Api/Updates/OwnCharObjectUpdate.cs index 36c211e..88cb236 100644 --- a/OwnChar/Base/Data/Updates/OwnCharObjectUpdate.cs +++ b/OwnChar/Api/Updates/OwnCharObjectUpdate.cs @@ -1,4 +1,6 @@ -namespace OwnChar.Base.Data.Updates; +using OwnChar.Data; + +namespace OwnChar.Api.Updates; public abstract class OwnCharObjectUpdate { diff --git a/OwnChar/Base/Data/OwnCharResponseError.cs b/OwnChar/Base/Data/OwnCharResponseError.cs deleted file mode 100644 index 7df389f..0000000 --- a/OwnChar/Base/Data/OwnCharResponseError.cs +++ /dev/null @@ -1,8 +0,0 @@ -namespace OwnChar.Base.Data; - -public enum OwnCharResponseError -{ - None, - Default, - NotAuthorized, -} diff --git a/OwnChar/Base/Data/Requests/GroupMemberAddRequest.cs b/OwnChar/Base/Data/Requests/GroupMemberAddRequest.cs deleted file mode 100644 index a2c0b77..0000000 --- a/OwnChar/Base/Data/Requests/GroupMemberAddRequest.cs +++ /dev/null @@ -1,6 +0,0 @@ -namespace OwnChar.Base.Data.Requests; - -public class GroupMemberAddRequest : OwnCharRequest -{ - public Dictionary Members { get; } = []; -} diff --git a/OwnChar/Base/Data/Requests/GroupMemberRemoveRequest.cs b/OwnChar/Base/Data/Requests/GroupMemberRemoveRequest.cs deleted file mode 100644 index 1d5c33a..0000000 --- a/OwnChar/Base/Data/Requests/GroupMemberRemoveRequest.cs +++ /dev/null @@ -1,8 +0,0 @@ -using OwnChar.Client.Data.Model; - -namespace OwnChar.Base.Data.Requests; - -public class GroupMemberRemoveRequest : OwnCharRequest -{ - public List Members { get; } = []; -} diff --git a/OwnChar/Base/Data/Requests/LoginRequest.cs b/OwnChar/Base/Data/Requests/LoginRequest.cs deleted file mode 100644 index 43791e7..0000000 --- a/OwnChar/Base/Data/Requests/LoginRequest.cs +++ /dev/null @@ -1,9 +0,0 @@ -using Pilz.Cryptography; - -namespace OwnChar.Base.Data.Requests; - -public class LoginRequest(string username, SecureString password) : OwnCharRequest -{ - public string Username { get; } = username; - public SecureString Password { get; } = password; -} diff --git a/OwnChar/Base/Data/Requests/LogoutRequest.cs b/OwnChar/Base/Data/Requests/LogoutRequest.cs deleted file mode 100644 index 07729e9..0000000 --- a/OwnChar/Base/Data/Requests/LogoutRequest.cs +++ /dev/null @@ -1,5 +0,0 @@ -namespace OwnChar.Base.Data.Requests; - -public class LogoutRequest : OwnCharRequest -{ -} diff --git a/OwnChar/Client/Data/Clients/GroupsApiClient.cs b/OwnChar/Client/Data/Clients/GroupsApiClient.cs deleted file mode 100644 index a4e4244..0000000 --- a/OwnChar/Client/Data/Clients/GroupsApiClient.cs +++ /dev/null @@ -1,5 +0,0 @@ -namespace OwnChar.Client.Data.Clients; - -public class GroupsApiClient(OwnCharApiClient client) -{ -} diff --git a/OwnChar/Client/Data/Model/Group.cs b/OwnChar/Client/Data/Model/Group.cs deleted file mode 100644 index 70894cc..0000000 --- a/OwnChar/Client/Data/Model/Group.cs +++ /dev/null @@ -1,14 +0,0 @@ -using OwnChar.Base.Data.Model; - -namespace OwnChar.Client.Data.Model; - -public class Group() : GroupBase -{ - internal Group(GroupBase group) : this() - { - Id = group.Id; - Name = group.Name; - IsInternal = group.IsInternal; - Fandom = group.Fandom; - } -} diff --git a/OwnChar/Client/Data/Model/MemberEntry.cs b/OwnChar/Client/Data/Model/MemberEntry.cs deleted file mode 100644 index 49e4f9e..0000000 --- a/OwnChar/Client/Data/Model/MemberEntry.cs +++ /dev/null @@ -1,13 +0,0 @@ -using OwnChar.Base.Data.Model; - -namespace OwnChar.Client.Data.Model; - -public class MemberEntry() : MemberEntryBase -{ - internal MemberEntry(MemberEntryBase entry) : this() - { - Id = entry.Id; - User = entry.User; - Level = entry.Level; - } -} diff --git a/OwnChar/Client/Data/Model/UserAccount.cs b/OwnChar/Client/Data/Model/UserAccount.cs deleted file mode 100644 index e0000ce..0000000 --- a/OwnChar/Client/Data/Model/UserAccount.cs +++ /dev/null @@ -1,14 +0,0 @@ -using OwnChar.Base.Data.Model; - -namespace OwnChar.Client.Data.Model; - -public class UserAccount() : UserAccountBase -{ - internal UserAccount(UserAccountBase account) : this() - { - Id = account.Id; - Username = account.Username; - Email = account.Email; - Type = account.Type; - } -} diff --git a/OwnChar/Client/Data/Model/UserProfile.cs b/OwnChar/Client/Data/Model/UserProfile.cs deleted file mode 100644 index edb140f..0000000 --- a/OwnChar/Client/Data/Model/UserProfile.cs +++ /dev/null @@ -1,12 +0,0 @@ -using OwnChar.Base.Data.Model; - -namespace OwnChar.Client.Data.Model; - -public class UserProfile() : UserProfileBase -{ - internal UserProfile(UserProfileBase profile) : this() - { - Id = profile.Id; - Name = profile.Name; - } -} diff --git a/OwnChar/Base/Data/MemberLevel.cs b/OwnChar/Data/MemberLevel.cs similarity index 72% rename from OwnChar/Base/Data/MemberLevel.cs rename to OwnChar/Data/MemberLevel.cs index 2fa7efe..249976c 100644 --- a/OwnChar/Base/Data/MemberLevel.cs +++ b/OwnChar/Data/MemberLevel.cs @@ -1,4 +1,4 @@ -namespace OwnChar.Base.Data; +namespace OwnChar.Data; public enum MemberLevel { diff --git a/OwnChar/Base/Data/Model/CharacterBase.cs b/OwnChar/Data/Model.Base/CharacterBase.cs similarity index 79% rename from OwnChar/Base/Data/Model/CharacterBase.cs rename to OwnChar/Data/Model.Base/CharacterBase.cs index 970b72c..97db28f 100644 --- a/OwnChar/Base/Data/Model/CharacterBase.cs +++ b/OwnChar/Data/Model.Base/CharacterBase.cs @@ -1,4 +1,4 @@ -namespace OwnChar.Base.Data.Model; +namespace OwnChar.Data.Model.Base; public abstract class CharacterBase : OwnCharObject { diff --git a/OwnChar/Base/Data/Model/GroupBase.cs b/OwnChar/Data/Model.Base/GroupBase.cs similarity index 62% rename from OwnChar/Base/Data/Model/GroupBase.cs rename to OwnChar/Data/Model.Base/GroupBase.cs index dc8c9a0..e46c3aa 100644 --- a/OwnChar/Base/Data/Model/GroupBase.cs +++ b/OwnChar/Data/Model.Base/GroupBase.cs @@ -1,8 +1,8 @@ -namespace OwnChar.Base.Data.Model; +namespace OwnChar.Data.Model.Base; public abstract class GroupBase : OwnCharObject { public virtual string? Name { get; set; } - public virtual string? Fandom { get; set; } + public virtual string? Fandom { get; set; } public virtual bool IsInternal { get; set; } } diff --git a/OwnChar/Base/Data/Model/MemberEntryBase.cs b/OwnChar/Data/Model.Base/MemberEntryBase.cs similarity index 60% rename from OwnChar/Base/Data/Model/MemberEntryBase.cs rename to OwnChar/Data/Model.Base/MemberEntryBase.cs index b27c620..888a7d7 100644 --- a/OwnChar/Base/Data/Model/MemberEntryBase.cs +++ b/OwnChar/Data/Model.Base/MemberEntryBase.cs @@ -1,6 +1,4 @@ -using OwnChar.Client.Data.Model; - -namespace OwnChar.Base.Data.Model; +namespace OwnChar.Data.Model.Base; public abstract class MemberEntryBase : OwnCharObject { diff --git a/OwnChar/Base/Data/Model/PropertyBase.cs b/OwnChar/Data/Model.Base/PropertyBase.cs similarity index 79% rename from OwnChar/Base/Data/Model/PropertyBase.cs rename to OwnChar/Data/Model.Base/PropertyBase.cs index 0afead2..f8acbc2 100644 --- a/OwnChar/Base/Data/Model/PropertyBase.cs +++ b/OwnChar/Data/Model.Base/PropertyBase.cs @@ -1,4 +1,4 @@ -namespace OwnChar.Base.Data.Model; +namespace OwnChar.Data.Model.Base; public abstract class PropertyBase : OwnCharObject { diff --git a/OwnChar/Base/Data/Model/PropertyCategoryBase.cs b/OwnChar/Data/Model.Base/PropertyCategoryBase.cs similarity index 74% rename from OwnChar/Base/Data/Model/PropertyCategoryBase.cs rename to OwnChar/Data/Model.Base/PropertyCategoryBase.cs index 6794fe2..72905ac 100644 --- a/OwnChar/Base/Data/Model/PropertyCategoryBase.cs +++ b/OwnChar/Data/Model.Base/PropertyCategoryBase.cs @@ -1,4 +1,4 @@ -namespace OwnChar.Base.Data.Model; +namespace OwnChar.Data.Model.Base; public abstract class PropertyCategoryBase : OwnCharObject { diff --git a/OwnChar/Base/Data/Model/UserAccountBase.cs b/OwnChar/Data/Model.Base/UserAccountBase.cs similarity index 84% rename from OwnChar/Base/Data/Model/UserAccountBase.cs rename to OwnChar/Data/Model.Base/UserAccountBase.cs index a243568..e76b9d5 100644 --- a/OwnChar/Base/Data/Model/UserAccountBase.cs +++ b/OwnChar/Data/Model.Base/UserAccountBase.cs @@ -1,4 +1,4 @@ -namespace OwnChar.Base.Data.Model; +namespace OwnChar.Data.Model.Base; public abstract class UserAccountBase : OwnCharObject { diff --git a/OwnChar/Base/Data/Model/UserProfileBase.cs b/OwnChar/Data/Model.Base/UserProfileBase.cs similarity index 73% rename from OwnChar/Base/Data/Model/UserProfileBase.cs rename to OwnChar/Data/Model.Base/UserProfileBase.cs index 094ce4a..886564a 100644 --- a/OwnChar/Base/Data/Model/UserProfileBase.cs +++ b/OwnChar/Data/Model.Base/UserProfileBase.cs @@ -1,4 +1,4 @@ -namespace OwnChar.Base.Data.Model; +namespace OwnChar.Data.Model.Base; public abstract class UserProfileBase : OwnCharObject { diff --git a/OwnChar/Client/Data/Model/Character.cs b/OwnChar/Data/Model.Client/Character.cs similarity index 74% rename from OwnChar/Client/Data/Model/Character.cs rename to OwnChar/Data/Model.Client/Character.cs index 719a418..b75602f 100644 --- a/OwnChar/Client/Data/Model/Character.cs +++ b/OwnChar/Data/Model.Client/Character.cs @@ -1,6 +1,6 @@ -using OwnChar.Base.Data.Model; +using OwnChar.Data.Model.Base; -namespace OwnChar.Client.Data.Model; +namespace OwnChar.Data.Model.Client; public class Character() : CharacterBase { diff --git a/OwnChar/Data/Model.Client/Group.cs b/OwnChar/Data/Model.Client/Group.cs new file mode 100644 index 0000000..1f5ee99 --- /dev/null +++ b/OwnChar/Data/Model.Client/Group.cs @@ -0,0 +1,7 @@ +using OwnChar.Data.Model.Base; + +namespace OwnChar.Data.Model.Client; + +public class Group : GroupBase +{ +} diff --git a/OwnChar/Data/Model.Client/MemberEntry.cs b/OwnChar/Data/Model.Client/MemberEntry.cs new file mode 100644 index 0000000..d2e8a67 --- /dev/null +++ b/OwnChar/Data/Model.Client/MemberEntry.cs @@ -0,0 +1,8 @@ +using OwnChar.Data.Model.Base; + +namespace OwnChar.Data.Model.Client; + +public class MemberEntry() : MemberEntryBase +{ + public long UserProfileId { get; set; } +} diff --git a/OwnChar/Client/Data/Model/Property.cs b/OwnChar/Data/Model.Client/Property.cs similarity index 72% rename from OwnChar/Client/Data/Model/Property.cs rename to OwnChar/Data/Model.Client/Property.cs index f44b7ff..6b035df 100644 --- a/OwnChar/Client/Data/Model/Property.cs +++ b/OwnChar/Data/Model.Client/Property.cs @@ -1,6 +1,6 @@ -using OwnChar.Base.Data.Model; +using OwnChar.Data.Model.Base; -namespace OwnChar.Client.Data.Model; +namespace OwnChar.Data.Model.Client; public class Property() : PropertyBase { diff --git a/OwnChar/Client/Data/Model/PropertyCategory.cs b/OwnChar/Data/Model.Client/PropertyCategory.cs similarity index 73% rename from OwnChar/Client/Data/Model/PropertyCategory.cs rename to OwnChar/Data/Model.Client/PropertyCategory.cs index 3177ad1..5175179 100644 --- a/OwnChar/Client/Data/Model/PropertyCategory.cs +++ b/OwnChar/Data/Model.Client/PropertyCategory.cs @@ -1,6 +1,6 @@ -using OwnChar.Base.Data.Model; +using OwnChar.Data.Model.Base; -namespace OwnChar.Client.Data.Model; +namespace OwnChar.Data.Model.Client; public class PropertyCategory() : PropertyCategoryBase { diff --git a/OwnChar/Data/Model.Client/UserAccount.cs b/OwnChar/Data/Model.Client/UserAccount.cs new file mode 100644 index 0000000..0f86bc8 --- /dev/null +++ b/OwnChar/Data/Model.Client/UserAccount.cs @@ -0,0 +1,7 @@ +using OwnChar.Data.Model.Base; + +namespace OwnChar.Data.Model.Client; + +public class UserAccount() : UserAccountBase +{ +} diff --git a/OwnChar/Data/Model.Client/UserProfile.cs b/OwnChar/Data/Model.Client/UserProfile.cs new file mode 100644 index 0000000..117d50b --- /dev/null +++ b/OwnChar/Data/Model.Client/UserProfile.cs @@ -0,0 +1,7 @@ +using OwnChar.Data.Model.Base; + +namespace OwnChar.Data.Model.Client; + +public class UserProfile() : UserProfileBase +{ +} diff --git a/OwnChar/Base/Data/OwnCharObject.cs b/OwnChar/Data/OwnCharObject.cs similarity index 69% rename from OwnChar/Base/Data/OwnCharObject.cs rename to OwnChar/Data/OwnCharObject.cs index b533557..b1aefd4 100644 --- a/OwnChar/Base/Data/OwnCharObject.cs +++ b/OwnChar/Data/OwnCharObject.cs @@ -1,4 +1,4 @@ -namespace OwnChar.Base.Data; +namespace OwnChar.Data; public class OwnCharObject { diff --git a/OwnChar/Base/Data/UserType.cs b/OwnChar/Data/UserType.cs similarity index 57% rename from OwnChar/Base/Data/UserType.cs rename to OwnChar/Data/UserType.cs index c9671d0..e54686a 100644 --- a/OwnChar/Base/Data/UserType.cs +++ b/OwnChar/Data/UserType.cs @@ -1,9 +1,9 @@ -namespace OwnChar.Base.Data; +namespace OwnChar.Data; public enum UserType { None, Guest, User, - Admin + Admin, } diff --git a/OwnChar/Client/IOwnCharManager.cs b/OwnChar/IOwnCharManager.cs similarity index 78% rename from OwnChar/Client/IOwnCharManager.cs rename to OwnChar/IOwnCharManager.cs index 733bdce..93309b6 100644 --- a/OwnChar/Client/IOwnCharManager.cs +++ b/OwnChar/IOwnCharManager.cs @@ -1,9 +1,9 @@ -using OwnChar.Client.Data; -using OwnChar.Client.Data.Model; -using OwnChar.Client.Managers; +using OwnChar.Api; +using OwnChar.Data.Model.Client; +using OwnChar.Modules; using Pilz.Cryptography; -namespace OwnChar.Client; +namespace OwnChar; public interface IOwnCharManager { diff --git a/OwnChar/JsonHelpers.cs b/OwnChar/JsonHelpers.cs new file mode 100644 index 0000000..c96624f --- /dev/null +++ b/OwnChar/JsonHelpers.cs @@ -0,0 +1,39 @@ +using Newtonsoft.Json; +using OwnChar.Api.Packets; + +namespace OwnChar; + +public static class JsonHelpers +{ + private static JsonSerializerSettings? defaultSerializerSettings; + + public static JsonSerializerSettings DefaultSerializerSettings => defaultSerializerSettings ??= CreateDefaultSerializerSettings(); + + private static JsonSerializerSettings CreateDefaultSerializerSettings() + { + return new JsonSerializerSettings + { + TypeNameHandling = TypeNameHandling.Auto, + }; + } + + public static string? SerializeRequest(T request) where T : OwnCharRequest + { + return JsonConvert.SerializeObject(request, DefaultSerializerSettings); + } + + public static string? SerializeResponse(T request) where T : OwnCharResponse + { + return JsonConvert.SerializeObject(request, DefaultSerializerSettings); + } + + public static T? DeserializeRequest(string request) where T : OwnCharRequest + { + return JsonConvert.DeserializeObject(request, DefaultSerializerSettings); + } + + public static T? DeserializeResponse(string request) where T : OwnCharResponse + { + return JsonConvert.DeserializeObject(request, DefaultSerializerSettings); + } +} diff --git a/OwnChar/Client/Managers/CharacterManager.cs b/OwnChar/Modules/CharacterManager.cs similarity index 98% rename from OwnChar/Client/Managers/CharacterManager.cs rename to OwnChar/Modules/CharacterManager.cs index f087ae0..0731d9f 100644 --- a/OwnChar/Client/Managers/CharacterManager.cs +++ b/OwnChar/Modules/CharacterManager.cs @@ -1,7 +1,7 @@ using OwnChar.Data; using OwnChar.Model; -namespace OwnChar.Client.Managers; +namespace OwnChar.Modules; internal class CharacterManager(OwnCharManager manager) : OwnCharManagerModule(manager), ICharacterManager { diff --git a/OwnChar/Client/Managers/GroupsManager.cs b/OwnChar/Modules/GroupsManager.cs similarity index 97% rename from OwnChar/Client/Managers/GroupsManager.cs rename to OwnChar/Modules/GroupsManager.cs index 8d99443..3966de1 100644 --- a/OwnChar/Client/Managers/GroupsManager.cs +++ b/OwnChar/Modules/GroupsManager.cs @@ -1,7 +1,4 @@ -using OwnChar.Data; -using OwnChar.Model; - -namespace OwnChar.Client.Managers; +namespace OwnChar.Modules; internal class GroupsManager(OwnCharManager manager) : OwnCharManagerModule(manager), IGroupsManager { diff --git a/OwnChar/Client/Managers/ICharacterManager.cs b/OwnChar/Modules/ICharacterManager.cs similarity index 92% rename from OwnChar/Client/Managers/ICharacterManager.cs rename to OwnChar/Modules/ICharacterManager.cs index 5391527..f441ce8 100644 --- a/OwnChar/Client/Managers/ICharacterManager.cs +++ b/OwnChar/Modules/ICharacterManager.cs @@ -1,6 +1,6 @@ using OwnChar.Model; -namespace OwnChar.Client.Managers; +namespace OwnChar.Modules; public interface ICharacterManager { CharacterBase? CreateCharacter(string? name); diff --git a/OwnChar/Client/Managers/IGroupsManager.cs b/OwnChar/Modules/IGroupsManager.cs similarity index 93% rename from OwnChar/Client/Managers/IGroupsManager.cs rename to OwnChar/Modules/IGroupsManager.cs index 5843eb6..f5b53e8 100644 --- a/OwnChar/Client/Managers/IGroupsManager.cs +++ b/OwnChar/Modules/IGroupsManager.cs @@ -1,6 +1,6 @@ using OwnChar.Model; -namespace OwnChar.Client.Managers; +namespace OwnChar.Modules; public interface IGroupsManager { IQueryable? GetGroups(UserProfileBase? profile); diff --git a/OwnChar/Client/Managers/IUserManager.cs b/OwnChar/Modules/IUserManager.cs similarity index 89% rename from OwnChar/Client/Managers/IUserManager.cs rename to OwnChar/Modules/IUserManager.cs index 7887f79..a3fd500 100644 --- a/OwnChar/Client/Managers/IUserManager.cs +++ b/OwnChar/Modules/IUserManager.cs @@ -1,7 +1,7 @@ using OwnChar.Model; using Pilz.Cryptography; -namespace OwnChar.Client.Managers; +namespace OwnChar.Modules; public interface IUserManager { diff --git a/OwnChar/Client/Managers/UserManager.cs b/OwnChar/Modules/UserManager.cs similarity index 97% rename from OwnChar/Client/Managers/UserManager.cs rename to OwnChar/Modules/UserManager.cs index ee46046..978c042 100644 --- a/OwnChar/Client/Managers/UserManager.cs +++ b/OwnChar/Modules/UserManager.cs @@ -2,7 +2,7 @@ using OwnChar.Model; using Pilz.Cryptography; -namespace OwnChar.Client.Managers; +namespace OwnChar.Modules; internal class UserManager(OwnCharManager manager) : OwnCharManagerModule(manager), IUserManager { diff --git a/OwnChar/OwnCharExtensions.cs b/OwnChar/OwnCharExtensions.cs index ba91a69..c0e5b9f 100644 --- a/OwnChar/OwnCharExtensions.cs +++ b/OwnChar/OwnCharExtensions.cs @@ -1,6 +1,7 @@ -using OwnChar.Base.Data; +using OwnChar.Api.Exceptions; +using OwnChar.Api.Packets; using OwnChar.Data; -using OwnChar.Model; +using OwnChar.Data.Model.Base; using System.Diagnostics.CodeAnalysis; namespace OwnChar; @@ -23,55 +24,25 @@ public static class OwnCharExtensions return account.Type >= permissions; } - #region OnActionEventArgs - - public static bool SetResult(this OnActionEventArgs @this, object? data) + public static void EnsureSuccess(this OwnCharResponse response) { - @this.Result = data; - return @this.Result != null; + if (!response.IsSuccess) + throw new ApiException("This API call failed! Reason: " + response.ErrorCode.ToString()); } - public static bool SetResultT(this OnActionEventArgs @this, object? data) + public static T With(this T response, OwnCharResponseError error) where T : OwnCharResponse { - @this.Result = data; - return true; + response.ErrorCode = error; + return response; } - public static bool GetParam(this OnActionEventArgs @this, int index, [NotNullWhen(true)] out T? result) + public static bool Is(this UserAccountBase user, UserType type) { - return @this.Parameters.GetAt(index, out result); + return user.Type >= type; } - public static bool GetObject(this OnActionEventArgs @this, [NotNullWhen(true)] out T? result) + public static bool IsNot(this UserAccountBase user, UserType type) { - if (@this.Object is T t) - { - result = t; - return true; - } - result = default; - return false; + return user.Type < type; } - - public static bool Is(this OnActionEventArgs @this, DataManagerActionType actionType) - { - return @this.ActionType == actionType; - } - - public static bool Is(this OnActionEventArgs @this, DataManagerAction action) - { - return @this.Action == action; - } - - public static bool Is(this OnActionEventArgs @this, UserType minLevel) - { - return @this.CurrentUser.HasPermission(minLevel); - } - - public static bool Is(this OnActionEventArgs @this, UserType maxLevel, UserType minLevel, Func isOwner) - { - return @this.Is(maxLevel) || (@this.Is(minLevel) && isOwner(@this)); - } - - #endregion } diff --git a/OwnChar/Client/OwnCharManager.cs b/OwnChar/OwnCharManager.cs similarity index 91% rename from OwnChar/Client/OwnCharManager.cs rename to OwnChar/OwnCharManager.cs index ca395bf..af08da6 100644 --- a/OwnChar/Client/OwnCharManager.cs +++ b/OwnChar/OwnCharManager.cs @@ -1,11 +1,11 @@ -using OwnChar.Api.Exceptions; -using OwnChar.Client.Data; -using OwnChar.Client.Data.Model; -using OwnChar.Client.Managers; +using OwnChar.Api; +using OwnChar.Api.Exceptions; +using OwnChar.Data.Model.Client; +using OwnChar.Modules; using Pilz.Cryptography; using System.Diagnostics.CodeAnalysis; -namespace OwnChar.Client; +namespace OwnChar; internal class OwnCharManager : IOwnCharManager { diff --git a/OwnChar/Client/OwnCharManagerModule.cs b/OwnChar/OwnCharManagerModule.cs similarity index 81% rename from OwnChar/Client/OwnCharManagerModule.cs rename to OwnChar/OwnCharManagerModule.cs index 6e551e5..92a1e3c 100644 --- a/OwnChar/Client/OwnCharManagerModule.cs +++ b/OwnChar/OwnCharManagerModule.cs @@ -1,4 +1,4 @@ -namespace OwnChar.Client; +namespace OwnChar; public abstract class OwnCharManagerModule(IOwnCharManager manager) { diff --git a/OwnChar/Server/Data/DatabaseContext.cs b/OwnChar/Server/Data/DatabaseContext.cs deleted file mode 100644 index 9e109c8..0000000 --- a/OwnChar/Server/Data/DatabaseContext.cs +++ /dev/null @@ -1,16 +0,0 @@ -using Microsoft.EntityFrameworkCore; - -namespace OwnChar.Data; - -public class DatabaseContext(string? dbHost, string? dbUser, string? dbPassword) : DbContext -{ - protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) - { - base.OnConfiguring(optionsBuilder); - } - - protected override void OnModelCreating(ModelBuilder modelBuilder) - { - base.OnModelCreating(modelBuilder); - } -} diff --git a/OwnChar/Server/Data/Model/CharacterDb.cs b/OwnChar/Server/Data/Model/CharacterDb.cs deleted file mode 100644 index 7eb60e2..0000000 --- a/OwnChar/Server/Data/Model/CharacterDb.cs +++ /dev/null @@ -1,11 +0,0 @@ -using OwnChar.Base.Data.Model; -using OwnChar.Client.Data.Model; - -namespace OwnChar.Server.Data.Model; - -public class CharacterDb : CharacterBase -{ - public UserProfileDb? Owner { get; set; } - public List PropCats { get; } = []; - public List Props { get; } = []; -} diff --git a/OwnChar/Server/Data/Model/GroupDb.cs b/OwnChar/Server/Data/Model/GroupDb.cs deleted file mode 100644 index 169e5e3..0000000 --- a/OwnChar/Server/Data/Model/GroupDb.cs +++ /dev/null @@ -1,16 +0,0 @@ -using OwnChar.Base.Data.Updates; -using OwnChar.Base.Data.Model; - -namespace OwnChar.Server.Data.Model; - -public class GroupDb : GroupBase -{ - public List Characters { get; } = []; - public List Members { get; } = []; - - public void Update(GroupUpdate update) - { - Name = update.Name; - Fandom = update.Fandom; - } -} diff --git a/OwnChar/Server/Data/Model/MemberEntryDb.cs b/OwnChar/Server/Data/Model/MemberEntryDb.cs deleted file mode 100644 index 2355545..0000000 --- a/OwnChar/Server/Data/Model/MemberEntryDb.cs +++ /dev/null @@ -1,15 +0,0 @@ -using OwnChar.Base.Data.Model; -using OwnChar.Client.Data.Model; - -namespace OwnChar.Server.Data.Model; - -public class MemberEntryDb() : MemberEntryBase -{ - public virtual UserProfile? User { get; set; } - - internal MemberEntryDb(MemberEntryBase entry) : this() - { - Id = entry.Id; - Level = entry.Level; - } -} diff --git a/OwnChar/Server/Data/Model/PropertyCategoryDb.cs b/OwnChar/Server/Data/Model/PropertyCategoryDb.cs deleted file mode 100644 index 89569fb..0000000 --- a/OwnChar/Server/Data/Model/PropertyCategoryDb.cs +++ /dev/null @@ -1,7 +0,0 @@ -using OwnChar.Base.Data.Model; - -namespace OwnChar.Server.Data.Model; - -public class PropertyCategoryDb : PropertyCategoryBase -{ -} diff --git a/OwnChar/Server/Data/Model/PropertyDb.cs b/OwnChar/Server/Data/Model/PropertyDb.cs deleted file mode 100644 index 6f5cbaa..0000000 --- a/OwnChar/Server/Data/Model/PropertyDb.cs +++ /dev/null @@ -1,7 +0,0 @@ -using OwnChar.Base.Data.Model; - -namespace OwnChar.Server.Data.Model; - -public class PropertyDb : PropertyBase -{ -} diff --git a/OwnChar/Server/Data/Model/UserAccountDb.cs b/OwnChar/Server/Data/Model/UserAccountDb.cs deleted file mode 100644 index 1428ad4..0000000 --- a/OwnChar/Server/Data/Model/UserAccountDb.cs +++ /dev/null @@ -1,9 +0,0 @@ -using OwnChar.Base.Data.Model; - -namespace OwnChar.Server.Data.Model; - -public class UserAccountDb : UserAccountBase -{ - public virtual string? Password { get; set; } - public UserProfileDb? Profile { get; set; } -} diff --git a/OwnChar/Server/Data/Model/UserProfileDb.cs b/OwnChar/Server/Data/Model/UserProfileDb.cs deleted file mode 100644 index 7d3446b..0000000 --- a/OwnChar/Server/Data/Model/UserProfileDb.cs +++ /dev/null @@ -1,8 +0,0 @@ -using OwnChar.Base.Data.Model; - -namespace OwnChar.Server.Data.Model; - -public class UserProfileDb : UserProfileBase -{ - public List Characters { get; } = []; -}