예제 #1
0
        public async Task LogSms(TSmsLog smsLog)
        {
            try
            {
                using (var scope = _serviceScope.CreateScope())
                {
                    var dbcontext = scope.ServiceProvider.GetService <authDbContext>();

                    smsLog.LastFailed   = null;
                    smsLog.Lastmodified = null;
                    smsLog.Createddate  = DateTime.Now;
                    dbcontext.TSmsLog.Add(smsLog);
                    await dbcontext.SaveChangesAsync();
                }
            }
            catch (Exception ex)
            {
                _logger.LogError(ex.Message);
            }
        }
예제 #2
0
        private async Task <bool> SendGeneralSms(string messages, string sender, string phonenumber)
        {
            var cred = GetSmsCredentials();

            // Get the SMS Provider
            switch (Enum.Parse(typeof(SMSProviderEnum), cred.ActiveSmsProvider))
            {
            case SMSProviderEnum.Twilio:
                // Twilio SMS Credentials
                var appSettingsSection = _config.GetSection("TwilioKey");
                var appSettings        = appSettingsSection.Get <TwilioKey>();

                //Check Intervals
                var twi_message = SendMessage
                                  .SendSingleMessage(appSettings.ACCOUNTSID, appSettings.AUTHTOKEN, messages, sender, phonenumber);
                break;

            case SMSProviderEnum.Nexmo:

                //Nexmo SMS Credentials
                var appNex         = _config.GetSection("NexmoKey");
                var appSettingsNex = appNex.Get <NexmoKey>();

                var nex_message = SendNexmoMessage
                                  .SendSingleNexmoMessage(appSettingsNex.APIKEY, appSettingsNex.APISECRET, messages, sender, phonenumber);
                break;

            case SMSProviderEnum.SMSProviderNG:
                //SMS Provider NG Credentials
                var apppProv        = _config.GetSection("SMSProviderNGKey");
                var appSettingsProv = apppProv.Get <SMSProviderNGKey>();

                string message = SMSProviderNGsms.SendSingleSMSProviderMessage(appSettingsProv.USERNAME, appSettingsProv.PASSWORD,
                                                                               messages, sender, phonenumber);

                ResponseResult value = JsonConvert.DeserializeObject <ResponseResult>(message);
                if (value.status == "OK")
                {
                    //Log Sent message
                    TSmsLog newrec = new TSmsLog
                    {
                        Sendimmediately = true,
                        Datetosend      = DateTime.Now,
                        CanSend         = true,
                        Name            = sender,
                        From            = sender,
                        Sent            = true,
                        To           = phonenumber,
                        Message      = messages,
                        ErrorMessage = message,
                        Subject      = sender,
                        Createdby    = "Anonymous",
                    };
                    await LogSms(newrec);
                }
                else
                {
                    //Log Sent message
                    TSmsLog newrec = new TSmsLog
                    {
                        Sendimmediately = true,
                        Datetosend      = DateTime.Now,
                        CanSend         = true,
                        Name            = sender,
                        From            = sender,
                        Message         = messages,
                        ErrorMessage    = message,
                        Sent            = false,
                        To        = phonenumber,
                        Subject   = sender,
                        Createdby = "Anonymous",
                    };
                    await LogSms(newrec);
                }

                break;

            default:
                break;
            }
            return(true);
        }