using DomainResults.Common; using DataProviders.Collections; using CryptoProvider; using JWTService; using WeatherForecast.Models.Requests; using Core.Abstractions; namespace WeatherForecast.Services { /// /// /// public interface IPasswordService { /// /// /// /// /// /// /// (Guid?, IDomainResult) Post(Guid siteId, Guid userId, PasswordRequestModel requestData); } /// /// /// public class PasswordService : ServiceBase, IPasswordService { private readonly IUserDataProvider _userDataProvider; /// /// /// /// /// /// /// public PasswordService( ILogger logger, IUserDataProvider userDataProvider ) : base(logger) { _userDataProvider = userDataProvider; } /// /// /// /// /// /// public (Guid?, IDomainResult) Post(Guid siteId, Guid userId, PasswordRequestModel requestData) { try { var (salt, hash) = HashService.CreateSaltedHash(requestData.Password); return IDomainResult.Success(Guid.NewGuid()); } catch (Exception ex) { _logger.LogError("Unhandled exception", ex); return IDomainResult.Failed(); } } } }