public async void ThreadProc() { AzureSQLHelper.OperationTaskModel operationTask = new AzureSQLHelper.OperationTaskModel(); try { if (!smsCtx.receiverPhoneNumber.StartsWith("+")) { smsCtx.receiverPhoneNumber = "+" + smsCtx.receiverPhoneNumber; } // Initialize the Twilio client TwilioClient.Init(_twilioAccountId, _twilioToken); MessageResource.Create( from: new PhoneNumber(smsCtx.senderPhoneNumber), to: new PhoneNumber(smsCtx.receiverPhoneNumber), // Message content body: smsCtx.smsContent); SMSApp._appLogger.Info("[Twilio Thread] send SMS success. Receiver PhoneNumber: " + smsCtx.receiverPhoneNumber); operationTask.UpdateTaskBySuccess(_TaskId); } catch (Exception ex) { StringBuilder logMessage = new StringBuilder(); logMessage.AppendLine("[Twilio Thread] Failed. Receiver" + smsCtx.receiverPhoneNumber); logMessage.AppendLine("\tMessage:" + JsonConvert.SerializeObject(this)); logMessage.AppendLine("\tException:" + ex.Message); SMSApp._appLogger.Error(logMessage); operationTask.UpdateTaskByFail(_TaskId, ex.Message); } }
public async void ThreadProc() { string partitionKey = ""; int collectionTTL = 0, collectionRU = 0; AzureSQLHelper.OperationTaskModel operationTask = new AzureSQLHelper.OperationTaskModel(); try { DocDBHelper docDBHelper = new DocDBHelper(_ConnectionString); switch (_Action) { case "create cosmosdb collection": partitionKey = _JsonMessage["Content"]["partitionKey"].ToString(); collectionTTL = int.Parse(_JsonMessage["Content"]["collectionTTL"].ToString()); collectionRU = int.Parse(_JsonMessage["Content"]["collectionRU"].ToString()); await docDBHelper.CreateDatabaseAndCollection(_DatabaseName, _CollectionId, partitionKey, collectionTTL, collectionRU); break; case "purge cosmosdb collection": await docDBHelper.PurgeDatabase(_DatabaseName); break; case "update cosmosdb collection": collectionTTL = int.Parse(_JsonMessage["Content"]["collectionTTL"].ToString()); collectionRU = int.Parse(_JsonMessage["Content"]["collectionRU"].ToString()); await docDBHelper.UpdateCollection(_DatabaseName, _CollectionId, collectionTTL, collectionRU); break; } ProvisionApp._appLogger.Info("[Cosmosdb] " + _Action + " success: Databae-" + _DatabaseName + ", CollectionId-" + _CollectionId); operationTask.UpdateTaskBySuccess(_TaskId); } catch (Exception ex) { StringBuilder logMessage = new StringBuilder(); logMessage.AppendLine("[Cosmosdb] " + _Action + " Failed: Databae-" + _DatabaseName + ", CollectionId-" + _CollectionId); logMessage.AppendLine("\tMessage:" + JsonConvert.SerializeObject(this)); logMessage.AppendLine("\tException:" + ex.Message); ProvisionApp._appLogger.Error(logMessage); operationTask.UpdateTaskByFail(_TaskId, ex.Message); } }
public async void ThreadProc() { AzureSQLHelper.OperationTaskModel operationTask = new AzureSQLHelper.OperationTaskModel(); try { IoTHubHelper iotHubHelper = new IoTHubHelper(_ConnectionString); await iotHubHelper.UpdateTwinDesiredProperty(_IoTDeviceId, _DeviceConfiguration); ProvisionApp._appLogger.Info("[IoT Hub Device] " + _Action + " success: DeviceId-" + _IoTDeviceId); operationTask.UpdateTaskBySuccess(_TaskId); } catch (Exception ex) { StringBuilder logMessage = new StringBuilder(); logMessage.AppendLine("[IoT Hub Device] " + _Action + " Failed: DeviceId-" + _IoTDeviceId); logMessage.AppendLine("\tMessage:" + JsonConvert.SerializeObject(this)); logMessage.AppendLine("\tException:" + ex.Message); ProvisionApp._appLogger.Error(logMessage); operationTask.UpdateTaskByFail(_TaskId, ex.Message); } }
public async void ThreadProc() { AzureSQLHelper.OperationTaskModel operationTask = new AzureSQLHelper.OperationTaskModel(); try { IoTHubHelper iotHubHelper = new IoTHubHelper(_ConnectionString); switch (_Action) { case "register iothub register": _AuthenticationType = _JsonMessage["Content"]["authenticationType"].ToString().ToLower(); if (_AuthenticationType == "key") { string IoTHubDeviceKey = _JsonMessage["Content"]["iothubDeviceKey"].ToString(); await iotHubHelper.RegisterDeviceByKey(_IoTDeviceId, IoTHubDeviceKey); } else { string CertificateThumbprint = _JsonMessage["Content"]["certificateThumbprint"].ToString(); await iotHubHelper.RegisterDeviceByCertThumbprint(_IoTDeviceId, CertificateThumbprint); } break; case "remove iothub register": await iotHubHelper.RemoveDevice(_IoTDeviceId); break; } ProvisionApp._appLogger.Info("[IoT Hub Device] " + _Action + " success: DeviceId-" + _IoTDeviceId); operationTask.UpdateTaskBySuccess(_TaskId); } catch (Exception ex) { StringBuilder logMessage = new StringBuilder(); logMessage.AppendLine("[IoT Hub Device] " + _Action + " Failed: DeviceId-" + _IoTDeviceId); logMessage.AppendLine("\tMessage:" + JsonConvert.SerializeObject(this)); logMessage.AppendLine("\tException:" + ex.Message); ProvisionApp._appLogger.Error(logMessage); operationTask.UpdateTaskByFail(_TaskId, ex.Message); } }
public async void ThreadProc() { AzureSQLHelper.OperationTaskModel operationTask = new AzureSQLHelper.OperationTaskModel(); try { var client = new SendGridClient(_ApiKey); var from = new EmailAddress(emailCtx.senderEmail, emailCtx.senderName); var to = new EmailAddress(emailCtx.receverEmail, emailCtx.receverName); var emailContext = MailHelper.CreateSingleEmail(from, to, emailCtx.subject, emailCtx.plainTextContent, emailCtx.htmlContent); await client.SendEmailAsync(emailContext); EmailApp._appLogger.Info("[SendGrid Thread] send email success. Receive Email: " + emailCtx.receverEmail); operationTask.UpdateTaskBySuccess(_TaskId); } catch (Exception ex) { StringBuilder logMessage = new StringBuilder(); logMessage.AppendLine("[Send Grid Thread] Failed. Receiver" + emailCtx.receverEmail); logMessage.AppendLine("\tMessage:" + JsonConvert.SerializeObject(this)); logMessage.AppendLine("\tException:" + ex.Message); EmailApp._appLogger.Error(logMessage); operationTask.UpdateTaskByFail(_TaskId, ex.Message); } }
private void ListenOnServiceBusTopic(CdsInfo cdsInfo) { CdsBackendSetting azureCS = cdsInfo.cdsBackendSetting; /* Create Topic Subscription Client, and bind with Message Property on companyid = xx */ var namespaceManager = NamespaceManager.CreateFromConnectionString(azureCS.ServiceBusConnectionString); string subscriptionName = "C_" + cdsInfo.CompanyId + "_IoTHubId_" + cdsInfo.IoTHubId + "_P_" + cdsInfo.PartitionNum; SqlFilter messageFilter = new SqlFilter("Process = 'IoTHubReceiver' AND IoTHubId = '" + cdsInfo.IoTHubId + "'"); /* If the subscription not exist, create it. */ if (!namespaceManager.SubscriptionExists(azureCS.ServiceBusProcessCommandTopic, subscriptionName)) { namespaceManager.CreateSubscription(azureCS.ServiceBusProcessCommandTopic, subscriptionName, messageFilter); } /* Create subscription client and listen on message */ _sbSubscriptionClient = SubscriptionClient.CreateFromConnectionString(azureCS.ServiceBusConnectionString, azureCS.ServiceBusProcessCommandTopic, subscriptionName); OnMessageOptions options = new OnMessageOptions(); options.AutoComplete = true; IoTHubReceiverModel _IoTHubReceiverMsg = null; _sbSubscriptionClient.OnMessage(async(message) => { AzureSQLHelper.OperationTaskModel operationTask = new AzureSQLHelper.OperationTaskModel(); try { string messagePayload = message.GetBody <string>(); _IoTHubReceiverMsg = JsonConvert.DeserializeObject <IoTHubReceiverModel>(messagePayload); // Process message from subscription. _consoleLog.Info("onMessage: {0}", messagePayload); _consoleLog.BlobLogInfo("onMessage: {0}", messagePayload); _consoleLog.Info("Received Task:" + _IoTHubReceiverMsg.task); _consoleLog.BlobLogInfo("Received Task:" + _IoTHubReceiverMsg.task); switch (_IoTHubReceiverMsg.task) { //case "start": // await _IoTHubMessageReceiver.Start(); // break; //case "stop": // await _IoTHubMessageReceiver.Stop(); // break; case TaskName.IoTHubReceiver_Restart: reloadHeartbeatInterval(); _IoTHubMessageReceiver.Stop().Wait(); _IoTHubMessageReceiver.Start().Wait(); break; //case "shutdown": // message.Complete(); // await _IoTHubMessageReceiver.Stop(); // operationTask.UpdateTaskBySuccess(_IoTHubReceiverMsg.taskId); // Environment.Exit(0); // break; } operationTask.UpdateTaskBySuccess(_IoTHubReceiverMsg.taskId); } catch (Exception ex) { // Indicates a problem, unlock message in subscription. _consoleLog.Error("Exception: {0}", ex.Message); _consoleLog.BlobLogError("Exception: {0}", ex.Message); operationTask.UpdateTaskByFail(_IoTHubReceiverMsg.taskId, ex.Message); } }, options); }