using GreenHome.Sms.Ippanel; using Microsoft.AspNetCore.Mvc; namespace GreenHome.Api.Controllers; /// /// Controller for testing SMS service /// [ApiController] [Route("api/[controller]")] public class SmsTestController : ControllerBase { private readonly ISmsService smsService; private readonly ILogger logger; public SmsTestController(ISmsService smsService, ILogger logger) { this.smsService = smsService; this.logger = logger; } /// /// Test sending Webservice SMS /// /// SMS request details /// SMS response [HttpPost("webservice")] public async Task TestWebserviceSms([FromBody] WebserviceSmsRequest request) { try { logger.LogInformation("Testing Webservice SMS to {Recipient}", request.Recipient); var result = await smsService.SendWebserviceSmsAsync(request); logger.LogInformation("Webservice SMS sent successfully."); return Ok(new { success = true, message = "پیامک با موفقیت ارسال شد", data = result }); } catch (Exception ex) { logger.LogError(ex, "Error sending Webservice SMS"); return StatusCode(500, new { success = false, message = "خطا در ارسال پیامک", error = ex.Message }); } } /// /// Test sending Pattern SMS /// /// Pattern SMS request details /// SMS response [HttpPost("pattern")] public async Task TestPatternSms([FromBody] PatternSmsRequest request) { try { logger.LogInformation("Testing Pattern SMS to {Recipient} with pattern {PatternCode}", request.Recipients, request.PatternCode); var result = await smsService.SendPatternSmsAsync(request); logger.LogInformation("Pattern SMS sent successfully"); return Ok(new { success = true, message = "پیامک با موفقیت ارسال شد", data = result }); } catch (Exception ex) { logger.LogError(ex, "Error sending Pattern SMS"); return StatusCode(500, new { success = false, message = "خطا در ارسال پیامک", error = ex.Message }); } } /// /// Quick test with default values (for easy testing) /// /// Phone number to send SMS to /// SMS response [HttpPost("quick-test/{phoneNumber}")] public async Task QuickTest(string phoneNumber) { try { logger.LogInformation("Quick test SMS to {PhoneNumber}", phoneNumber); var request = new WebserviceSmsRequest { Sender = "10001001", // شما می‌توانید این را از تنظیمات بخوانید Recipient = phoneNumber, Message = "این یک پیامک تست از سرویس GreenHome است. " + DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss") }; var result = await smsService.SendWebserviceSmsAsync(request); return Ok(new { success = true, message = "پیامک تست با موفقیت ارسال شد", data = result, testInfo = new { phoneNumber, sentAt = DateTime.Now } }); } catch (Exception ex) { logger.LogError(ex, "Error in quick test SMS"); return StatusCode(500, new { success = false, message = "خطا در ارسال پیامک تست", error = ex.Message }); } } }