/// <summary> /// Check email or mobile id /// 检查Email或手机编号 /// </summary> /// <param name="id">Email or mobile</param> /// <param name="region">Region</param> /// <param name="isEmail">Is email</param> /// <returns>Result, null means failure</returns> public static string?CheckId(string id, string region, out bool isEmail) { if (string.IsNullOrEmpty(id)) { isEmail = false; return(null); } isEmail = id.Contains('@'); if (isEmail) { // Try parse if (MailboxAddress.TryParse(id, out var emailAddress)) { return(emailAddress.Address); } } else { // Try parse and format var phone = AddressRegion.CreatePhone(id, region); if (phone != null) { return(phone.ToInternationalFormat()); } } return(null); }
public PCIBaseAddress (uint address, uint size, AddressRegion region, bool prefetchable) { this.address = address; this.size = size; this.region = region; this.prefetchable = prefetchable; }
public PCIBaseAddress(uint address, uint size, AddressRegion region, bool prefetchable) { this.address = address; this.size = size; this.region = region; this.prefetchable = prefetchable; }
/// <summary> /// Constructor /// 构造函数 /// </summary> /// <param name="httpClient">Http client, use IHttpClientFactory to create, services.AddHttpClient</param> /// <param name="smsUser">SMS User</param> /// <param name="smsKey">SMS key</param> /// <param name="region">Demestic country or region</param> public SMSClient(HttpClient httpClient, string smsUser, string smsKey, AddressRegion region) : base(httpClient) { this.httpClient = httpClient; this.smsUser = smsUser; this.smsKey = smsKey; Region = region; }
public void Extensions_UniquePhones_Tests() { // Arrange var phones = AddressRegion.CreatePhones(new[] { "13853259135", "+64210722065", "+8613853259135" }, "CN"); // Act & assert Assert.AreEqual(2, phones.UniquePhones().Count()); }
public void Countries_GetByIdd_Tests() { // Arrange & act var country = AddressRegion.GetByIdd("64"); // Assert Assert.IsTrue(country?.Id == "NZ"); }
public void Countries_GetById_Tests() { // Arrange & act var country = AddressRegion.GetById("CN"); // Assert Assert.IsTrue(country?.Currency == "CNY"); }
public void Countries_CreatePhone_BulkTests(string phoneNumber, string region, string formatedNumber, bool isMobile) { // Arrange & act var phone = AddressRegion.CreatePhone(phoneNumber); Assert.AreEqual(region, phone?.Region); Assert.AreEqual(formatedNumber, phone?.PhoneNumber); Assert.AreEqual(isMobile, phone?.IsMobile); }
public void Countries_CreatePhones_Test() { // Arrange var phoneNumbers = new List <string> { "+8613832922812", "+86532555792", "53255579200" }; // Act var phones = AddressRegion.CreatePhones(phoneNumbers, "CN"); // Assert Assert.AreEqual(1, phones.Count()); }
public void CountryPhone_ToInternationalFormat_Tests() { // Arrange var phone = AddressRegion.CreatePhone("0210722065", "NZ"); // Act 1 var result1 = phone?.ToInternationalFormat(); // Assert 1 Assert.AreEqual("+64210722065", result1); // Act 2 var result2 = phone?.ToInternationalFormat("00"); // Assert 2 Assert.AreEqual("0064210722065", result2); }
/// <summary> /// Constructor /// 构造函数 /// </summary> /// <param name="httpClient">Http client, use IHttpClientFactory to create, services.AddHttpClient</param> /// <param name="smsUser">SMS User</param> /// <param name="smsKey">SMS key</param> /// <param name="secureManager">Secure manager</param> public SMSClient(HttpClient httpClient, IConfigurationSection section, Func <string, string>?secureManager = null) : this( httpClient, CryptographyUtils.UnsealData(section.GetValue <string>("SMSUser"), secureManager), CryptographyUtils.UnsealData(section.GetValue <string>("SMSKey"), secureManager), AddressRegion.GetById(section.GetValue <string>("Region")) ?? AddressRegion.CN ) { // var templates = section.GetSection("Templates").Get<TemplateItem[]>(); var templates = section.GetSection("Templates").GetChildren().Select(item => new TemplateItem( Enum.Parse <TemplateKind>(item.GetValue <string>("Kind")), item.GetValue <string>("TemplateId"), item.GetValue <string>("EndPoint"), item.GetValue <string>("Region"), item.GetValue <string>("Language"), item.GetValue <string>("Signature"), item.GetValue("Default", false) )); AddTemplates(templates); }
/// <summary> /// Async send SMS /// 异步发送短信 /// </summary> /// <param name="kind">Template kind</param> /// <param name="mobiles">Mobiles</param> /// <param name="vars">Variables</param> /// <param name="template">Template</param> /// <returns>Result</returns> public async Task <ActionResult> SendAsync(TemplateKind kind, IEnumerable <string> mobiles, Dictionary <string, string> vars, TemplateItem?template = null) { return(await SendAsync(kind, AddressRegion.CreatePhones(mobiles, Region.Id), vars, template)); }