Example #1
0
        public static string AddDomainToDistribution(string AWSAccesKey, string AWSSecretKey, string distributionId, string domainName)
        {
            try
            {
                if (String.IsNullOrEmpty(distributionId))
                {
                    throw new Exception("distributionId cannot be null");
                }
                if (String.IsNullOrEmpty(domainName))
                {
                    throw new Exception("domain name cannnot be null");
                }

                domainName = domainName.Trim(' ');
                domainName = domainName.ToLower();

                using (AmazonCloudFrontClient cfClient = new AmazonCloudFrontClient(AWSAccesKey, AWSSecretKey, RegionEndpoint.APSouth1))
                {
                    GetDistributionConfigRequest distributionConfig = new GetDistributionConfigRequest
                    {
                        Id = distributionId
                    };
                    var config = cfClient.GetDistributionConfigAsync(distributionConfig).Result;

                    //  Set a new config
                    DistributionConfig newConfig = config.DistributionConfig;
                    if (newConfig.Aliases.Items.Contains(domainName))
                    {
                        return("already present");
                    }
                    newConfig.Aliases.Items.Add(domainName);
                    newConfig.Aliases.Quantity += 1;

                    //  Update
                    UpdateDistributionRequest req = new UpdateDistributionRequest
                    {
                        Id                 = distributionId,
                        IfMatch            = config.ETag,
                        DistributionConfig = newConfig
                    };

                    var response = cfClient.UpdateDistributionAsync(req).Result;
                }

                return("success");
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }
        /// <summary>
        /// Config is required while updating a Distribution
        /// </summary>
        /// <param name="distributionId"></param>
        /// <returns></returns>
        public static GetDistributionConfigResponse GetDistributionConfigResponse(string distributionId)
        {
            try
            {
                if (String.IsNullOrEmpty(distributionId))
                {
                    return(null);
                }

                var client = new AmazonCloudFrontClient(RegionEndpoint.APSouth1);

                var request = new GetDistributionConfigRequest()
                {
                    Id = distributionId
                };

                return(client.GetDistributionConfigAsync(request).Result);
            }
            catch (Exception ex)
            {
                //TODO - log the exception
            }
            return(null);
        }