From 9800ced6cdca56821374dfce7f01614539e97451 Mon Sep 17 00:00:00 2001 From: Jonathan Bourdon Date: Mon, 7 Apr 2025 14:12:37 -0400 Subject: [PATCH] Remove EnumExtensions.cs --- backend/src/Web/Extensions/EnumExtensions.cs | 34 ------------------- .../Features/Contents/Handlers/AddReaction.cs | 14 ++++++-- .../Features/Contents/Handlers/GetContent.cs | 5 ++- .../Contents/Handlers/GetContentsByCreator.cs | 5 ++- .../Contents/Handlers/GetFeaturedContents.cs | 5 ++- 5 files changed, 17 insertions(+), 46 deletions(-) delete mode 100644 backend/src/Web/Extensions/EnumExtensions.cs diff --git a/backend/src/Web/Extensions/EnumExtensions.cs b/backend/src/Web/Extensions/EnumExtensions.cs deleted file mode 100644 index c820a5e..0000000 --- a/backend/src/Web/Extensions/EnumExtensions.cs +++ /dev/null @@ -1,34 +0,0 @@ -namespace Hutopy.Web.Extensions; - -public static class EnumExtensions -{ - /// - /// Converts a string to the specified enum type. - /// - /// The type of the enum to convert to. Must be an enum. - /// The string value to convert. - /// Specifies whether the string comparison should ignore case. Default is true. - /// - /// The corresponding enum value if the conversion is successful; otherwise, null if the string - /// cannot be converted to the specified enum type. - /// - public static TEnum? ToEnum(this string value, bool ignoreCase = true) where TEnum : struct - { - if (Enum.TryParse(value, ignoreCase, out TEnum result)) - { - return result; - } - return null; - } - - /// - /// Converts an enum value to its string representation. - /// - /// The type of the enum. - /// The enum value to convert. - /// The string representation of the enum value. - public static string FromEnum(this TEnum enumValue) where TEnum : struct, Enum - { - return enumValue.ToString(); - } -} diff --git a/backend/src/Web/Features/Contents/Handlers/AddReaction.cs b/backend/src/Web/Features/Contents/Handlers/AddReaction.cs index 301f200..8002c8f 100644 --- a/backend/src/Web/Features/Contents/Handlers/AddReaction.cs +++ b/backend/src/Web/Features/Contents/Handlers/AddReaction.cs @@ -1,5 +1,4 @@ -using Hutopy.Web.Extensions; -using Hutopy.Web.Features.Contents.Data; +using Hutopy.Web.Features.Contents.Data; using Hutopy.Web.Features.Contents.Data.Enums; namespace Hutopy.Web.Features.Contents.Handlers; @@ -47,7 +46,16 @@ public class AddReaction( CancellationToken ct) { var content = await context.Contents.SingleAsync(x => x.Id == req.ContentId, ct); - var reactionEnum = req.Reaction.ToEnum(); + Reaction? reactionEnum; + if (Enum.TryParse(req.Reaction, true, out Reaction result)) + { + reactionEnum = result; + } + else + { + reactionEnum = null; + } + var currentReaction = content.Reactions.SingleOrDefault(x => x.UserId == req.UserId); // Already reacted or reaction didn't change, do nothing diff --git a/backend/src/Web/Features/Contents/Handlers/GetContent.cs b/backend/src/Web/Features/Contents/Handlers/GetContent.cs index 9479008..beaa814 100644 --- a/backend/src/Web/Features/Contents/Handlers/GetContent.cs +++ b/backend/src/Web/Features/Contents/Handlers/GetContent.cs @@ -1,5 +1,4 @@ -using Hutopy.Web.Extensions; -using Hutopy.Web.Features.Contents.Data; +using Hutopy.Web.Features.Contents.Data; using Hutopy.Web.Features.Contents.Handlers.Models; namespace Hutopy.Web.Features.Contents.Handlers; @@ -44,7 +43,7 @@ public class GetContent( HtmlFileUrl = c.HtmlFileUrl ?? "", Reactions = c.Reactions.Select(x => new ReactionModel { - Reaction = x.Reaction.FromEnum(), UserId = x.UserId, UserName = x.UserName + Reaction = x.Reaction.ToString(), UserId = x.UserId, UserName = x.UserName }).ToList() }) .SingleOrDefaultAsync( diff --git a/backend/src/Web/Features/Contents/Handlers/GetContentsByCreator.cs b/backend/src/Web/Features/Contents/Handlers/GetContentsByCreator.cs index 79dfc8f..78e09fb 100644 --- a/backend/src/Web/Features/Contents/Handlers/GetContentsByCreator.cs +++ b/backend/src/Web/Features/Contents/Handlers/GetContentsByCreator.cs @@ -1,5 +1,4 @@ -using Hutopy.Web.Extensions; -using Hutopy.Web.Features.Contents.Data; +using Hutopy.Web.Features.Contents.Data; using Hutopy.Web.Features.Contents.Handlers.Models; namespace Hutopy.Web.Features.Contents.Handlers; @@ -55,7 +54,7 @@ public class GetContentsByCreatorHandler( HtmlFileUrl = c.HtmlFileUrl ?? "", Reactions = c.Reactions.Select(x => new ReactionModel { - Reaction = x.Reaction.FromEnum(), + Reaction = x.Reaction.ToString(), UserId = x.UserId, UserName = x.UserName }).ToList() diff --git a/backend/src/Web/Features/Contents/Handlers/GetFeaturedContents.cs b/backend/src/Web/Features/Contents/Handlers/GetFeaturedContents.cs index 9b0e915..f213b9c 100644 --- a/backend/src/Web/Features/Contents/Handlers/GetFeaturedContents.cs +++ b/backend/src/Web/Features/Contents/Handlers/GetFeaturedContents.cs @@ -1,5 +1,4 @@ -using Hutopy.Web.Extensions; -using Hutopy.Web.Features.Contents.Data; +using Hutopy.Web.Features.Contents.Data; using Hutopy.Web.Features.Contents.Handlers.Models; namespace Hutopy.Web.Features.Contents.Handlers; @@ -53,7 +52,7 @@ public class GetFeaturedContentsHandler( ThumbnailUrl = c.ThumbnailUrl, Reactions = c.Reactions.Select(x => new ReactionModel { - Reaction = x.Reaction.FromEnum(), + Reaction = x.Reaction.ToString(), UserId = x.UserId, UserName = x.UserName }).ToList()