Exemplo n.º 1
0
        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 + "/"));
        }