public async void ThreadProc() { AzureSQLHelper.EventRuleCatalogModel eventRuleModel = new AzureSQLHelper.EventRuleCatalogModel(); List <Application> appList = eventRuleModel.GetActionApplicationById(_MessageCatalogId); try { foreach (var app in appList) { string applicationTargetType = app.TargetType.ToLower(); try { WebHelper webHelper = new WebHelper(); JObject outputTemplate = new JObject(); switch (applicationTargetType) { case "webapi": outputTemplate = ParsingOutputTemplate(app.MessageTemplate); switch (app.Method.ToLower()) { case "post-x-www": string postData = ConvertJObjectToQueryString(outputTemplate); switch (app.AuthType.ToLower()) { case "none": webHelper.PostContent(app.ServiceURL, postData); break; case "basic auth": webHelper.PostContent(app.ServiceURL, postData, app.AuthID, app.AuthPW); break; } break; case "post-multi": NameValueCollection formData = new NameValueCollection(); foreach (var elem in outputTemplate) { formData.Add(elem.Key, outputTemplate[elem.Key].ToString()); } switch (app.AuthType.ToLower()) { case "none": webHelper.PostMultipartContent(app.ServiceURL, formData); break; case "basic auth": break; } break; case "post-json": switch (app.AuthType.ToLower()) { case "none": webHelper.PostJsonContent(app.ServiceURL, JsonConvert.SerializeObject(outputTemplate)); break; case "basic auth": webHelper.PostJsonContent(app.ServiceURL, JsonConvert.SerializeObject(outputTemplate), app.AuthID, app.AuthPW); break; } break; } break; case "dashboard": try { webHelper.PostContent(EventActionApp._rtEventFeedInURL, JsonConvert.SerializeObject(_FullAlarmMessage)); } catch (Exception ex) { EventActionApp._appLogger.Error("RTEventFeedInURL Exception: " + ex.Message); } break; case "iot device": int deviceId = int.Parse(app.ServiceURL); AzureSQLHelper.IoTDeviceModel iotDeviceModel = new AzureSQLHelper.IoTDeviceModel(); IoTDevice iotDevice = iotDeviceModel.GetById(deviceId); try { IoTHubHelper iotHubHelper = new IoTHubHelper(iotDevice.IoTHub.IoTHubConnectionString); outputTemplate = ParsingOutputTemplate(app.MessageTemplate); iotHubHelper.SendC2DMessage(iotDevice.IoTHubDeviceID, outputTemplate); } catch (Exception ex) { EventActionApp._appLogger.Error("C2D Message Error, DeviceID:" + iotDevice.Id + "; Exception:" + ex.Message); } break; case "email": break; case "sms": break; } } catch (Exception ex) { EventActionApp._appLogger.Error("EventAction Exception: " + ex.Message + ";" + app.Name + "; (id:" + app.Id + ") failed: "); continue; } } } catch (Exception ex) { StringBuilder logMessage = new StringBuilder(); logMessage.AppendLine("EventAction Task Exception: " + ex.Message); logMessage.AppendLine("EventAction Task Message: " + Convert.ToString(_FullAlarmMessage)); EventActionApp._appLogger.Error(logMessage); } }