예제 #1
0
 /// <summary>
 /// Create from service model
 /// </summary>
 /// <param name="model"></param>
 public InsertValuesDetailsApiModel(InsertValuesDetailsModel model)
 {
     if (model == null)
     {
         throw new ArgumentNullException(nameof(model));
     }
     Values = model.Values?
              .Select(v => v == null ? null : new HistoricValueApiModel(v))
              .ToList();
 }
예제 #2
0
 /// <summary>
 /// Create api model
 /// </summary>
 public static InsertValuesDetailsApiModel ToApiModel(
     this InsertValuesDetailsModel model)
 {
     if (model == null)
     {
         return(null);
     }
     return(new InsertValuesDetailsApiModel {
         Values = model.Values?
                  .Select(v => v.ToApiModel())
                  .ToList()
     });
 }
예제 #3
0
 /// <summary>
 /// Convert update data details
 /// </summary>
 /// <param name="codec"></param>
 /// <param name="details"></param>
 /// <returns></returns>
 public static JToken Encode(this IVariantEncoder codec, InsertValuesDetailsModel details)
 {
     if (details == null)
     {
         throw new ArgumentNullException(nameof(details));
     }
     if (details.Values == null || details.Values.Count == 0)
     {
         throw new ArgumentException(nameof(details.Values));
     }
     return(codec.Encode(new ExtensionObject(new UpdateDataDetails {
         NodeId = NodeId.Null,
         PerformInsertReplace = PerformUpdateType.Insert,
         UpdateValues = new DataValueCollection(details.Values
                                                .Select(d => new DataValue {
             ServerPicoseconds = d.ServerPicoseconds ?? 0,
             SourcePicoseconds = d.SourcePicoseconds ?? 0,
             ServerTimestamp = d.ServerTimestamp ?? DateTime.MinValue,
             SourceTimestamp = d.SourceTimestamp ?? DateTime.MinValue,
             StatusCode = d.StatusCode ?? StatusCodes.Good,
             Value = new EncodeableJToken(d.Value)     // TODO: Validate
         }))
     })));
 }