using Microsoft.Extensions.Hosting; namespace Brizco.Infrastructure.Services; public class SmsService : ISmsService { private readonly IRestApiWrapper _restApiWrapper; private readonly ILogger _logger; private readonly IHostEnvironment _environment; private readonly SiteSettings _siteSettings; public SmsService( IRestApiWrapper restApiWrapper, IOptionsSnapshot optionsSnapshot, ILogger logger, IHostEnvironment environment) { _restApiWrapper = restApiWrapper; _logger = logger; _environment = environment; _siteSettings = optionsSnapshot.Value; } public async Task SendForgerPasswordAsync(string phoneNumber, string newPassword) { var rest = await _restApiWrapper.KaveNegarRestApi.SendLookUp(_siteSettings.KaveNegarApiKey, phoneNumber, newPassword, null, null, null, "forgetPassword"); if (rest.Return.status != 200) throw new BaseApiException(ApiResultStatusCode.SendSmsError, rest.Return.message); } public async Task SendVerifyCodeAsync(string phoneNumber, string verifyCode) { try { var rest = await _restApiWrapper.KaveNegarRestApi.SendLookUp(_siteSettings.KaveNegarApiKey, phoneNumber, verifyCode, null, null, null, "login-brizco"); if (rest.Return.status != 200 && _environment.IsProduction()) throw new BaseApiException(ApiResultStatusCode.SendSmsError, rest.Return.message); } catch (ApiException apiException) { if (_environment.IsProduction()) throw ; else _logger.LogError(apiException.Message); } } }