| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 | using System;using System.Collections.Generic;using System.IO;using InABox.API;using InABox.Core;namespace PRSServer{    public class SMSProviderProperties : BaseObject    {        public SMSProviderType ProviderType { get; set; }        public string Properties { get; set; }        public static BaseSMSProviderProperties? ToProperties(SMSProviderType type, string? properties)        {            return type switch            {                SMSProviderType.Exchange =>                    Serialization.Deserialize<ExchangeProviderProperties>(properties)                        ?? new ExchangeProviderProperties(),                SMSProviderType.IMAP =>                    Serialization.Deserialize<IMAPProviderProperties>(properties)                        ?? new IMAPProviderProperties(),                SMSProviderType.ASPSMS =>                    Serialization.Deserialize<ASPSMSProviderProperties>(properties)                        ?? new ASPSMSProviderProperties(),                SMSProviderType.Twilio =>                    Serialization.Deserialize<TwilioProviderProperties>(properties)                        ?? new TwilioProviderProperties(),                _ => null            };        }        public BaseSMSProviderProperties? ToProperties()        {            return ToProperties(ProviderType, Properties);        }    }    public class BaseSMSProviderProperties : BaseObject    {    }    public class ExchangeProviderProperties : BaseSMSProviderProperties    {        [TextBoxEditor]        [EditorSequence(1)]        public string Host { get; set; }        [IntegerEditor]        [EditorSequence(2)]        public int Port { get; set; }        [TextBoxEditor]        [EditorSequence(3)]        public string EmailAddress { get; set; }        [PasswordEditor]        [EditorSequence(4)]        public string Password { get; set; }    }    public class IMAPProviderProperties : BaseSMSProviderProperties    {        [TextBoxEditor]        [EditorSequence(1)]        public string Host { get; set; }        [IntegerEditor]        [EditorSequence(2)]        public int Port { get; set; }        [TextBoxEditor]        [EditorSequence(3)]        public string EmailAddress { get; set; }        [PasswordEditor]        [EditorSequence(4)]        public string Password { get; set; }    }    public class ASPSMSProviderProperties : BaseSMSProviderProperties    {        [TextBoxEditor]        [EditorSequence(1)]        public string Userkey { get; set; }        [PasswordEditor]        [EditorSequence(2)]        public string APIPassword { get; set; }    }        public class TwilioProviderProperties : BaseSMSProviderProperties    {        [TextBoxEditor]        [EditorSequence(1)]        public string AccountSID { get; set; }        [PasswordEditor]        [EditorSequence(2)]        public string AuthToken { get; set; }        [TextBoxEditor]        [EditorSequence(3)]        public string Number { get; set; }    }}
 |