コード例 #1
0
 public ChildrenWorksController(ISMSSender smsSender, ILogger <AccountController> logger, UserManager <ApplicationUser> userManager, ApplicationDbContext context)
 {
     _context     = context;
     _userManager = userManager;
     _logger      = logger;
     _smsSender   = smsSender;
 }
コード例 #2
0
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="localizer"></param>
 /// <param name="configuration"></param>
 /// <param name="loggerFactory"></param>
 /// <param name="logger"></param>
 /// <param name="slotRepository"></param>
 /// <param name="placeRepository"></param>
 /// <param name="userRepository"></param>
 /// <param name="visitorRepository"></param>
 /// <param name="placeProviderRepository"></param>
 /// <param name="mojeEZdravie"></param>
 /// <param name="emailSender"></param>
 /// <param name="smsSender"></param>
 public AdminController(
     IStringLocalizer <AdminController> localizer,
     IConfiguration configuration,
     ILoggerFactory loggerFactory,
     ILogger <AdminController> logger,
     ISlotRepository slotRepository,
     IPlaceRepository placeRepository,
     IUserRepository userRepository,
     IVisitorRepository visitorRepository,
     IPlaceProviderRepository placeProviderRepository,
     IMojeEZdravie mojeEZdravie,
     IEmailSender emailSender,
     ISMSSender smsSender
     )
 {
     this.localizer               = localizer;
     this.loggerFactory           = loggerFactory;
     this.logger                  = logger;
     this.slotRepository          = slotRepository;
     this.placeRepository         = placeRepository;
     this.userRepository          = userRepository;
     this.configuration           = configuration;
     this.visitorRepository       = visitorRepository;
     this.placeProviderRepository = placeProviderRepository;
     this.mojeEZdravie            = mojeEZdravie;
     this.emailSender             = emailSender;
     this.smsSender               = smsSender;
 }
コード例 #3
0
ファイル: SendSMS.cs プロジェクト: yj1118/CodeArt-Framework
        protected override DTObject DynamicInvoke(dynamic arg)
        {
            var provider = arg.Provider;

            if (string.IsNullOrEmpty(provider))
            {
                provider = "winic";
            }

            IEnumerable <string> mobileNumbers = arg.MobileNumbers.OfType <string>();

            ISMSSender sender = SMSSenderProvider.GetSender(provider);

            if (sender == null)
            {
                throw new BusinessException(string.Format("没有找到短信提供商{0}", provider));
            }

            var message = arg.Message;

            Parallel.ForEach(mobileNumbers, (mobileNumber) =>
            {
                if (string.IsNullOrEmpty(mobileNumber))
                {
                    return;
                }

                sender.Send(mobileNumber, message);
            });
            return(DTObject.Empty);
        }
コード例 #4
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="smsSender"></param>
        /// <param name="phone"></param>
        /// <param name="code"></param>
        /// <param name="userId"></param>
        /// <param name="culture"></param>
        /// <returns></returns>
        public static async Task <SMSLog> SendSMSVerifyAccountAsync(this ISMSSender smsSender, string phone, string code, string userId, string culture)
        {
            var message = string.Empty;

            switch (culture)
            {
            case "vi-VN":
                message = $"Ma xac nhan cua ban la {code}";
                break;

            case "en-US":
                message = $"Your verify code is {code}";
                break;

            default:
                message = $"Ma xac nhan cua ban la {code}";
                break;
            }
            var response = await smsSender.SendSMSAsync(phone, message);

            return(new SMSLog()
            {
                ObjectId = userId,
                ObjectType = "users",
                Phone = phone,
                Message = message,
                SendTime = DateTime.UtcNow,
                MessageId = response.messageId,
                ErrorCode = response.error_code,
                ErrorDetail = response.error_detail,
                Type = TypeNotification.VerifyAccount.ToString()
            });
        }
コード例 #5
0
 public WorkflowMessageService(IMessageTemplateService messageTemplateService,
     IQueuedEmailService queuedEmailService,
     ILanguageService languageService,
     ITokenizer tokenizer, 
     IEmailAccountService emailAccountService,
     IMessageTokenProvider messageTokenProvider,
     IStoreService storeService,
     IStoreContext storeContext,
     EmailAccountSettings emailAccountSettings,
     IEventPublisher eventPublisher,
     ISMSSender smsSender,
     SMSSettings smsSettings)
 {
     this._messageTemplateService = messageTemplateService;
     this._queuedEmailService = queuedEmailService;
     this._languageService = languageService;
     this._tokenizer = tokenizer;
     this._emailAccountService = emailAccountService;
     this._messageTokenProvider = messageTokenProvider;
     this._storeService = storeService;
     this._storeContext = storeContext;
     this._emailAccountSettings = emailAccountSettings;
     this._eventPublisher = eventPublisher;
     this._smsSender = smsSender;
     this._smsSettings = smsSettings;
 }
コード例 #6
0
ファイル: FormOverview.cs プロジェクト: assalvatierra/SEO2017
        private void refreshbutton_Click(object sender, EventArgs e)
        {
            //get list of new messages
            LabSys = SMS.GetSystem("Laboratory");
            DataTable MessageList = LabSys.GetDetails();

            //dataGridView1.DataSource = MessageList;

            sendbutton.Hide();

            //clear table
            dataGridView1.Rows.Clear();

            //convert datasource to list
            List <DataRow> Messagelist = MessageList.AsEnumerable().ToList();

            foreach (DataRow row in MessageList.Rows)
            {
                string notificationID = row["id"].ToString();
                string RecType        = row["RecType"].ToString();
                //string recipient = row["Recipient"].ToString();
                string DTSending = row["DTSending"].ToString();
                string message   = row["Message"].ToString();

                dataGridView1.Rows.Add(notificationID, DTSending, RecType, message);
            }
        }
コード例 #7
0
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="localizer"></param>
 /// <param name="configuration"></param>
 /// <param name="loggerFactory"></param>
 /// <param name="redisCacheClient"></param>
 /// <param name="emailSender"></param>
 /// <param name="smsSender"></param>
 /// <param name="placeRepository"></param>
 /// <param name="slotRepository"></param>
 /// <param name="placeProviderRepository"></param>
 /// <param name="userRepository"></param>
 public VisitorRepository(
     IStringLocalizer <Repository.RedisRepository.VisitorRepository> localizer,
     IConfiguration configuration,
     ILoggerFactory loggerFactory,
     IRedisCacheClient redisCacheClient,
     IEmailSender emailSender,
     ISMSSender smsSender,
     IPlaceRepository placeRepository,
     ISlotRepository slotRepository,
     IPlaceProviderRepository placeProviderRepository,
     IUserRepository userRepository
     ) : base(
         localizer,
         configuration,
         loggerFactory.CreateLogger <Repository.RedisRepository.VisitorRepository>(),
         redisCacheClient,
         emailSender,
         smsSender,
         placeRepository,
         slotRepository,
         placeProviderRepository,
         userRepository
         )
 {
     logger             = loggerFactory.CreateLogger <VisitorRepository>();
     this.configuration = configuration;
 }
コード例 #8
0
 public SMSSenderService(IOptions <ApplicationSettings> appSettings,
                         IHostingEnvironment environment,
                         ISMSSender smsSender)
 {
     _appSettings = appSettings;
     _smsSender   = smsSender;
     _environment = environment;
 }
コード例 #9
0
ファイル: FormSettings.cs プロジェクト: assalvatierra/SEO2017
 private void updatebutton_Click(object sender, EventArgs e)
 {
     LabSys         = SMS.GetSystem("Laboratory");
     Connection.url = comboBox1.SelectedItem.ToString();
     Console.WriteLine(comboBox1.SelectedItem.ToString());
     Console.WriteLine(Connection.url.ToString());
     Console.WriteLine(LabSys.GetListing());
 }
コード例 #10
0
 public VerifyController(ISMSSender smsSender,
                         IConfiguration configuration,
                         ILogger <VerifyController> logger)
 {
     _smsSender     = smsSender;
     _configuration = configuration;
     _logger        = logger;
 }
コード例 #11
0
        private void refreshBtn_Click(object sender, EventArgs e)
        {
            //get list of new messages
            LabSys = SMS.GetSystem("Laboratory");
            DataTable MessageList = LabSys.GetListing();

            dataGridView1.DataSource = MessageList;
            //bunifuCustomDataGrid1.DataSource = MessageList;
        }
コード例 #12
0
 public AccountController(SignInManager <User> signInManager, UserManager <User> userManager
                          , ILogger <AccountController> logger, IEmailSender emailSender, ISMSSender sMSSender)
 {
     _logger      = logger;
     _signManager = signInManager;
     _userManager = userManager;
     _emailSender = emailSender;
     _sMSSender   = sMSSender;
 }
コード例 #13
0
 public UserManageController(UserManager <ApplicationUser> userManager,
                             RoleManager <ApplicationRole> roleManager, ILogger <AccountController> logger, IEmailSender emailSender, ISMSSender smsSender)
 {
     _userManager = userManager;
     _roleMangeer = roleManager;
     _logger      = logger;
     _emailSender = emailSender;
     _smsSender   = smsSender;
 }
コード例 #14
0
 public ManageController(UserManager <User> userManager,
                         SignInManager <User> signInManager, ILogger <ManageController> logger,
                         IEmailSender emailSender, UrlEncoder urlEncoder, ISMSSender sMSSender)
 {
     _userManager   = userManager;
     _signInManager = signInManager;
     _logger        = logger;
     _emailSender   = emailSender;
     _urlEncoder    = urlEncoder;
     _sMSSender     = sMSSender;
 }
コード例 #15
0
 public AccountController(
     UserManager <ApplicationUser> userManager,
     SignInManager <ApplicationUser> signInManager,
     IEmailSender emailSender,
     ISMSSender smsSender,
     ILogger <AccountController> logger)
 {
     _userManager   = userManager;
     _signInManager = signInManager;
     _emailSender   = emailSender;
     _smsSender     = smsSender;
     _logger        = logger;
 }
コード例 #16
0
        private void Form1_Load(object sender, EventArgs e)
        {
            Connection.url = "http://localhost:63556/SmsService.asmx/";

            LabSys = SMS.GetSystem("Laboratory");

            OverviewView.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
            OverviewView.TopLevel        = false;
            OverviewView.AutoScroll      = true;
            panel1.Controls.Add(OverviewView);
            OverviewView.Show();

            InboxView.Hide();
        }
コード例 #17
0
        /// <summary>
        /// Constructor for SMS Service. Takes dependency injected services to
        /// send SMS notifications.
        /// </summary>
        /// <param name="smsSender">The <see cref="ISMSSender"/> implementation to use in this SMS Service</param>
        /// <param name="logger">The <see cref="ILogger"/> to be used in logging</param>
        /// <param name="dataService">The <see cref="IDataService"/> used for data access</param>
        /// <param name="settings">DI <see cref="SMSSettings"/> for the application.</param>
        public SMSService(ISMSSender smsSender, ILogger <SMSService> logger, IDataService dataService, IOptions <SMSSettings> settings)
        {
            _smsSender   = smsSender;
            _logger      = logger;
            _dataService = dataService;
            _smsSettings = settings.Value;
            var maxDelay = TimeSpan.FromSeconds(36);
            var delay    = Backoff.DecorrelatedJitterBackoffV2(medianFirstRetryDelay: TimeSpan.FromSeconds(1), retryCount: 50)
                           .Select(s => TimeSpan.FromTicks(Math.Min(s.Ticks, maxDelay.Ticks)));

            _retryPolicy = Policy
                           .Handle <Exception>()
                           .WaitAndRetryAsync(delay);
        }
コード例 #18
0
ファイル: FormNewNotif.cs プロジェクト: assalvatierra/SEO2017
        private void refreshBtn_Click(object sender, EventArgs e)
        {
            string recipient   = RecipientTextBox.Text.ToString();
            string message     = MessagetextBox.Text.ToString();
            string dateSending = Datepicker.Value.ToShortDateString();
            string timesending = timeTextBox1.Text.ToString();
            string dtSending   = dateSending + " " + timesending;
            string type        = typeDropdown.selectedValue.ToString();

            //get list of new messages
            LabSys = SMS.GetSystem("Laboratory");
            LabSys.setNewNotification(type, recipient, message, dtSending);
            Console.WriteLine("new notification added");
        }
コード例 #19
0
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="localizer"></param>
 /// <param name="configuration"></param>
 /// <param name="logger"></param>
 /// <param name="redisCacheClient"></param>
 /// <param name="emailSender"></param>
 /// <param name="smsSender"></param>
 /// <param name="placeRepository"></param>
 /// <param name="placeProviderRepository"></param>
 public UserRepository(
     IStringLocalizer <UserRepository> localizer,
     IConfiguration configuration,
     ILogger <UserRepository> logger,
     IRedisCacheClient redisCacheClient,
     IEmailSender emailSender,
     ISMSSender smsSender,
     IPlaceRepository placeRepository,
     IPlaceProviderRepository placeProviderRepository
     )
 {
     this.localizer               = localizer;
     this.logger                  = logger;
     this.redisCacheClient        = redisCacheClient;
     this.emailSender             = emailSender;
     this.smsSender               = smsSender;
     this.configuration           = configuration;
     this.placeRepository         = placeRepository;
     this.placeProviderRepository = placeProviderRepository;
 }
コード例 #20
0
ファイル: FormOverview.cs プロジェクト: assalvatierra/SEO2017
        private void dataGridView2_CellEnter(object sender, DataGridViewCellEventArgs e)
        {
            sendbutton.Show();
            //get list of new messages
            LabSys = SMS.GetSystem("Laboratory");

            //select item in the table
            int rowindex    = dataGridView2.CurrentCell.RowIndex;
            int columnindex = dataGridView2.CurrentCell.ColumnIndex;

            //column index guide
            // 0 = id
            // 1 = date
            // 2 = type
            // 3 = content

            DetailsDateSending.Text = dataGridView2.Rows[rowindex].Cells[0].Value.ToString();
            DetailsRecipients.Text  = dataGridView2.Rows[rowindex].Cells[2].Value.ToString();
            DetailsContent.Text     = dataGridView2.Rows[rowindex].Cells[3].Value.ToString();
        }
コード例 #21
0
 /// <summary>
 /// constructor
 /// </summary>
 /// <param name="localizer"></param>
 /// <param name="localizer2"></param>
 /// <param name="configuration"></param>
 /// <param name="loggerFactory"></param>
 /// <param name="redisCacheClient"></param>
 /// <param name="emailSender"></param>
 /// <param name="smsSender"></param>
 /// <param name="placeRepository"></param>
 /// <param name="placeProviderRepository"></param>
 public UserRepository(
     IStringLocalizer <UserRepository> localizer,
     IStringLocalizer <Repository.RedisRepository.UserRepository> localizer2,
     IConfiguration configuration,
     ILoggerFactory loggerFactory,
     IRedisCacheClient redisCacheClient,
     IEmailSender emailSender,
     ISMSSender smsSender,
     IPlaceRepository placeRepository,
     IPlaceProviderRepository placeProviderRepository
     ) : base(
         localizer2,
         configuration,
         loggerFactory.CreateLogger <Repository.RedisRepository.UserRepository>(),
         redisCacheClient,
         emailSender,
         smsSender,
         placeRepository,
         placeProviderRepository
         )
 {
     this.localizer = localizer;
     this.placeProviderRepository = placeProviderRepository;
 }
コード例 #22
0
ファイル: FormOverview.cs プロジェクト: assalvatierra/SEO2017
        private void dataGridView1_CellEnter(object sender, DataGridViewCellEventArgs e)
        {
            sendbutton.Hide();
            //get list of new messages
            LabSys = SMS.GetSystem("Laboratory");

            //select item in the table
            int rowindex    = dataGridView1.CurrentCell.RowIndex;
            int columnindex = dataGridView1.CurrentCell.ColumnIndex;

            //int notificationId = int.Parse(dataGridView1.Rows[rowindex].Cells[0].ToString());

            // DataTable RecipientsList = LabSys.GetRecipientsList(1);
            //Console.WriteLine(RecipientsList);
            //column index guide
            // 0 = id
            // 1 = date
            // 2 = recipient number
            // 3 = content

            DetailsDateSending.Text = dataGridView1.Rows[rowindex].Cells[1].Value.ToString();
            DetailsRecipients.Text  = dataGridView1.Rows[rowindex].Cells[2].Value.ToString();
            DetailsContent.Text     = dataGridView1.Rows[rowindex].Cells[3].Value.ToString();
        }
コード例 #23
0
        //---------------------------------------------------------------
        public CResultAErreur Send(int nIdSession)
        {
            ISMSSender sender = (ISMSSender)C2iFactory.GetNewObjetForSession("CSMSSender", typeof(ISMSSender), nIdSession);

            return(sender.SendMessage(this));
        }
コード例 #24
0
 internal void InitializePhoneVerification(ISMSSender phoneVerification)
 {
     PhoneVerificationFacade = new PhoneVerificationFacade(phoneVerification);
 }
コード例 #25
0
        public static async Task <Data.State> SendSMSAsync(string from, string to, string text, ISMSSender smsSender)
        {
            Data.Country country = await Data.DataProvider.IdentifyCountry(to);

            var state = Data.State.Failed;

            if (country != null)
            {
                state = await smsSender.SendSMSAsync(from, to, country.MobileCode, text);
            }

            int saved = await Data.DataProvider.AddSMSAsync(from, to, country, state, DateTime.UtcNow);

            return(saved > 0 ? state : Data.State.Failed);
        }
コード例 #26
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="context"></param>
 /// <param name="smsSender"></param>
 public SendSMSConsumer(ApplicationDbContext context, ISMSSender smsSender)
 {
     _context   = context;
     _smsSender = smsSender;
 }
コード例 #27
0
 public PhoneVerificationFacade(ISMSSender phoneVerification)
 {
     _smsSender = phoneVerification;
 }
コード例 #28
0
 public SMSController(ISMSSender smsSender)
 {
     _smsSender = smsSender;
 }
コード例 #29
0
ファイル: FormOverview.cs プロジェクト: assalvatierra/SEO2017
        private void UpdateAndSentMessages()
        {
            string messageStatus           = "Sent";
            string recipient               = "";
            string message                 = "";
            string notificationRecipientID = "";
            string sendingDate             = "";
            string notificationID          = "";

            DateTime date1;
            string   sentDate = DateTime.Now.ToString();

            //clear table
            dataGridView2.Rows.Clear();

            //get list of new messages
            LabSys = SMS.GetSystem("Laboratory");
            DataTable MessageList = LabSys.GetUnsentItems();

            //dataGridView2.DataSource = MessageList;

            try
            {
                //convert datasource to list
                List <DataRow> Messagelist = MessageList.AsEnumerable().ToList();

                foreach (DataRow row in MessageList.Rows)
                {
                    notificationRecipientID = row["Id"].ToString();
                    notificationID          = row["Id"].ToString();
                    recipient   = row["ContactInfo"].ToString();
                    message     = row["Message"].ToString();
                    sendingDate = row["DTSending"].ToString();

                    dataGridView2.Rows.Add(sendingDate, notificationID, recipient, message);


                    //get date and time today
                    date1 = Convert.ToDateTime(sendingDate);

                    if (date1 <= DateTime.Now)
                    {
                        Console.WriteLine(date1 + " - DATE TIME LESS THAN TODAY - ACTION SEND AND LOG");
                        // messageStatus = LabSys.SendSMS(recipient, message); //uncomment to enable sending
                        //inset new activity log
                        //LabSys.updateActivityLog(notificationRecipientID, messageStatus, "none");
                        // update activity log
                    }
                    else if (date1 > DateTime.Now)
                    {
                        Console.WriteLine(date1 + " - DATE TIME GREATER THAN TODAY - ACTION IGNORE");
                    }
                }


                DataTable FailedList = LabSys.FailedItems();

                List <DataRow> Failedlist = FailedList.AsEnumerable().ToList();
                Console.WriteLine("GETTING FAILED LISTS");
                foreach (DataRow row in FailedList.Rows)
                {
                    notificationRecipientID = row["Id"].ToString();
                    notificationID          = row["NotificationId"].ToString();
                    recipient   = row["ContactInfo"].ToString();
                    message     = row["Message"].ToString();
                    sendingDate = row["DTSending"].ToString();

                    dataGridView2.Rows.Add(sendingDate, notificationID, recipient, message);
                    Console.WriteLine(notificationRecipientID);

                    //check multiple entries on recipientID
                    //DataTable FailedListID = LabSys.GetLogByRecipientIdList_Failed(int.Parse(notificationRecipientID));

                    ////get date and time today
                    //date1 = Convert.ToDateTime(sendingDate);

                    //if (date1 <= DateTime.Now)
                    //{
                    //    Console.WriteLine(date1 + " - DATE TIME LESS THAN TODAY - ACTION SEND AND LOG");
                    //    messageStatus = LabSys.SendSMS(recipient, message); //uncomment to enable sending
                    //    //inset new activity log
                    //   LabSys.updateActivityLog(notificationRecipientID, messageStatus, "none");

                    //}
                    //else if (date1 > DateTime.Now)
                    //{
                    //    Console.WriteLine(date1 + " - DATE TIME GREATER THAN TODAY - ACTION IGNORE");
                    //}
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("SMS Manager cannot connect to the server. " + ex.ToString());
            }
        }