139 lines
4.3 KiB
C#
139 lines
4.3 KiB
C#
using GreenHome.Sms.Ippanel;
|
|
using Microsoft.AspNetCore.Mvc;
|
|
|
|
namespace GreenHome.Api.Controllers;
|
|
|
|
/// <summary>
|
|
/// Controller for testing SMS service
|
|
/// </summary>
|
|
[ApiController]
|
|
[Route("api/[controller]")]
|
|
public class SmsTestController : ControllerBase
|
|
{
|
|
private readonly ISmsService smsService;
|
|
private readonly ILogger<SmsTestController> logger;
|
|
|
|
public SmsTestController(ISmsService smsService, ILogger<SmsTestController> logger)
|
|
{
|
|
this.smsService = smsService;
|
|
this.logger = logger;
|
|
}
|
|
|
|
/// <summary>
|
|
/// Test sending Webservice SMS
|
|
/// </summary>
|
|
/// <param name="request">SMS request details</param>
|
|
/// <returns>SMS response</returns>
|
|
[HttpPost("webservice")]
|
|
public async Task<IActionResult> 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
|
|
});
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// Test sending Pattern SMS
|
|
/// </summary>
|
|
/// <param name="request">Pattern SMS request details</param>
|
|
/// <returns>SMS response</returns>
|
|
[HttpPost("pattern")]
|
|
public async Task<IActionResult> 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
|
|
});
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// Quick test with default values (for easy testing)
|
|
/// </summary>
|
|
/// <param name="phoneNumber">Phone number to send SMS to</param>
|
|
/// <returns>SMS response</returns>
|
|
[HttpPost("quick-test/{phoneNumber}")]
|
|
public async Task<IActionResult> 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
|
|
});
|
|
}
|
|
}
|
|
}
|
|
|