public async Task <string> CreateIncident(IncidentPayload payload, string incidentId) { try { //var payload = new IncidentPayload //{ // PropertiesPayload = new IncidentPropertiesPayload // { // Severity = Severity.Low, // Status = IncidentStatus.New, // Title = INCIDENT_NAME // } //}; var url = $"{_azureConfig.BaseUrl}/incidents/{incidentId}?api-version={_azureConfig.ApiVersion}"; var serialized = JsonConvert.SerializeObject(payload, new JsonSerializerSettings { ContractResolver = new DefaultContractResolver { NamingStrategy = new CamelCaseNamingStrategy() } }); var request = new HttpRequestMessage(HttpMethod.Put, url) { Content = new StringContent(serialized, Encoding.UTF8, "application/json") }; await _authenticationService.AuthenticateRequest(request); var http = new HttpClient(); var response = await http.SendAsync(request); if (response.IsSuccessStatusCode) { return(await response.Content.ReadAsStringAsync()); } var error = await response.Content.ReadAsStringAsync(); var formatted = JsonConvert.DeserializeObject(error); throw new WebException("Error calling the API: \n" + JsonConvert.SerializeObject(formatted, Formatting.Indented)); } catch (Exception ex) { throw new Exception("Something went wrong: \n" + ex.Message); } }
public async Task Run(string[] args) { while (true) { PrintMenu(); Console.Write("Option: "); var option = Console.ReadLine(); var valid = int.TryParse(option, out var index); valid = valid && index > 0 && index < 29; if (!valid) { Console.WriteLine("Invalid option... please, press enter to continue..."); Console.ReadLine(); continue; } var response = ""; var input = ""; try { switch (index) { case 1: { Console.WriteLine("Enter Alert rule name"); input = Console.ReadLine(); response = await _actionsController.CreateAction(input); break; } case 2: { Console.WriteLine("Enter Alert rule name"); input = Console.ReadLine(); response = await _actionsController.DeleteAction(input); break; } case 3: { Console.WriteLine("Enter Alert rule name"); input = Console.ReadLine(); response = await _actionsController.GetActionById(input); break; } case 4: { Console.WriteLine("Enter Alert rule name"); input = Console.ReadLine(); response = await _actionsController.GetActionsByRule(input); break; } case 5: { Console.WriteLine("Enter template name"); input = Console.ReadLine(); response = await _alertRuleTemplatesController.GetAlertRuleTemplateById(input); break; } case 6: { response = await _alertRuleTemplatesController.GetAlertRuleTemplates(); break; } case 7: { Console.WriteLine("Enter alert rule template name"); input = Console.ReadLine(); response = await _alertRulesController.CreateFusionAlertRule(input); break; } case 8: { Console.WriteLine("Enter rule name"); input = Console.ReadLine(); response = await _alertRulesController.CreateMicrosoftSecurityIncidentCreationAlertRule(input); break; } case 9: { response = await _alertRulesController.CreateScheduledAlertRule(); break; } case 10: { response = await _alertRulesController.DeleteAlertRule(); break; } case 11: { response = await _alertRulesController.GetAlertRules(); break; } case 12: { response = await _alertRulesController.GetFusionAlertRule(); break; } case 13: { response = await _alertRulesController.GetMicrosoftSecurityIdentityCreationAlertRule(); break; } case 14: { response = await _alertRulesController.GetScheduledAlertRule(); break; } case 15: { response = await _bookmarksController.CreateBookmark(); break; } case 16: { response = await _bookmarksController.DeleteBookmark(); break; } case 17: { response = await _bookmarksController.GetBookmarkById(); break; } case 18: { response = await _bookmarksController.GetBookmarks(); break; } case 19: { response = await _dataConnectorsController.GetDataConnectors(); break; } case 20: { response = await _dataConnectorsController.DeleteDataConnector(); break; } case 21: { response = await _dataConnectorsController.CreateDataConnector(); break; } case 22: { Console.WriteLine("Enter Severity option \n 0 High \n 1 Medium \n 2 Low \n 3 Informational"); input = Console.ReadLine(); Severity severity = (Severity)Convert.ToInt32(input); Console.WriteLine("Enter Incident status \n 0 New \n 1 Active \n 2 Close"); input = Console.ReadLine(); IncidentStatus status = (IncidentStatus)Convert.ToInt32(input); Console.WriteLine("Enter Incident name"); var title = Console.ReadLine(); var payload = new IncidentPayload { PropertiesPayload = new IncidentPropertiesPayload { Severity = severity, Status = status, Title = title } }; response = await _incidentsController.CreateIncident(payload, title); break; } case 23: { response = await _incidentsController.DeleteIncident(); break; } case 24: { response = await _incidentsController.GetIncidentById(); break; } case 25: { response = await _incidentsController.GetIncidents(); break; } case 26: { response = await _incidentsController.CreateIncidentComment(); break; } case 27: { response = await _incidentsController.GetAllIncidentComments(); break; } case 28: { response = await _incidentsController.GetIncidentCommentById(); break; } } Console.WriteLine(JToken.Parse(response).ToString(Formatting.Indented)); } catch (JsonReaderException exception) { if (string.IsNullOrEmpty(response)) { Console.WriteLine("Deleted"); Console.WriteLine("Enter to continue"); Console.ReadLine(); continue; } Console.WriteLine(response); } catch (Exception exception) { var currentColor = Console.ForegroundColor; Console.ForegroundColor = ConsoleColor.Red; await Console.Error.WriteLineAsync(exception.Message); Console.ForegroundColor = currentColor; } Console.WriteLine(); Console.WriteLine("Enter to continue"); Console.ReadLine(); } }