public async Task IssuesInterval()

in wvd-templates/diagnostics-sample/src/MSFT.WVD.Diagnostics/Controllers/DiagonizeIssuesController.cs [482:562]


        public async Task<IActionResult> IssuesInterval(DiagonizePageViewModel diagonizePageViewModel, string interval = null, string outcome = null, string upn = null)
        {

            if (diagonizePageViewModel.DiagonizeQuery == null)
            {
                diagonizePageViewModel.DiagonizeQuery = new DiagonizeQuery();
                diagonizePageViewModel.DiagonizeQuery.UPN = upn;

            }
            HttpContext.Session.Set<string>("SelectedUpn", diagonizePageViewModel.DiagonizeQuery.UPN);

            try
            {
                if (diagonizePageViewModel.DiagonizeQuery.UPN != null)
                {
                    if (!string.IsNullOrEmpty(interval))
                    {
                        HttpContext.Session.Set<string>("SelectedInterval", interval);

                    }
                    else
                    {
                        diagonizePageViewModel.DiagonizeQuery.StartDate = DateTime.Now.AddDays(-7);
                        diagonizePageViewModel.DiagonizeQuery.EndDate = DateTime.Now;
                        interval = HttpContext.Session.Get<string>("SelectedInterval");
                    }

                    if (!string.IsNullOrEmpty(outcome))
                    {
                        HttpContext.Session.Set<string>("SelectedOutcome", outcome);
                    }
                    else
                    {
                        outcome = HttpContext.Session.Get<string>("SelectedOutcome");
                    }



                    diagonizePageViewModel.DiagonizeQuery.ActivityOutcome = outcome != null ? (ActivityOutcome)Enum.Parse(typeof(ActivityOutcome), outcome) : ActivityOutcome.All;
                    if (interval == startDateEnum.Lastonehour.ToString())
                    {
                        diagonizePageViewModel.DiagonizeQuery.StartDate = DateTime.Now.AddMinutes(-60);
                        diagonizePageViewModel.DiagonizeQuery.EndDate = DateTime.Now;
                    }
                    else if (interval == startDateEnum.sixhoursago.ToString())
                    {

                        diagonizePageViewModel.DiagonizeQuery.StartDate = DateTime.Now.AddHours(-6);
                        diagonizePageViewModel.DiagonizeQuery.EndDate = DateTime.Now;

                    }
                    else if (interval == startDateEnum.onedayago.ToString())
                    {

                        diagonizePageViewModel.DiagonizeQuery.StartDate = DateTime.Now.AddDays(-1);
                        diagonizePageViewModel.DiagonizeQuery.EndDate = DateTime.Now;

                    }
                    else if (interval == startDateEnum.oneweekago.ToString())
                    {

                        diagonizePageViewModel.DiagonizeQuery.StartDate = DateTime.Now.AddDays(-7);
                        diagonizePageViewModel.DiagonizeQuery.EndDate = DateTime.Now;

                    }
                    return await Index(diagonizePageViewModel);

                }
                else
                {
                    return View("Index", diagonizePageViewModel);
                }


            }
            catch (Exception ex)
            {

                return RedirectToAction("Error", "Home", new ErrorDetails() { StatusCode = (int)HttpStatusCode.BadRequest, Message = ex.Message.ToString() });
            }
        }