/// <summary> /// Create from service model /// </summary> /// <param name="model"></param> public InsertEventsDetailsApiModel(InsertEventsDetailsModel model) { if (model == null) { throw new ArgumentNullException(nameof(model)); } Filter = model.Filter; Events = model.Events? .Select(v => v == null ? null : new HistoricEventApiModel(v)) .ToList(); }
/// <summary> /// Create api model /// </summary> public static InsertEventsDetailsApiModel ToApiModel( this InsertEventsDetailsModel model) { if (model == null) { return(null); } return(new InsertEventsDetailsApiModel { Filter = model.Filter.ToApiModel(), Events = model.Events? .Select(v => v.ToApiModel()) .ToList() }); }
/// <summary> /// Convert update event details /// </summary> /// <param name="codec"></param> /// <param name="details"></param> /// <returns></returns> public static JToken Encode(this IVariantEncoder codec, InsertEventsDetailsModel details) { if (details == null) { throw new ArgumentNullException(nameof(details)); } if (details.Events == null || details.Events.Count == 0) { throw new ArgumentException(nameof(details.Events)); } return(codec.Encode(new ExtensionObject(new UpdateEventDetails { NodeId = NodeId.Null, PerformInsertReplace = PerformUpdateType.Insert, Filter = codec.Decode(details.Filter), EventData = new HistoryEventFieldListCollection(details.Events .Select(d => new HistoryEventFieldList { EventFields = new VariantCollection(d.EventFields .Select(f => new Variant(new EncodeableJToken(f)))) })) }))); }