Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 0 additions & 2 deletions mcm4csharp/mcm4csharp.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@
<None Remove="v1\Data\Resources\" />
<None Remove="v1\Data\Threads\" />
<None Remove="v1\Client\" />
<None Remove="v1\Data\Content\" />
<None Remove="v1\Eventful\" />
<None Remove="v1\Eventful\Providers\" />
</ItemGroup>
Expand All @@ -28,7 +27,6 @@
<Folder Include="v1\Data\Resources\" />
<Folder Include="v1\Data\Threads\" />
<Folder Include="v1\Client\" />
<Folder Include="v1\Data\Content\" />
<Folder Include="v1\Eventful\" />
<Folder Include="v1\Eventful\Providers\" />
</ItemGroup>
Expand Down
1 change: 1 addition & 0 deletions mcm4csharp/v1/Client/ApiClient.cs
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
using System.Text.Encodings.Web;
using System.Text.Json;
using System.Web;
using mcm4csharp.v1.Data;
using mcm4csharp.v1.Data.Alerts;
using mcm4csharp.v1.Data.Content;
using mcm4csharp.v1.Data.Conversations;
Expand Down
11 changes: 11 additions & 0 deletions mcm4csharp/v1/Data/Alerts.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
using System;
using System.Text.Json.Serialization;

namespace mcm4csharp.v1.Data.Alerts
{
public record struct Alert([property:JsonPropertyName("caused_member_id")] ulong CausedMemberId,
[property:JsonPropertyName("content_type")] string ContentType,
[property:JsonPropertyName("content_id")] ulong ContentId,
[property:JsonPropertyName("alert_type")] string AlertType,
[property:JsonPropertyName("alert_date")] ulong AlertDate);
}
46 changes: 46 additions & 0 deletions mcm4csharp/v1/Data/Content.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
using System;
using System.Text.Json.Serialization;

namespace mcm4csharp.v1.Data.Content
{
public record struct ConversationContent([property:JsonPropertyName("recipient_ids")] ulong [] RecipientIds,
[property:JsonPropertyName("title")] string Title,
[property:JsonPropertyName("message")] string Message);

public record struct Error([property:JsonPropertyName("code")] string Code,
[property:JsonPropertyName("message")] string Message);

public record struct LicenseContent([property:JsonPropertyName("purchaser_id")][property:JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] ulong PurchaserId,
[property:JsonPropertyName("permanent")] bool Permanent,
[property:JsonPropertyName("active")][property:JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] bool Active,
[property:JsonPropertyName("start_date")][property:JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] ulong StartDate,
[property:JsonPropertyName("end_date")][property:JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] ulong EndDate);

public record MessageContent([property:JsonPropertyName("message")] string Message);

public record struct ResourceContent([property:JsonPropertyName("title")] string Title,
[property:JsonPropertyName("tag_line")] string TagLine,
[property:JsonPropertyName("description")] string Description);

public record struct Response<T>([property:JsonPropertyName("result")] string Result,
[property:JsonPropertyName("data")] T Data,
[property:JsonPropertyName("error")] Error Error,
ulong RetryAfterMilliseconds);

public record struct ResponseContent([property:JsonPropertyName("response")] string Response);

public record struct SelfUpdateContent([property:JsonPropertyName("custom_title")][property:JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] string CustomTitle,
[property:JsonPropertyName("about_me")][property:JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] string AboutMe,
[property:JsonPropertyName("signature")][property:JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] string Signature);

/// <summary>
///
/// </summary>
/// <param name="Sort">What field to be sorted on.</param>
/// <param name="Order">Order of sorting; "asc" or "desc".</param>
/// <param name="Page">Page number >= 1.</param>
public record struct Sortable([property:JsonPropertyName("sort")] string Sort,
[property:JsonPropertyName("order")] string Order,
[property:JsonPropertyName("page")] ulong Page);
}

16 changes: 0 additions & 16 deletions mcm4csharp/v1/Data/Content/ConversationContent.cs

This file was deleted.

13 changes: 0 additions & 13 deletions mcm4csharp/v1/Data/Content/Error.cs

This file was deleted.

28 changes: 0 additions & 28 deletions mcm4csharp/v1/Data/Content/LicenseContent.cs

This file was deleted.

10 changes: 0 additions & 10 deletions mcm4csharp/v1/Data/Content/MessageContent.cs

This file was deleted.

16 changes: 0 additions & 16 deletions mcm4csharp/v1/Data/Content/ResourceContent.cs

This file was deleted.

19 changes: 0 additions & 19 deletions mcm4csharp/v1/Data/Content/Response.cs

This file was deleted.

10 changes: 0 additions & 10 deletions mcm4csharp/v1/Data/Content/ResponseContent.cs

This file was deleted.

19 changes: 0 additions & 19 deletions mcm4csharp/v1/Data/Content/SelfUpdateContent.cs

This file was deleted.

32 changes: 0 additions & 32 deletions mcm4csharp/v1/Data/Content/Sortable.cs

This file was deleted.

21 changes: 21 additions & 0 deletions mcm4csharp/v1/Data/Conversations.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
using System;
using System.Text.Json.Serialization;

namespace mcm4csharp.v1.Data.Conversations
{
public record struct Conversation([property:JsonPropertyName("conversation_id")] ulong ConversationId,
[property:JsonPropertyName("title")] string Title,
[property:JsonPropertyName("creation_date")] ulong CreationDate,
[property:JsonPropertyName("creator_id")] ulong CreatorId,
[property:JsonPropertyName("last_message_date")] ulong LastMessageDate,
[property:JsonPropertyName("last_read_date")] ulong LastReadDate,
[property:JsonPropertyName("open")] bool Open,
[property:JsonPropertyName("reply_count")] ulong ReplyCount,
[property:JsonPropertyName("recipient_ids")] ulong[] RecipientIds);

public record struct Reply([property:JsonPropertyName("message_id")] ulong MessageId,
[property:JsonPropertyName("message_date")] ulong MessageDate,
[property:JsonPropertyName("author_id")] ulong AuthorId,
[property:JsonPropertyName("message")] string Message);
}

34 changes: 0 additions & 34 deletions mcm4csharp/v1/Data/Conversations/Conversation.cs

This file was deleted.

16 changes: 16 additions & 0 deletions mcm4csharp/v1/Data/Extensions.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
using System;
using mcm4csharp.v1.Data.Content;

namespace mcm4csharp.v1.Data
{
public static class Extensions
{
public static Dictionary<string, string> ToDict (this Sortable sortable) =>
new () {
{ "sort", sortable.Sort },
{ "order", sortable.Order },
{ "page", sortable.Page.ToString () }
};
}
}

37 changes: 37 additions & 0 deletions mcm4csharp/v1/Data/Members.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
using System;
using System.Text.Json.Serialization;

namespace mcm4csharp.v1.Data.Members
{
public record struct Ban([property:JsonPropertyName("member_id")] ulong MemberId,
[property:JsonPropertyName("banned_by_id")] ulong BannedById,
[property:JsonPropertyName("ban_date")] ulong BannedDate,
[property:JsonPropertyName("reason")] string Reason);

public record struct Member([property:JsonPropertyName("member_id")] ulong MemberId,
[property:JsonPropertyName("username")] string Username,
[property:JsonPropertyName("join_date")] ulong JoinDate,
[property:JsonPropertyName("last_activity_date")] ulong? LastActivityDate,
[property:JsonPropertyName("banned")] bool Banned,
[property:JsonPropertyName("suspended")] bool Suspended,
[property:JsonPropertyName("restricted")] bool Restricted,
[property:JsonPropertyName("disabled")] bool Disabled,
[property:JsonPropertyName("premium")] bool Premium,
[property:JsonPropertyName("supreme")] bool Supreme,
[property:JsonPropertyName("ultimate")] bool Ultimate,
[property:JsonPropertyName("discord_id")] ulong? DiscordId,
[property:JsonPropertyName("avatar_url")] string AvatarUrl,
[property:JsonPropertyName("post_count")] ulong PostCount,
[property:JsonPropertyName("resource_count")] ulong ResourceCount,
[property:JsonPropertyName("purchase_count")] ulong PurchaseCount,
[property:JsonPropertyName("feedback_positive")] ulong PositiveFeedback,
[property:JsonPropertyName("feedback_neutral")] ulong NeutralFeedback,
[property:JsonPropertyName("feedback_negative")] ulong NegativeFeedback);

public record struct ProfilePost([property:JsonPropertyName("profile_post_id")] ulong ProfilePostId,
[property:JsonPropertyName("author_id")] ulong AuthorId,
[property:JsonPropertyName("post_date")] ulong PostDate,
[property:JsonPropertyName("message")] string Message,
[property:JsonPropertyName("comment_count")] ulong CommentCount);
}