コード例 #1
0
        // TODO: Move entirely to model binder
        private async Task <ExceptionStore.SearchParams> GetSearchAsync()
        {
            var result = new ExceptionStore.SearchParams
            {
                Group = CurrentGroup,
                Log   = CurrentLog,
                Sort  = CurrentSort,
                Id    = CurrentId
            };

            if (Request.Params["q"].HasValue())
            {
                result.SearchQuery = Request.Params["q"];
            }
            if (bool.TryParse(Request.Params["includeDeleted"], out var includeDeleted))
            {
                result.IncludeDeleted = includeDeleted;
            }

            if (CurrentSimilarId.HasValue)
            {
                var error = await CurrentStore.GetErrorAsync(CurrentLog, CurrentSimilarId.Value).ConfigureAwait(false);

                if (error != null)
                {
                    result.Message = error.Message;
                }
            }

            return(result);
        }
コード例 #2
0
        // TODO: Move entirely to model binder
        private async Task <ExceptionStore.SearchParams> GetSearchAsync()
        {
            var result = new ExceptionStore.SearchParams
            {
                Group     = CurrentGroup,
                Log       = CurrentLog,
                Sort      = CurrentSort,
                Id        = CurrentId,
                Url       = CurrentUrl,
                Host      = CurrentHost,
                StartDate = CurrentStartDate,
                EndDate   = CurrentEndDate,
            };

            if (GetParam("q").HasValue())
            {
                result.SearchQuery = GetParam("q");
            }
            if (bool.TryParse(GetParam("includeDeleted"), out var includeDeleted))
            {
                result.IncludeDeleted = includeDeleted;
            }

            if (CurrentSimilarId.HasValue)
            {
                var error = await CurrentStore.GetErrorAsync(CurrentLog, CurrentSimilarId.Value);

                if (error != null)
                {
                    result.Message = error.Message;
                }
            }

            return(result);
        }
コード例 #3
0
        public async Task <ActionResult> Similar(Guid id, bool byTime = false, int rangeInSeconds = 5 * 60)
        {
            var e = await CurrentStore.GetErrorAsync(CurrentLog, id).ConfigureAwait(false);

            if (e == null)
            {
                return(View("Exceptions.Detail", null));
            }

            var search = GetSearch();

            if (byTime)
            {
                search.StartDate = e.CreationDate.AddMinutes(-rangeInSeconds);
                search.EndDate   = e.CreationDate.AddMinutes(rangeInSeconds);
            }
            else
            {
                search.Message = e.Message;
            }

            var errors = await CurrentStore.GetErrorsAsync(search).ConfigureAwait(false);

            var vd = GetModel(errors);

            vd.Exception = e;
            vd.ClearLinkForVisibleOnly = true;
            return(View("Exceptions.Similar", vd));
        }