using LanguageExt.Common; using Microsoft.AspNetCore.Identity; using W542.GandalfReborn.Commands; using W542.GandalfReborn.Extensions; using W542.GandalfReborn.Handlers.Commands; namespace W542.GandalfReborn.Handlers.Security; public class PasswordHashingHandler(IPasswordHasher passwordHasher) : IGrCommandHandler> { private static readonly object MicrosoftIsAMeme = new(); public Task> Handle(HashPasswordCommand command, CancellationToken cancellationToken) { try { var hash = passwordHasher.HashPassword(MicrosoftIsAMeme, command.RawPassword); return Task.FromResult(hash.AsResult()); } catch (Exception) { return Task.FromResult("Something went wrong while hashing password.".AsErrorResult()); } } }