private async Task InitializeAssessmentProjectName()

in src/Forms/ProjectDetailsForm.cs [334:389]


        private async Task InitializeAssessmentProjectName()
        {
            KeyValuePair<string, string> selectedSubscription = GetSelectedSubscription();
            KeyValuePair<string, string> selectedResourceGroup = GetSelectedResourceGroupName();
            KeyValuePair<string, string> selectedAzureMigrateProject = GetSelectedAzureMigrateProject();

            if (string.IsNullOrEmpty(selectedSubscription.Key) || string.IsNullOrEmpty(selectedSubscription.Value))
            {
                MessageBox.Show("Empty Subscription ID or name. Please Select Subscription again.");
                return;
            }

            if (string.IsNullOrEmpty(selectedResourceGroup.Key) || string.IsNullOrEmpty(selectedResourceGroup.Value))
            {
                MessageBox.Show("Empty Resource Group ID or name. Please select Resource Group again.");
                return;
            }

            if (string.IsNullOrEmpty(selectedAzureMigrateProject.Key) || string.IsNullOrEmpty(selectedAzureMigrateProject.Value))
            {
                MessageBox.Show("Empty Azure Migrate project ID or name. Please select Migrate project again.");
                return;
            }

            HttpClientHelper httpClientHelperObj = new HttpClientHelper();

            string url = Routes.ProtocolScheme + Routes.AzureManagementApiHostname + Routes.ForwardSlash +
                         Routes.SubscriptionPath + Routes.ForwardSlash + selectedSubscription.Key + Routes.ForwardSlash +
                         Routes.ResourceGroupPath + Routes.ForwardSlash + selectedResourceGroup.Value + Routes.ForwardSlash +
                         Routes.ProvidersPath + Routes.ForwardSlash + Routes.MigrateProvidersPath + Routes.ForwardSlash +
                         Routes.MigrateProjectsPath + Routes.ForwardSlash + selectedAzureMigrateProject.Value + Routes.ForwardSlash +
                         Routes.SolutionsPath + Routes.ForwardSlash + Routes.ServerAssessmentPath +
                         Routes.QueryStringQuestionMark + Routes.QueryParameterApiVersion + Routes.QueryStringEquals + Routes.ProjectDetailsApiVersion;

            try
            {
                JToken jsonTokenResponse = await httpClientHelperObj.GetProjectDetailsHttpJsonResponse(url);
                if (jsonTokenResponse.HasValues)
                {
                    string projectId = jsonTokenResponse["properties"]["details"]["extendedDetails"]["projectId"].Value<string>();
                    var projectIdContents = projectId.Split('/').ToList();
                    if (projectIdContents.Count > 0)
                    {
                        AssessmentProjectName = projectIdContents[projectIdContents.Count - 1];
                        SiteDiscoveryStatusInfoLabel.Text = "Inventory data fetched successfully";
                    }
                    else
                        throw new Exception("projectId response in json does not contain enough elements");
                }
            }
            catch (Exception exAssessmentProjectName)
            {
                MessageBox.Show($"Could not obtain assessment project name: {exAssessmentProjectName.Message} Please re-login.");
                mainFormObj.CloseForm();
            }
        }