feat: upgrade to .NET 6, refactor everything

This commit is contained in:
spiral
2021-11-26 21:10:56 -05:00
parent d28e99ba43
commit 1918c56937
314 changed files with 27954 additions and 27966 deletions

View File

@@ -1,78 +1,78 @@
using System;
using PluralKit.Core;
namespace PluralKit.Bot
namespace PluralKit.Bot;
public static class GroupMemberUtils
{
public static class GroupMemberUtils
public static string GenerateResponse(Groups.AddRemoveOperation action, int memberCount, int groupCount,
int actionedOn, int notActionedOn)
{
public static string GenerateResponse(Groups.AddRemoveOperation action, int memberCount, int groupCount, int actionedOn, int notActionedOn)
var op = action;
var actionStr = action == Groups.AddRemoveOperation.Add ? "added to" : "removed from";
var containStr = action == Groups.AddRemoveOperation.Add ? "in" : "not in";
var emojiStr = actionedOn > 0 ? Emojis.Success : Emojis.Error;
var memberPlural = memberCount > 1;
var groupPlural = groupCount > 1;
// sanity checking: we can't add multiple groups to multiple members (at least for now)
if (memberPlural && groupPlural)
throw new ArgumentOutOfRangeException();
// sanity checking: we can't act/not act on a different number of entities than we have
if (memberPlural && actionedOn + notActionedOn != memberCount)
throw new ArgumentOutOfRangeException();
if (groupPlural && actionedOn + notActionedOn != groupCount)
throw new ArgumentOutOfRangeException();
// name generators
string MemberString(int count, bool capitalize = false)
=> capitalize
? count == 1 ? "Member" : "Members"
: count == 1
? "member"
: "members";
string GroupString(int count)
=> count == 1 ? "group" : "groups";
// string generators
string ResponseString()
{
var op = action;
if (actionedOn > 0 && notActionedOn > 0 && memberPlural)
return $"{actionedOn} {MemberString(actionedOn)} {actionStr} {GroupString(groupCount)}";
if (actionedOn > 0 && notActionedOn > 0 && groupPlural)
return $"{MemberString(memberCount, true)} {actionStr} {actionedOn} {GroupString(actionedOn)}";
if (notActionedOn == 0)
return $"{MemberString(memberCount, true)} {actionStr} {GroupString(groupCount)}";
if (actionedOn == 0)
return $"{MemberString(memberCount, true)} not {actionStr} {GroupString(groupCount)}";
var actionStr = action == Groups.AddRemoveOperation.Add ? "added to" : "removed from";
var containStr = action == Groups.AddRemoveOperation.Add ? "in" : "not in";
var emojiStr = actionedOn > 0 ? Emojis.Success : Emojis.Error;
var memberPlural = memberCount > 1;
var groupPlural = groupCount > 1;
// sanity checking: we can't add multiple groups to multiple members (at least for now)
if (memberPlural && groupPlural)
throw new ArgumentOutOfRangeException();
// sanity checking: we can't act/not act on a different number of entities than we have
if (memberPlural && (actionedOn + notActionedOn) != memberCount)
throw new ArgumentOutOfRangeException();
if (groupPlural && (actionedOn + notActionedOn) != groupCount)
throw new ArgumentOutOfRangeException();
// name generators
string MemberString(int count, bool capitalize = false)
=> capitalize
? (count == 1 ? "Member" : "Members")
: (count == 1 ? "member" : "members");
string GroupString(int count)
=> count == 1 ? "group" : "groups";
// string generators
string ResponseString()
{
if (actionedOn > 0 && notActionedOn > 0 && memberPlural)
return $"{actionedOn} {MemberString(actionedOn)} {actionStr} {GroupString(groupCount)}";
if (actionedOn > 0 && notActionedOn > 0 && groupPlural)
return $"{MemberString(memberCount, capitalize: true)} {actionStr} {actionedOn} {GroupString(actionedOn)}";
if (notActionedOn == 0)
return $"{MemberString(memberCount, capitalize: true)} {actionStr} {GroupString(groupCount)}";
if (actionedOn == 0)
return $"{MemberString(memberCount, capitalize: true)} not {actionStr} {GroupString(groupCount)}";
throw new ArgumentOutOfRangeException();
}
string InfoMessage()
{
if (notActionedOn == 0) return $"";
var msg = "";
if (actionedOn > 0 && memberPlural)
msg += $"{notActionedOn} {MemberString(notActionedOn)}";
else
msg += $"{MemberString(memberCount)}";
msg += $" already {containStr}";
if (actionedOn > 0 && groupPlural)
msg += $" {notActionedOn} {GroupString(notActionedOn)}";
else
msg += $" {GroupString(groupCount)}";
return $" ({msg})";
}
return $"{emojiStr} {ResponseString()}{InfoMessage()}.";
throw new ArgumentOutOfRangeException();
}
string InfoMessage()
{
if (notActionedOn == 0) return "";
var msg = "";
if (actionedOn > 0 && memberPlural)
msg += $"{notActionedOn} {MemberString(notActionedOn)}";
else
msg += $"{MemberString(memberCount)}";
msg += $" already {containStr}";
if (actionedOn > 0 && groupPlural)
msg += $" {notActionedOn} {GroupString(notActionedOn)}";
else
msg += $" {GroupString(groupCount)}";
return $" ({msg})";
}
return $"{emojiStr} {ResponseString()}{InfoMessage()}.";
}
}