public virtual void Put(int fieldPos, object fieldValue) { switch (fieldPos) { case 0: this._dataObject = (Energistics.Etp.v11.Datatypes.Object.DataObject)fieldValue; break; default: throw new AvroRuntimeException("Bad index " + fieldPos + " in Put()"); } ; }
public virtual void Put(int fieldPos, object fieldValue) { switch (fieldPos) { case 0: this._channelUri = (System.String)fieldValue; break; case 1: this._channelId = (System.Int64)fieldValue; break; case 2: this._indexes = (IList <Energistics.Etp.v11.Datatypes.ChannelData.IndexMetadataRecord>)fieldValue; break; case 3: this._channelName = (System.String)fieldValue; break; case 4: this._dataType = (System.String)fieldValue; break; case 5: this._uom = (System.String)fieldValue; break; case 6: this._startIndex = (System.Nullable <long>)fieldValue; break; case 7: this._endIndex = (System.Nullable <long>)fieldValue; break; case 8: this._description = (System.String)fieldValue; break; case 9: this._status = (Energistics.Etp.v11.Datatypes.ChannelData.ChannelStatuses)fieldValue; break; case 10: this._contentType = (System.String)fieldValue; break; case 11: this._source = (System.String)fieldValue; break; case 12: this._measureClass = (System.String)fieldValue; break; case 13: this._uuid = (System.String)fieldValue; break; case 14: this._customData = (IDictionary <string, Energistics.Etp.v11.Datatypes.DataValue>)fieldValue; break; case 15: this._domainObject = (Energistics.Etp.v11.Datatypes.Object.DataObject)fieldValue; break; default: throw new AvroRuntimeException("Bad index " + fieldPos + " in Put()"); } ; }
protected virtual void LogChannelData(IList <IDataItem> dataItems) { var dataObjects = new List <Tuple <ChannelMetadataViewModel, byte[]> >(); // Check if producer is sending index/value pairs if (!dataItems.Take(1).SelectMany(x => x.Indexes.Cast <object>()).Any()) { for (int i = 0; i < dataItems.Count; i += 2) { var indexItem = dataItems[i]; var valueItem = dataItems[i + 1]; var valueChannel = Channels.FirstOrDefault(c => c.Record.ChannelId == valueItem.ChannelId); if (valueChannel != null && valueItem.Value.Item is byte[]) { dataObjects.Add(Tuple.Create(valueChannel, (byte[])valueItem.Value.Item)); } Parent.Details.Append(string.Format( "[ \"{0}\", {1}, {2} ],{3}", valueChannel?.Record.ChannelName, indexItem.Value.Item, valueItem.Value.Item, Environment.NewLine)); } } else // DataItems with indexes { var dataValues = string.Join(Environment.NewLine, dataItems.Select(x => { var channel = Channels.FirstOrDefault(c => c.Record.ChannelId == x.ChannelId); var channelIndex = channel?.Record.Indexes.Cast <IIndexMetadataRecord>().FirstOrDefault(); var isTimeIndex = Parent.EtpExtender.IsTimeIndex(channelIndex); var indexValue = x.Indexes.Cast <object>().FirstOrDefault(); var indexFormat = isTimeIndex ? DateTimeExtensions.FromUnixTimeMicroseconds(Convert.ToInt64(indexValue)).ToString("o") : $"{(indexValue as long?)?.IndexFromScale(channelIndex?.Scale ?? 3) ?? indexValue}"; if (channel != null && x.Value.Item is byte[]) { dataObjects.Add(Tuple.Create(channel, (byte[])x.Value.Item)); } return(string.Format("[ \"{0}\", {1}, {2} ] // Channel ID: {3} // {4}", channel?.Record.ChannelName, indexValue, x.Value.Item, x.ChannelId, indexFormat)); })); Parent.Details.Append(string.Format( "{0}{1}", dataValues, Environment.NewLine)); } // Check if user wants to see decoded byte arrays if (!Model.DecodeByteArrays) { return; } foreach (var tuple in dataObjects) { var dataObject = new Energistics.Etp.v11.Datatypes.Object.DataObject { Data = tuple.Item2 }; var xml = dataObject.GetString(); if (string.IsNullOrWhiteSpace(xml)) { continue; } Parent.DataObject.Append(Environment.NewLine + Environment.NewLine); Parent.DataObject.Append(xml); } }