public ActionResult Index(string q) { var viewModel = new SearchViewModel { Query = q }; var applications = Core.GetApplications(); if (applications.PagingStatus.TotalItems > 0) { int searchedIssueId; if (int.TryParse(q, out searchedIssueId)) { var issue = _session.Raven.Load <Issue>(searchedIssueId); if (issue != null) { return(Redirect(Url.Issue(searchedIssueId.ToString()))); } } var issues = _getApplicationIssuesQuery.Invoke(new GetApplicationIssuesRequest { Paging = new PageRequestWithSort(1, 10) { Sort = nameof(Errordite.Core.Domain.Error.Error.TimestampUtc), SortDescending = true }, OrganisationId = Core.AppContext.CurrentUser.OrganisationId, Query = q, ApplicationId = CurrentApplication.IfPoss(a => a.Id), }).Issues; var errors = _getApplicationErrorsQuery.Invoke(new GetApplicationErrorsRequest { Paging = new PageRequestWithSort(1, 10) { Sort = nameof(Errordite.Core.Domain.Error.Error.TimestampUtc), SortDescending = true }, OrganisationId = Core.AppContext.CurrentUser.OrganisationId, Query = q, ApplicationId = CurrentApplication.IfPoss(a => a.Id), }).Errors; viewModel.IssueTotal = issues.PagingStatus.TotalItems; viewModel.ErrorTotal = errors.PagingStatus.TotalItems; viewModel.Issues = IssueItemViewModel.ConvertSimple(issues.Items, Core.GetUsers().Items, Core.AppContext.CurrentUser.ActiveOrganisation.TimezoneId, true); viewModel.Errors = errors.Items.Select(e => new ErrorInstanceViewModel { Error = e, ApplicationName = GetApplicationName(applications.Items, e.ApplicationId) }).ToList(); } return(View(viewModel)); }
public ActionResult Index() { var curentApplication = CurrentApplication; var applicationId = curentApplication == null ? null : curentApplication.Id; var viewModel = new DashboardViewModel(); var applications = Core.GetApplications(); var preferences = CookieManager.Get(WebConstants.CookieSettings.DashboardCookieKey); var pref = preferences.IsNullOrEmpty() || !preferences.Contains("|") ? null : preferences.Split('|'); viewModel.ShowMe = pref == null ? "1" : pref[0]; viewModel.PageSize = pref == null ? 10 : int.Parse(pref[1]); if (applications.PagingStatus.TotalItems > 0) { viewModel.HasApplications = true; if (applications.Items.Count == 1) { viewModel.SingleApplicationId = applications.Items[0].Id; viewModel.SingleApplicationToken = applications.Items[0].Token; } var showMe = DashboardViewModel.Sorting.FirstOrDefault(s => s.Id == viewModel.ShowMe) ?? new DashboardSort("1", "", true, "LastErrorUtc"); if (showMe.Id == "5") { var errors = _getApplicationErrorsQuery.Invoke(new GetApplicationErrorsRequest { Paging = new PageRequestWithSort(1, viewModel.PageSize, "TimestampUtc", true), OrganisationId = Core.AppContext.CurrentUser.OrganisationId, ApplicationId = applicationId }).Errors; viewModel.Errors = errors.Items.Select(e => new ErrorInstanceViewModel { Error = e, ApplicationName = GetApplicationName(applications.Items, e.ApplicationId), }).ToList(); viewModel.ShowIntro = errors.PagingStatus.TotalItems <= 5 && applications.Items.Count == 1; } else { var issues = _getApplicationIssuesQuery.Invoke(new GetApplicationIssuesRequest { Paging = new PageRequestWithSort(1, viewModel.PageSize, showMe.SortField, showMe.SortDescending), OrganisationId = Core.AppContext.CurrentUser.OrganisationId, ApplicationId = applicationId }).Issues; viewModel.TestIssueId = issues.Items.FirstOrDefault(i => i.TestIssue).IfPoss(i => i.Id); viewModel.Issues = IssueItemViewModel.ConvertSimple(issues.Items, Core.GetUsers().Items, Core.AppContext.CurrentUser.ActiveOrganisation.TimezoneId, showMe.Id != "2"); viewModel.ShowIntro = issues.PagingStatus.TotalItems <= 3 && applications.Items.Count == 1; } var selectedApplication = applicationId.IsNotNullOrEmpty() ? applications.Items.FirstOrDefault(a => a.FriendlyId == applicationId.GetFriendlyId()) : null; viewModel.SelectedApplicationId = selectedApplication == null ? null : selectedApplication.FriendlyId; viewModel.SelectedApplicationName = selectedApplication == null ? null : selectedApplication.Name; viewModel.Applications = applications.Items; viewModel.UrlGetter = GetDashboardUrl; viewModel.ShowMeOptions = DashboardViewModel.Sorting.ToSelectList(s => s.Id, s => s.DisplayName, s => s.Id == viewModel.ShowMe); viewModel.PageSizes = new List <SelectListItem> { new SelectListItem { Text = "10", Value = "10", Selected = viewModel.PageSize == 10 }, new SelectListItem { Text = "20", Value = "20", Selected = viewModel.PageSize == 20 }, new SelectListItem { Text = "30", Value = "30", Selected = viewModel.PageSize == 30 } }; } else { ConfirmationNotification("You do not currently have any applications, please create an application to begin using Errordite."); return(Redirect(Url.AddApplication(false))); } return(View(viewModel)); }
public ActionResult Update(string mode, string showMe, int pageSize) { object feed = null; object errors = null; object stats = null; var liveErrorFeed = false; var currentApplication = CurrentApplication; var applicationId = currentApplication == null ? null : currentApplication.Id; if (mode.IsIn("feed", "undefined")) { CookieManager.Set(WebConstants.CookieSettings.DashboardCookieKey, "{0}|{1}".FormatWith(showMe, pageSize), null); var sort = DashboardViewModel.Sorting.First(s => s.Id == showMe); if (sort.Id == "5") { liveErrorFeed = true; var applications = Core.GetApplications(); var items = _getApplicationErrorsQuery.Invoke(new GetApplicationErrorsRequest { Paging = new PageRequestWithSort(1, pageSize, "TimestampUtc", true), OrganisationId = Core.AppContext.CurrentUser.OrganisationId, ApplicationId = applicationId }).Errors; feed = items == null ? new string[] { } : items.Items.Select(e => new ErrorInstanceViewModel { Error = e, ApplicationName = GetApplicationName(applications.Items, e.ApplicationId), }).Select(e => RenderPartial("Dashboard/Error", e)); } else { var items = _getApplicationIssuesQuery.Invoke(new GetApplicationIssuesRequest { Paging = new PageRequestWithSort(1, pageSize, sort.SortField, sort.SortDescending), OrganisationId = Core.AppContext.CurrentUser.OrganisationId, ApplicationId = applicationId }).Issues.Items; feed = items == null || items.Count == 0 ? new string[] { } : IssueItemViewModel.ConvertSimple(items, Core.GetUsers().Items, Core.AppContext.CurrentUser.ActiveOrganisation.TimezoneId, sort.Id != "2") .Select(i => RenderPartial("Dashboard/Issue", i)); } } if (mode.IsIn("graphs", "undefined")) { stats = _getOrganisationStatisticsQuery.Invoke(new GetOrganisationStatisticsRequest { ApplicationId = CurrentApplication == null ? null : CurrentApplication.Id }).Statistics ?? new Statistics(); errors = _getDashboardReportQuery.Invoke(new GetDashboardReportRequest { ApplicationId = currentApplication == null ? null : currentApplication.Id }).Data; } return(new JsonSuccessResult(new { feed, stats, errors, liveErrorFeed }, allowGet: true)); }