public async Task Index()

in wvd-templates/diagnostics-sample/src/MSFT.WVD.Diagnostics/Controllers/HomeController.cs [40:87]


        public async Task<IActionResult> Index()
        {
            var role = new RoleAssignment();
            var messsage = "";
            if (HttpContext.Session.Get<RoleAssignment>("SelectedRole") == null)
            {
                var roleAssignments = await InitialzeRoleInfomation();
                HttpContext.Session.Set("WVDRoles", roleAssignments);
                HttpContext.Session.Set<RoleAssignment>("SelectedRole", roleAssignments[0]);
                //get queries from xml
                _logger.LogInformation($"Get Log analytic queries from from xml file");
                XmlDocument xDoc = new XmlDocument();
                xDoc.PreserveWhitespace = false;
                var path = _fileProvider.GetFileInfo("/metrics.xml");
                if (path.Exists)
                {
                    try
                    {
                        xDoc.Load(path.PhysicalPath);
                        _logger.LogInformation("save Log analytic queries in session storage ");
                        HttpContext.Session.Set<XmlDocument>("LogAnalyticQuery", xDoc);
                    }
                    catch (System.Xml.XmlException ex)
                    {
                        _logger.LogError($"Failed to load 'metrics.xml' .{ex.Message}");
                        messsage = $"Failed to load 'metrics.xml' .{ex.Message}";
                    }

                }
                else
                {
                    string DirectoryNme = _hostingEnvironment.ContentRootPath;
                    messsage = $"VM performance queries file does not exist or invalid format. Please upload/correct 'metrics.xml' file to '{DirectoryNme}' .";
                    _logger.LogWarning("Log analytic query file is not exist.");
                }
            }
            role = HttpContext.Session.Get<IEnumerable<RoleAssignment>>("WVDRoles").FirstOrDefault();

           

            return View(new HomePageViewModel()
            {
                SelectedRole = role,
                Message = messsage,
                TenantGroups= GetTenantGroups(),
                ShowDialog = HttpContext.Session.GetString("SelectedTenantGroupName") == null
            });
        }