Ejemplo n.º 1
0
 /// <summary>
 /// Initializes a new instance of TimeSeriesInstance.
 /// </summary>
 /// <param name="timeSeriesId">
 /// Time Series Id that uniquely identifies the instance.It matches Time Series Id properties in
 /// an environment. Immutable, never null.
 /// </param>
 /// <param name="typeId">
 /// This represents the type that this instance belongs to. Never null.
 /// </param>
 /// <exception cref="ArgumentNullException">
 /// <paramref name="timeSeriesId"/> or <paramref name="typeId"/> is null.
 /// </exception>
 public TimeSeriesInstance(TimeSeriesId timeSeriesId, string typeId)
 {
     TimeSeriesId   = timeSeriesId ?? throw new ArgumentNullException(nameof(timeSeriesId));
     TypeId         = typeId ?? throw new ArgumentNullException(nameof(typeId));
     HierarchyIds   = new ChangeTrackingList <string>();
     InstanceFields = new ChangeTrackingDictionary <string, object>();
 }
Ejemplo n.º 2
0
 /// <summary>
 /// Initializes a new instance of TimeSeriesInstance.
 /// </summary>
 /// <param name="timeSeriesId">
 /// Time Series Id that uniquely identifies the instance. It matches Time Series Id properties in
 /// an environment. Immutable, never null.
 /// </param>
 /// <param name="typeId">This represents the type that this instance belongs to. Never null. </param>
 /// <param name="name">
 /// Optional name of the instance which is unique in an environment. Names acts as a mutable alias
 /// or display name of the time series instance. Mutable, may be null.
 /// </param>
 /// <param name="description">This optional field contains description about the instance. </param>
 /// <param name="hierarchyIds">Set of time series hierarchy Ids that the instance belong to. May be null. </param>
 /// <param name="instanceFields">
 /// Set of key-value pairs that contain user-defined instance properties.
 /// It may be null. Supported property value types are: bool, string, long, double and it cannot be nested or null.
 /// </param>
 internal TimeSeriesInstance(
     TimeSeriesId timeSeriesId,
     string typeId,
     string name,
     string description,
     IList <string> hierarchyIds,
     IDictionary <string, object> instanceFields)
 {
     TimeSeriesId   = timeSeriesId;
     TypeId         = typeId;
     Name           = name;
     Description    = description;
     HierarchyIds   = hierarchyIds;
     InstanceFields = instanceFields;
 }
 // The use of fully qualified name for IUtf8JsonSerializable is a work around until this
 // issue is fixed: https://github.com/Azure/autorest.csharp/issues/793
 void global::Azure.Core.IUtf8JsonSerializable.Write(Utf8JsonWriter writer)
 {
     writer.WriteStartObject();
     writer.WritePropertyName("timeSeriesId");
     writer.WriteStartArray();
     foreach (object item in TimeSeriesId.ToArray())
     {
         writer.WriteObjectValue(item);
     }
     writer.WriteEndArray();
     writer.WritePropertyName("typeId");
     writer.WriteStringValue(TypeId);
     if (Optional.IsDefined(Name))
     {
         writer.WritePropertyName("name");
         writer.WriteStringValue(Name);
     }
     if (Optional.IsDefined(Description))
     {
         writer.WritePropertyName("description");
         writer.WriteStringValue(Description);
     }
     if (Optional.IsCollectionDefined(HierarchyIds))
     {
         writer.WritePropertyName("hierarchyIds");
         writer.WriteStartArray();
         foreach (var item in HierarchyIds)
         {
             writer.WriteStringValue(item);
         }
         writer.WriteEndArray();
     }
     if (Optional.IsCollectionDefined(InstanceFields))
     {
         writer.WritePropertyName("instanceFields");
         writer.WriteStartObject();
         foreach (KeyValuePair <string, object> item in InstanceFields)
         {
             writer.WritePropertyName(item.Key);
             writer.WriteObjectValue(item.Value);
         }
         writer.WriteEndObject();
     }
     writer.WriteEndObject();
 }
        internal static TimeSeriesInstance DeserializeTimeSeriesInstance(JsonElement element)
        {
            TimeSeriesId               timeSeriesId = default;
            string                     typeId       = default;
            Optional <string>          name         = default;
            Optional <string>          description  = default;
            Optional <IList <string> > hierarchyIds = default;
            Optional <IDictionary <string, object> > instanceFields = default;

            foreach (JsonProperty property in element.EnumerateObject())
            {
                if (property.NameEquals("timeSeriesId"))
                {
                    var array = new List <string>();
                    foreach (JsonElement item in property.Value.EnumerateArray())
                    {
                        array.Add(item.GetString());
                    }

                    timeSeriesId = array.Count switch
                    {
                        1 => new TimeSeriesId(array[0]),
                        2 => new TimeSeriesId(array[0], array[1]),
                        3 => new TimeSeriesId(array[0], array[1], array[2]),
                        _ => throw new Exception($"Invalid number of Time Series Insights Id properties."),
                    };
                    continue;
                }
                if (property.NameEquals("typeId"))
                {
                    typeId = property.Value.GetString();
                    continue;
                }
                if (property.NameEquals("name"))
                {
                    name = property.Value.GetString();
                    continue;
                }
                if (property.NameEquals("description"))
                {
                    description = property.Value.GetString();
                    continue;
                }
                if (property.NameEquals("hierarchyIds"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    List <string> array = new List <string>();
                    foreach (JsonElement item in property.Value.EnumerateArray())
                    {
                        array.Add(item.GetString());
                    }
                    hierarchyIds = array;
                    continue;
                }
                if (property.NameEquals("instanceFields"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    Dictionary <string, object> dictionary = new Dictionary <string, object>();
                    foreach (JsonProperty property0 in property.Value.EnumerateObject())
                    {
                        dictionary.Add(property0.Name, property0.Value.GetObject());
                    }
                    instanceFields = dictionary;
                    continue;
                }
            }

            return(new TimeSeriesInstance(
                       timeSeriesId,
                       typeId,
                       name.Value,
                       description.Value,
                       Optional.ToList(hierarchyIds),
                       Optional.ToDictionary(instanceFields)));
        }