ArmRest.Util.ComputeResources.GetVmPowerStatus C# (CSharp) Method

GetVmPowerStatus() public static method

public static GetVmPowerStatus ( String accessToken, ComputeVm thisVm ) : bool
accessToken String
thisVm ArmRest.Models.ComputeVm
return bool
        public static bool GetVmPowerStatus(String accessToken, ComputeVm thisVm)
        {
            bool returnResult = false;

            string vmId = thisVm.id;
            var SplitUrl = vmId.Split('/');
            var rgName = SplitUrl[4];
            var subscriptionName = SplitUrl[2];

            string authToken = "Bearer" + " " + accessToken;
            var client = new WebClient();
            client.Headers.Add("Authorization", authToken);
            client.Headers.Add("Content-Type", "application/json");

            string vmStatusUrl = string.Format("https://management.azure.com/subscriptions/{0}/resourceGroups/{1}/providers/Microsoft.Compute/virtualMachines/{2}?$expand=instanceView&api-version=2015-06-15", subscriptionName, rgName, thisVm.name);
            String text = "";
            text = client.DownloadString(vmStatusUrl);
            var vmStatus = Newtonsoft.Json.JsonConvert.DeserializeObject<ComputeVm>(text);
            var InstanceView = vmStatus.properties.instanceView.statuses;
            var ThisInstanceviewPowerState = InstanceView.Where(p => p.code.Contains("PowerState")).FirstOrDefault();
            var ThisInstanceviewProvisioningState = InstanceView.Where(p => p.code.Contains("ProvisioningState")).FirstOrDefault();
            if ((ThisInstanceviewPowerState.code == "PowerState/running") && (ThisInstanceviewProvisioningState.code == "ProvisioningState/succeeded"))
            {

                returnResult = true;
            }

            System.Diagnostics.Debug.WriteLine(string.Format("VM {0} in RG {1} has power state {2}", thisVm.name, rgName, ThisInstanceviewPowerState.code));
            return returnResult;
        }