using Complex.Application.Services.Utility; using Flurl.Http; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Complex.Infrastructure { public class SmsService : ISendUserMessage { private string token = "AccessKey jhVG8oE8XSE7YNAWjQcFO-cY7QBykZlSZ_Ymb98A8k8="; private string url = "http://rest.ippanel.com"; private string originator = "+98100020400"; //private string originator = "+985000262810"; private FlurlClient _client = null; public FlurlClient Client { get { if (_client == null) { _client = new FlurlClient(url).WithHeader("Authorization", token).AllowHttpStatus("4xx"); _client.BaseUrl = url; } return _client; } } private async Task> BaseSend(string urlPath, object postData) where T : Data, new() { try { var response = await Client.Request(urlPath) .PostJsonAsync(postData); return await response.GetJsonAsync>(); } catch (Exception ex) { var data = new T { error = ex.Message }; return new Response { data = data }; } } public async Task> Send(object message, string[] to) { var postData = new { originator = originator, recipients = to, message = message }; return await BaseSend("/v1/messages", postData); } public async Task> SendPattern(string patternCode, string to, object values) { var postData = new { pattern_code = patternCode, originator = originator, recipient = to, values = values }; return await BaseSend("/v1/messages/patterns/send", postData); } } }