Esempio n. 1
0
        public async Task <ActionResult> Similar(string group, string log, Guid id, ExceptionSorts?sort = null, bool byTime = false)
        {
            // Defaults
            sort = sort ?? ExceptionSorts.TimeDesc;
            FixNames(ref group, ref log);
            var e = await GetError(log, id).ConfigureAwait(false);

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

            var errors = await GetSimilarErrorsAsync(e, byTime, sort : sort.Value).ConfigureAwait(false);

            var vd = new ExceptionsModel
            {
                Sort                    = sort.Value,
                Exception               = e,
                SelectedGroup           = group,
                SelectedLog             = log,
                ShowingWindow           = byTime,
                Groups                  = ApplicationGroups,
                ClearLinkForVisibleOnly = true,
                Errors                  = errors
            };

            return(View("Exceptions.Similar", vd));
        }
Esempio n. 2
0
        public async Task <ExceptionsModel> GetExceptionsModel(string group, string log, ExceptionSorts sort, int?count = null, Guid?prevLast = null, int?loadAsync = null)
        {
            FixNames(ref group, ref log);

            var errors = await GetAllErrors(group, log, sort : sort).ConfigureAwait(false);

            var startIndex = 0;

            if (prevLast.HasValue)
            {
                startIndex = errors.FindIndex(e => e.GUID == prevLast.Value);
                if (startIndex > 0 && startIndex < errors.Count)
                {
                    startIndex++;
                }
            }
            errors = errors.Skip(startIndex).Take(count ?? 500).ToList();
            var vd = new ExceptionsModel
            {
                Sort          = sort,
                SelectedGroup = group,
                SelectedLog   = log,
                LoadAsyncSize = loadAsync.GetValueOrDefault(),
                Groups        = ApplicationGroups,
                Errors        = errors.ToList()
            };

            return(vd);
        }
Esempio n. 3
0
        public async Task <ActionResult> Search(string q, string group, string log, ExceptionSorts?sort = null, bool showDeleted = false)
        {
            // Defaults
            sort = sort ?? ExceptionSorts.TimeDesc;
            FixNames(ref group, ref log);

            // empty searches go back to the main log
            if (q.IsNullOrEmpty())
            {
                return(RedirectToAction(nameof(Exceptions), new { group, log }));
            }

            var errors = await FindErrorsAsync(q, group, log, max : 10000, includeDeleted : showDeleted, sort : sort.Value).ConfigureAwait(false);

            if (errors.Count == 0 && !showDeleted)
            {
                // If we didn't find any current errors, go ahead and search deleted as well
                return(RedirectToAction(nameof(Search), new { q, group, log, showDeleted = true }));
            }

            var vd = new ExceptionsModel
            {
                Sort                    = sort.Value,
                Search                  = q,
                SelectedGroup           = group,
                SelectedLog             = log,
                ShowDeleted             = showDeleted,
                Groups                  = ApplicationGroups,
                ClearLinkForVisibleOnly = true,
                Errors                  = errors
            };

            return(View("Exceptions.Search", vd));
        }
Esempio n. 4
0
        public ActionResult ExceptionsSimilar(string app, Guid id, ExceptionSorts?sort = null, bool truncate = true, bool byTime = false)
        {
            // Defaults
            sort = sort ?? ExceptionSorts.TimeDesc;

            var e = ExceptionStores.GetError(app, id);

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

            var errors = ExceptionStores.GetSimilarErrors(e, byTime, sort: sort.Value);
            var vd     = new ExceptionsModel
            {
                Sort                    = sort.Value,
                Exception               = e,
                SelectedLog             = app,
                ShowingWindow           = byTime,
                Applications            = ExceptionStores.Applications,
                ClearLinkForVisibleOnly = true,
                Errors                  = errors
            };

            return(View("Exceptions.Similar", vd));
        }
Esempio n. 5
0
        public ExceptionsModel GetExceptionsModel(string log, ExceptionSorts sort, int?count = null, Guid?prevLast = null, int?loadAsync = null)
        {
            var errors = ExceptionStores.GetAllErrors(log, sort: sort);

            var startIndex = 0;

            if (prevLast.HasValue)
            {
                startIndex = errors.FindIndex(e => e.GUID == prevLast.Value);
                if (startIndex > 0 && startIndex < errors.Count)
                {
                    startIndex++;
                }
            }
            errors = errors.Skip(startIndex).Take(count ?? 500).ToList();
            var vd = new ExceptionsModel
            {
                Sort          = sort,
                SelectedLog   = log,
                LoadAsyncSize = loadAsync.GetValueOrDefault(),
                Applications  = ExceptionStores.Applications,
                Errors        = errors.ToList()
            };

            return(vd);
        }
Esempio n. 6
0
        public ActionResult ExceptionsSearch(string q, string log, ExceptionSorts?sort = null, bool showDeleted = false)
        {
            // Defaults
            sort = sort ?? ExceptionSorts.TimeDesc;

            // empty searches go back to the main log
            if (q.IsNullOrEmpty())
            {
                return(RedirectToAction("Exceptions", new { log }));
            }

            var errors = ExceptionStores.FindErrors(q, log, includeDeleted: showDeleted, max: 2000, sort: sort.Value);

            if (!errors.Any() && !showDeleted)
            {
                // If we didn't find any current errors, go ahead and search deleted as well
                return(RedirectToAction("ExceptionsSearch", new { q, log, showDeleted = true }));
            }

            var vd = new ExceptionsModel
            {
                Sort                    = sort.Value,
                Search                  = q,
                SelectedLog             = log,
                ShowDeleted             = showDeleted,
                Applications            = ExceptionStores.Applications,
                ClearLinkForVisibleOnly = true,
                Errors                  = errors
            };

            return(View("Exceptions.Search", vd));
        }
Esempio n. 7
0
        public ActionResult ExceptionsSearch(string q, string log, bool showDeleted = false)
        {
            // empty searches go back to the main log
            if (q.IsNullOrEmpty())
            {
                return(RedirectToAction("Exceptions", new { log }));
            }

            var errors = ExceptionStores.FindErrors(q, log, includeDeleted: showDeleted, max: 2000);

            if (!errors.Any() && !showDeleted)
            {
                // If we didn't find any current errors, go ahead and search deleted as well
                return(RedirectToAction("ExceptionsSearch", new { q, log, showDeleted = true }));
            }

            var vd = new ExceptionsModel
            {
                Search         = q,
                SelectedLog    = log,
                ShowDeleted    = showDeleted,
                TruncateErrors = true,
                Applications   = ExceptionStores.Applications,
                Errors         = errors
            };

            return(View("Exceptions.Search", vd));
        }
        public void Delete(int id)
        {
            ExceptionsModel.TodoIsNullCheck(Todos);

            ExceptionsModel.TodoExistsCheck(Todos, id);

            Todos.Remove(id);
        }
        public ToDoItem Put(int id, [FromBody] ToDoItem value)
        {
            ExceptionsModel.TodoIsNullCheck(Todos);

            ExceptionsModel.TodoIdCheck(id, value);

            ExceptionsModel.TodoExistsCheck(Todos, id);

            Todos.Remove(id);
            Todos.Add(id, value);
            return(Todos[id]);
        }
Esempio n. 10
0
        public async Task <ActionResult> Preview(string group, string log, Guid id)
        {
            var e = await GetError(log, id).ConfigureAwait(false);

            var vd = new ExceptionsModel
            {
                Exception     = e,
                SelectedGroup = group,
                SelectedLog   = log
            };

            return(View("Exceptions.Preview", vd));
        }
Esempio n. 11
0
        public ActionResult Exceptions(string log, bool truncate = true)
        {
            var errors = ExceptionStores.GetAllErrors(log, log.HasValue() ? 1000 : 200);
            var vd     = new ExceptionsModel
            {
                SelectedLog    = log,
                TruncateErrors = truncate,
                Applications   = ExceptionStores.Applications,
                Errors         = errors
            };

            return(View(vd));
        }
        public ToDoItem Post([FromBody] ToDoItem value)
        {
            ExceptionsModel.TodoIsNullCheck(Todos);

            ToDoItem todo = new ToDoItem
            {
                Id         = TodoCount.Value,
                IsComplete = value.IsComplete,
                Title      = value.Title
            };

            if (Todos.TryAdd(TodoCount.Value, todo) == false)
            {
                throw new Exception("Todo already exists.");
            }

            TodoCount++;
            return(todo);
        }
Esempio n. 13
0
        public ActionResult ExceptionsSimilar(string app, Guid id, bool truncate = true, bool byTime = false)
        {
            var e = ExceptionStores.GetError(app, id);

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

            var errors = ExceptionStores.GetSimilarErrors(e, byTime);
            var vd     = new ExceptionsModel
            {
                Exception      = e,
                SelectedLog    = app,
                TruncateErrors = truncate,
                ShowingWindow  = byTime,
                Applications   = ExceptionStores.Applications,
                Errors         = errors
            };

            return(View("Exceptions.Similar", vd));
        }