private async Task <PolicyStorageEntity> GetPolicyDetails(string httpConnectionString, string thumbprint, string policyName)
        {
            PolicyStorageEntity policyStorageEntity = new PolicyStorageEntity
            {
                policy = policyName
            };
            string URL           = httpConnectionString + "/";
            string URLParameters = "BackupRestore/BackupPolicies/" + policyName + "?api-version=6.4";

            HttpResponseMessage response = await Utility.HTTPGetAsync(URL, URLParameters, thumbprint);

            if (response.IsSuccessStatusCode)
            {
                // Parse the response body. Blocking!
                var           content       = response.Content.ReadAsAsync <JObject>().Result;
                JObject       objectData    = (JObject)content["Storage"];
                BackupStorage backupStorage = JsonConvert.DeserializeObject <BackupStorage>(objectData.ToString());
                policyStorageEntity.backupStorage = backupStorage;
                return(policyStorageEntity);
            }
            else
            {
                Console.WriteLine("{0} ({1})", (int)response.StatusCode, response.ReasonPhrase);
                return(null);
            }
        }
Example #2
0
        public async Task <IActionResult> GetPolicies(String cs, [FromBody] List <string> applications)
        {
            List <PolicyStorageEntity> policyDetails = new List <PolicyStorageEntity>();
            List <string> policyNames = new List <string>();

            foreach (string application in applications)
            {
                string     URL           = "http://" + cs + "/Applications/" + application + "/$/GetBackupConfigurationInfo";
                string     urlParameters = "?api-version=6.2-preview";
                HttpClient client        = new HttpClient
                {
                    BaseAddress = new Uri(URL)
                };
                client.DefaultRequestHeaders.Accept.Add(
                    new MediaTypeWithQualityHeaderValue("application/json"));

                HttpResponseMessage response = await client.GetAsync(urlParameters);

                if (response.IsSuccessStatusCode)
                {
                    var    content = response.Content.ReadAsAsync <JObject>().Result;
                    JArray array   = (JArray)content["Items"];
                    foreach (var item in array)
                    {
                        string policy = item["PolicyName"].ToString();
                        if (!policyNames.Contains(policy))
                        {
                            policyNames.Add(policy);
                        }
                    }
                }
                else
                {
                    Console.WriteLine("{0} ({1})", (int)response.StatusCode, response.ReasonPhrase);
                    return(null);
                }

                foreach (string policyName in policyNames)
                {
                    PolicyStorageEntity policyStorageEntity = await getPolicyDetails(cs, policyName);

                    if (policyStorageEntity != null)
                    {
                        policyDetails.Add(policyStorageEntity);
                    }
                    else
                    {
                        //Console.WriteLine("{0} ({1})", (int)response.StatusCode, response.ReasonPhrase);
                        return(null);
                    }
                }
            }
            return(this.Json(policyDetails));
        }
        public async Task <IActionResult> GetServicePolicies(String httpConnectionStringEncoded, String thumbprint, String serviceName)
        {
            String httpConnectionString = Utility.decodeHTTPString(httpConnectionStringEncoded);

            List <PolicyStorageEntity> policyDetails = new List <PolicyStorageEntity>();
            List <string> policyNames  = new List <string>();
            string        mServiceName = serviceName.Replace("_", "/");
            string        URL          = httpConnectionString + "/";

            string URLParameters = "Services/" + mServiceName + "/$/GetBackupConfigurationInfo" + "?api-version=6.4";

            HttpResponseMessage response = await Utility.HTTPGetAsync(URL, URLParameters, thumbprint);

            if (response.IsSuccessStatusCode)
            {
                var    content = response.Content.ReadAsAsync <JObject>().Result;
                JArray array   = (JArray)content["Items"];
                foreach (var item in array)
                {
                    string policy = item["PolicyName"].ToString();
                    if (!policyNames.Contains(policy))
                    {
                        policyNames.Add(policy);
                    }
                }
            }
            else
            {
                Console.WriteLine("{0} ({1})", (int)response.StatusCode, response.ReasonPhrase);
                return(null);
            }

            foreach (string policyName in policyNames)
            {
                PolicyStorageEntity policyStorageEntity = await this.GetPolicyDetails(httpConnectionString, thumbprint, policyName);

                if (policyStorageEntity != null)
                {
                    policyDetails.Add(policyStorageEntity);
                }
                else
                {
                    return(null);
                }
            }
            return(this.Json(policyDetails));
        }
Example #4
0
        private async Task <PolicyStorageEntity> getPolicyDetails(string cs, string policyName)
        {
            PolicyStorageEntity policyStorageEntity = new PolicyStorageEntity();

            policyStorageEntity.policy = policyName;
            string URL           = "https://" + cs + "/";
            string urlParameters = "BackupRestore/BackupPolicies/" + policyName + "?api-version=6.2-preview";


            X509Certificate2  clientCert     = GetClientCertificate();
            WebRequestHandler requestHandler = new WebRequestHandler();

            requestHandler.ClientCertificates.Add(clientCert);
            requestHandler.ServerCertificateValidationCallback = this.MyRemoteCertificateValidationCallback;


            HttpClient client = new HttpClient(requestHandler)
            {
                BaseAddress = new Uri(URL)
            };

            client.DefaultRequestHeaders.Accept.Add(
                new MediaTypeWithQualityHeaderValue("application/json"));

            // List data response.
            HttpResponseMessage response = await client.GetAsync(urlParameters);  // Blocking call!

            if (response.IsSuccessStatusCode)
            {
                // Parse the response body. Blocking!
                var           content       = response.Content.ReadAsAsync <JObject>().Result;
                JObject       objectData    = (JObject)content["Storage"];
                BackupStorage backupStorage = JsonConvert.DeserializeObject <BackupStorage>(objectData.ToString());
                policyStorageEntity.backupStorage = backupStorage;
                return(policyStorageEntity);
            }
            else
            {
                Console.WriteLine("{0} ({1})", (int)response.StatusCode, response.ReasonPhrase);
                return(null);
            }
        }
Example #5
0
        public async Task <IActionResult> GetApplicationPolicies(String cs, String appName)
        {
            List <PolicyStorageEntity> policyDetails = new List <PolicyStorageEntity>();
            List <string> policyNames = new List <string>();
            string        URL         = "https://" + cs + "/";

            string urlParameters = "Applications/" + appName + "/$/GetBackupConfigurationInfo" + "?api-version=6.2-preview";


            X509Certificate2  clientCert     = GetClientCertificate();
            WebRequestHandler requestHandler = new WebRequestHandler();

            requestHandler.ClientCertificates.Add(clientCert);
            requestHandler.ServerCertificateValidationCallback = this.MyRemoteCertificateValidationCallback;

            HttpClient client = new HttpClient(requestHandler)
            {
                BaseAddress = new Uri(URL)
            };

            client.DefaultRequestHeaders.Accept.Add(
                new MediaTypeWithQualityHeaderValue("application/json"));

            HttpResponseMessage response;

            try
            {
                response = await client.GetAsync(urlParameters);
            }
            catch (Exception e)
            {
                Console.WriteLine("Exception occured.");
                return(null);
            }
            if (response.IsSuccessStatusCode)
            {
                var    content = response.Content.ReadAsAsync <JObject>().Result;
                JArray array   = (JArray)content["Items"];
                foreach (var item in array)
                {
                    string policy = item["PolicyName"].ToString();
                    if (!policyNames.Contains(policy))
                    {
                        policyNames.Add(policy);
                    }
                }
            }
            else
            {
                Console.WriteLine("{0} ({1})", (int)response.StatusCode, response.ReasonPhrase);
                return(null);
            }

            foreach (string policyName in policyNames)
            {
                PolicyStorageEntity policyStorageEntity = await this.getPolicyDetails(cs, policyName);

                if (policyStorageEntity != null)
                {
                    policyDetails.Add(policyStorageEntity);
                }
                else
                {
                    //Console.WriteLine("{0} ({1})", (int)response.StatusCode, response.ReasonPhrase);
                    return(null);
                }
            }
            return(this.Json(policyDetails));
        }