Esempio n. 1
0
        public static void Run([TimerTrigger(Constants.NameResolverKeys.SmsNotificationInterval)] TimerInfo myTimer, TraceWriter log)
        {
            var utcTimeSpan = DateTime.UtcNow.AddMinutes(30).TimeOfDay;

            log.Info("Timestamp : " + utcTimeSpan);

            var parameters = new Dictionary <string, object>
            {
                { Constants.StoreProcedures.GetSmsNotification.Parameters.Status, 0 },
                { Constants.StoreProcedures.GetSmsNotification.Parameters.NotificationDate, DateTime.UtcNow },
                { Constants.StoreProcedures.GetSmsNotification.Parameters.NotificationTime, new TimeSpan(utcTimeSpan.Hours, utcTimeSpan.Minutes, 0) }
            };

            var pendingNotifications = MySqlUtilities.ExecuteQuery <NotificationModel>(ConfigurationManager.OmilosConnection,
                                                                                       Constants.StoreProcedures.GetSmsNotification.Name,
                                                                                       parameters).ToList();

            log.Info("Number of Notificaction to be sent :" + pendingNotifications.Count());

            if (!pendingNotifications.Any())
            {
                return;
            }

            var sendNotificationTask = Task.Run(() => SendNotificationsAsync(pendingNotifications));

            sendNotificationTask.Wait();

            var messageIds = sendNotificationTask.Result;

            log.Info(string.Join(",", messageIds));
        }
Esempio n. 2
0
        public static void Run([ServiceBusTrigger(Constants.NameResolverKeys.CampaignManagementTopic, Constants.Subscriptions.Published, Connection = Constants.ConfigKeys.OmilosIntegrationConnection)] Message message, TraceWriter log)
        {
            var campaignIdentifier = message.UserProperties[Constants.MessageProperties.CampaignManagement.CampaignIdentifier];
            var parameters         = new Dictionary <string, object>
            {
                {
                    Constants.StoreProcedures.GenerateCampaignInstances.Parameters.CampaignId,
                    message.UserProperties[Constants.MessageProperties.CampaignManagement.CampaignIdentifier]
                }
            };

            MySqlUtilities.ExecuteNonQuery(ConfigurationManager.OmilosConnection,
                                           Constants.StoreProcedures.GenerateCampaignInstances.Name,
                                           parameters);

            var campaignStartDateTimeText = $"{message.UserProperties[Constants.MessageProperties.CampaignManagement.AdditionalProperties.CampaignStartDate]} {message.UserProperties[Constants.MessageProperties.CampaignManagement.AdditionalProperties.CampaignStartTime]}";

            log.Info($"campaignStartDateTime in Text : {campaignStartDateTimeText}");

            DateTime campaignStartDateTime;

            DateTime.TryParse(campaignStartDateTimeText, out campaignStartDateTime);

            log.Info($"campaignStartDateTime After conversion : {campaignStartDateTime}");

            var campaignStartDateTimeInUtc = TimeZoneInfo.ConvertTimeToUtc(campaignStartDateTime, Constants.TimeZoneInformation.TimeZoneMapping[message.UserProperties[Constants.MessageProperties.CampaignManagement.AdditionalProperties.CampaignTimeZone].ToString()]);

            log.Info($"campaignStartDateTime in UTC : {campaignStartDateTimeInUtc}");

            if (DateTime.UtcNow.Date >= campaignStartDateTime.Date)
            {
                TriggerTodaysNotification(Guid.Parse(campaignIdentifier.ToString()));
            }
        }
Esempio n. 3
0
        public static void Run([TimerTrigger(Constants.NameResolverKeys.SmsNotificationInterval)] TimerInfo myTimer, TraceWriter log)
        {
            var utcTimeSpan = DateTime.UtcNow.AddMinutes(30).TimeOfDay;
            var minute      = (int)(Math.Round(utcTimeSpan.Minutes / 5.0) * 5);

            log.Info("Timestamp : " + utcTimeSpan);
            log.Info("Minute : " + minute);

            var parameters = new Dictionary <string, object>
            {
                { Constants.StoreProcedures.GetSmsNotification.Parameters.Status, 0 },
                { Constants.StoreProcedures.GetSmsNotification.Parameters.NotificationDate, DateTime.UtcNow },
                { Constants.StoreProcedures.GetSmsNotification.Parameters.NotificationTime, new TimeSpan(utcTimeSpan.Hours, minute, 0) }
            };

            var pendingNotifications = MySqlUtilities.ExecuteQuery <NotificationModel>(ConfigurationManager.OmilosConnection,
                                                                                       Constants.StoreProcedures.GetSmsNotification.Name,
                                                                                       parameters).ToList();

            log.Info("Number of Notificaction to be sent :" + pendingNotifications.Count());

            if (!pendingNotifications.Any())
            {
                return;
            }

            SendNotifications(pendingNotifications, log);
        }
        public static void Run([TimerTrigger(Constants.NameResolverKeys.LoadCampaignSmsRemainderInterval)] TimerInfo myTimer, TraceWriter log)
        {
            var parameters = new Dictionary <string, object>
            {
                { Constants.StoreProcedures.LoadSmsNotificationForCampaignRemainder.Parameters.CampaignId, null }
            };

            MySqlUtilities.ExecuteNonQuery(ConfigurationManager.OmilosConnection,
                                           Constants.StoreProcedures.LoadSmsNotificationForCampaignRemainder.Name,
                                           parameters);
        }
        public static void Run([ServiceBusTrigger(Constants.NameResolverKeys.CampaignManagementTopic, Constants.Subscriptions.LoadTodaysNotificationsOnDemand, Connection = Constants.ConfigKeys.OmilosIntegrationConnection)] Message message, TraceWriter log)
        {
            var campaignIdentifier = message.UserProperties[Constants.MessageProperties.CampaignManagement.CampaignIdentifier];
            var parameters         = new Dictionary <string, object>
            {
                {
                    Constants.StoreProcedures.GenerateCampaignInstances.Parameters.CampaignId, campaignIdentifier
                }
            };

            MySqlUtilities.ExecuteNonQuery(ConfigurationManager.OmilosConnection,
                                           Constants.StoreProcedures.LoadSmsNotificationForCampaignRemainder.Name,
                                           parameters);
        }
Esempio n. 6
0
        public static IActionResult Run([HttpTrigger(AuthorizationLevel.Function, Constants.HttpVerb.Get, Route = Constants.Route.NotificationResponse)] HttpRequest req, string notificationId, int notificationChannel, TraceWriter log)
        {
            log.Info("C# HTTP trigger function processed a request.");
            log.Info($"NotificationId : {notificationId}. NotificationChannel : {notificationChannel}");

            var parameters = new Dictionary <string, object>
            {
                { Constants.StoreProcedures.RecordUserResponse.Parameters.NotificationId, notificationId },
                { Constants.StoreProcedures.RecordUserResponse.Parameters.NotificationChannel, notificationChannel },
                { Constants.StoreProcedures.RecordUserResponse.Parameters.Response, "OptOut" }
            };

            MySqlUtilities.ExecuteNonQuery(ConfigurationManager.OmilosConnection,
                                           Constants.StoreProcedures.RecordUserResponse.Name,
                                           parameters);

            return(new OkResult());
        }
Esempio n. 7
0
 public void CanBackupDatabase()
 {
     MySqlUtilities.Backup("openehs_database", "", @"C:\OpenEhsBackup");
 }
Esempio n. 8
0
 public void CanRestoreDatabase()
 {
     MySqlUtilities.Restore("openehs_database", "", @"C:\OpenEhsBackup\OpenEHS-Backup(20110224).bak");
 }
Esempio n. 9
0
        public ActionResult BackupDatabase()
        {
            MySqlUtilities.Backup("openehs_database", ConfigurationManager.AppSettings["MySql.RootPassword"], ConfigurationManager.AppSettings["Backup.Directory"]);

            return(RedirectToAction("Index"));
        }