private static async Task <int?> GetIncidentId(this ServerApiClient client, int applicationId, string incidentMessage, string reportMessage = null) { int?returnValue = null; await Repeat(async() => { var query = new FindIncidents { ApplicationIds = new[] { applicationId }, FreeText = incidentMessage, SortType = IncidentOrder.Newest }; var result = await client.QueryAsync(query); if (result.Items.Count <= 0) { return(false); } if (reportMessage == null) { returnValue = result.Items[0].Id; return(true); } var item = result.Items.FirstOrDefault(x => x.Name.Contains(reportMessage)); if (item != null) { var query2 = new GetReportList(item.Id); var result2 = await client.QueryAsync(query2); var report = result2.Items.FirstOrDefault(x => x.Message.Contains(reportMessage)); if (report != null) { returnValue = item.Id; return(true); } } foreach (var resultItem in result.Items) { var query2 = new GetReportList(resultItem.Id); var result2 = await client.QueryAsync(query2); var report = result2.Items.FirstOrDefault(x => x.Message.Contains(reportMessage)); if (report != null) { returnValue = resultItem.Id; return(true); } } return(false); }); return(returnValue); }
public async Task <ActionResult> Validate(ValidateViewModel model) { var query = new FindIncidents { ApplicationIds = new [] { model.ApplicationId } }; var result = await _queryBus.QueryAsync(this.ClaimsUser(), query); if (result.TotalCount == 0) { return(View(model)); } return(Redirect("~/#/application/" + model.ApplicationId + "/")); }