/// <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); }
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); }
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); }