/// <summary>
        /// Additional operations to be performed when cloning an instance of <see cref="AzureUtilizationRecord" /> to an instance of <see cref="PSAzureUtilizationRecord" />.
        /// </summary>
        /// <param name="utilizationRecord">The utilization record being cloned.</param>
        private void CloneAdditionalOperations(AzureUtilizationRecord utilizationRecord)
        {
            this.CopyFrom(utilizationRecord?.InstanceData);
            this.CopyFrom(utilizationRecord?.Resource);

            if (utilizationRecord?.InstanceData != null && utilizationRecord.InstanceData.AdditionalInfo != null)
            {
                foreach (KeyValuePair <string, string> item in utilizationRecord.InstanceData.AdditionalInfo)
                {
                    AdditionalInfo.Add(item);
                }
            }

            if (utilizationRecord?.InfoFields != null)
            {
                foreach (KeyValuePair <string, string> item in utilizationRecord.InfoFields)
                {
                    InfoFields.Add(item);
                }
            }

            if (utilizationRecord?.InstanceData != null && utilizationRecord.InstanceData.Tags != null)
            {
                foreach (KeyValuePair <string, string> item in utilizationRecord.InstanceData.Tags)
                {
                    Tags.Add(item);
                }
            }
        }
        /// <summary>
        /// Addtional operations to be performed when cloning an instance of <see cref="AzureUtilizationRecord" /> to an instance of <see cref="PSAzureUtilizationRecord" />.
        /// </summary>
        /// <param name="utilizationRecord">The utilization record being cloned.</param>
        private void CloneAdditionalOperations(AzureUtilizationRecord utilizationRecord)
        {
            InfoFields = utilizationRecord?.InfoFields;

            this.CopyFrom(utilizationRecord?.InstanceData);
            this.CopyFrom(utilizationRecord?.Resource);
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="PSAzureUtilizationRecord" /> class.
        /// </summary>
        /// <param name="azureUtilizationRecord">A utilization record for an Azure subscription resource.</param>
        public PSAzureUtilizationRecord(AzureUtilizationRecord azureUtilizationRecord)
        {
            AdditionalInfo = new Dictionary <string, string>();
            InfoFields     = new Dictionary <string, string>();
            Tags           = new Dictionary <string, string>();

            this.CopyFrom(azureUtilizationRecord, CloneAdditionalOperations);
        }
示例#4
0
        public IList <AzureUtilizationRecord> MapUtilizationToCustomClass(List <CustomObject> listFromSDK)
        {
            IList <AzureUtilizationRecord> customList = new List <AzureUtilizationRecord>();

            foreach (var objFromSDK in listFromSDK)
            {
                foreach (var record in objFromSDK.ResourceUtilizationList)
                {
                    AzureUtilizationRecord objCustom = new AzureUtilizationRecord();
                    objCustom.CustomerCompanyName = objFromSDK.CustomerCompanyName;
                    objCustom.UsageStartTime      = record.UsageStartTime.LocalDateTime;
                    objCustom.UsageEndTime        = record.UsageEndTime.LocalDateTime;
                    objCustom.Unit       = record.Unit;
                    objCustom.Quantity   = (double)record.Quantity;
                    objCustom.InfoFields = record.InfoFields;

                    AzureInstanceData         objCustomInstanceData      = new AzureInstanceData();
                    AzureResource             objCustomResouceData       = new AzureResource();
                    Models.ResourceAttributes objCustomResouceAttributes = new Models.ResourceAttributes();

                    try
                    {
                        objCustomInstanceData.Location    = record.InstanceData.Location;
                        objCustomInstanceData.OrderNumber = record.InstanceData.OrderNumber;
                        objCustomInstanceData.PartNumber  = record.InstanceData.PartNumber;
                        objCustomInstanceData.ResourceUri = record.InstanceData.ResourceUri.OriginalString;
                        objCustomInstanceData.Tags        = record.InstanceData.Tags;
                    }
                    catch { }

                    objCustom.InstanceData = objCustomInstanceData;

                    objCustomResouceData.Category    = record.Resource.Category;
                    objCustomResouceData.Id          = record.Resource.Id;
                    objCustomResouceData.Name        = record.Resource.Name;
                    objCustomResouceData.Subcategory = record.Resource.Subcategory;

                    objCustom.Resource = objCustomResouceData;

                    objCustomResouceAttributes.Etag = record.Attributes.Etag;

                    objCustom.Attributes = objCustomResouceAttributes;

                    customList.Add(objCustom);
                }
            }
            return(customList);
        }
示例#5
0
        public IList <AzureUtilizationRecord> MapUtilizationToCustomClass(List <Microsoft.Store.PartnerCenter.Models.Utilizations.AzureUtilizationRecord> listFromSDK)
        {
            IList <AzureUtilizationRecord> customList = new List <AzureUtilizationRecord>();

            foreach (var objFromSDK in listFromSDK)
            {
                AzureUtilizationRecord objCustom = new AzureUtilizationRecord();
                objCustom.UsageStartTime = objFromSDK.UsageStartTime.LocalDateTime;
                objCustom.UsageEndTime   = objFromSDK.UsageEndTime.LocalDateTime;
                objCustom.Unit           = objFromSDK.Unit;
                objCustom.Quantity       = (double)objFromSDK.Quantity;
                objCustom.InfoFields     = objFromSDK.InfoFields;

                AzureInstanceData         objCustomInstanceData      = new AzureInstanceData();
                AzureResource             objCustomResouceData       = new AzureResource();
                Models.ResourceAttributes objCustomResouceAttributes = new Models.ResourceAttributes();

                objCustomInstanceData.Location    = objFromSDK.InstanceData.Location;
                objCustomInstanceData.OrderNumber = objFromSDK.InstanceData.OrderNumber;
                objCustomInstanceData.PartNumber  = objFromSDK.InstanceData.PartNumber;
                objCustomInstanceData.ResourceUri = objFromSDK.InstanceData.ResourceUri.OriginalString;
                objCustomInstanceData.Tags        = objFromSDK.InstanceData.Tags;

                objCustom.InstanceData = objCustomInstanceData;

                objCustomResouceData.Category    = objFromSDK.Resource.Category;
                objCustomResouceData.Id          = objFromSDK.Resource.Id;
                objCustomResouceData.Name        = objFromSDK.Resource.Name;
                objCustomResouceData.Subcategory = objFromSDK.Resource.Subcategory;

                objCustom.Resource = objCustomResouceData;

                objCustomResouceAttributes.Etag = objFromSDK.Attributes.Etag;

                objCustom.Attributes = objCustomResouceAttributes;

                customList.Add(objCustom);
            }
            return(customList);
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="PSAzureUtilizationRecord" /> class.
        /// </summary>
        /// <param name="azureUtilizationRecord">A utilization record for an Azure subscription resource.</param>
        public PSAzureUtilizationRecord(AzureUtilizationRecord azureUtilizationRecord)
        {
            azureUtilizationRecord.AssertNotNull(nameof(azureUtilizationRecord));

            this.CopyFrom(azureUtilizationRecord);
        }
        /// <summary>
        /// Copies the values from an instance of <see cref="PSAzureUtilizationRecord" />.
        /// </summary>
        /// <param name="azureUtilizationRecord">An instance of the <see cref="PSAzureUtilizationRecord" /> class.</param>
        /// <param name="other">The base Azure utilization record that should be cloned.</param>
        public static void CopyFrom(this PSAzureUtilizationRecord azureUtilizationRecord, AzureUtilizationRecord other)
        {
            if (azureUtilizationRecord != null && other != null)
            {
                CloneProperties(azureUtilizationRecord, other);

                azureUtilizationRecord.AdditionalInfo = other.InstanceData.AdditionalInfo;
                azureUtilizationRecord.InfoFields     = other.InfoFields;
                azureUtilizationRecord.Tags           = other.InstanceData.Tags;

                azureUtilizationRecord.CopyFrom(other.InstanceData);
                azureUtilizationRecord.CopyFrom(other.Resource);
            }
        }
 /// <summary>
 /// Initializes a new instance of the <see cref="PSAzureUtilizationRecord" /> class.
 /// </summary>
 /// <param name="azureUtilizationRecord">A utilization record for an Azure subscription resource.</param>
 public PSAzureUtilizationRecord(AzureUtilizationRecord azureUtilizationRecord)
 {
     this.CopyFrom(azureUtilizationRecord, CloneAdditionalOperations);
 }