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)); }
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())); } }
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); }
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()); }
public void CanBackupDatabase() { MySqlUtilities.Backup("openehs_database", "", @"C:\OpenEhsBackup"); }
public void CanRestoreDatabase() { MySqlUtilities.Restore("openehs_database", "", @"C:\OpenEhsBackup\OpenEHS-Backup(20110224).bak"); }
public ActionResult BackupDatabase() { MySqlUtilities.Backup("openehs_database", ConfigurationManager.AppSettings["MySql.RootPassword"], ConfigurationManager.AppSettings["Backup.Directory"]); return(RedirectToAction("Index")); }