public static Object ToObject(this PBField f) { //# Tested switch (f.ValueCase) { case PBField.ValueOneofCase.StringValue: return(f.StringValue); case PBField.ValueOneofCase.BoolValue: return(f.BoolValue); case PBField.ValueOneofCase.IntValue: return(f.IntValue); case PBField.ValueOneofCase.FloatValue: return(f.FloatValue); case PBField.ValueOneofCase.BytesValue: return(f.BytesValue.ToByteArray()); case PBField.ValueOneofCase.TimeValue: return(f.TimeValue.ToDateTime()); case PBField.ValueOneofCase.ConceptValue: return(f.ConceptValue.ToConcept()); case PBField.ValueOneofCase.PublicIdListValue: return(f.PublicIdListValue.ToPublicIdList()); case PBField.ValueOneofCase.DiTreeValue: return(f.DiTreeValue.ToDiTree()); case PBField.ValueOneofCase.DiGraphValue: return(f.DiGraphValue.ToDiGraph()); case PBField.ValueOneofCase.VertexValue: return(f.VertexValue.ToVertex()); case PBField.ValueOneofCase.GraphValue: return(f.GraphValue.ToGraph()); default: throw new NotImplementedException(); } }
static PBField ToPBField(this Object item) { PBField f = new PBField(); switch (item) { case String value: f.StringValue = value; break; case Boolean value: f.BoolValue = value; break; case Int32 value: f.IntValue = value; break; case Single value: f.FloatValue = value; break; case Byte[] value: f.BytesValue = ByteString.CopyFrom(value); break; case ConceptDTO value: f.ConceptValue = value.ToPBConcept(); break; case DateTime value: f.TimeValue = Timestamp.FromDateTime(value); break; case List <IPublicId> value: { PBPublicIdList l = new PBPublicIdList(); l.PublicIds.AddRange(value.ToPBPublicIds()); f.PublicIdListValue = l; } break; case HashSet <IPublicId> value: { PBPublicIdList l = new PBPublicIdList(); l.PublicIds.AddRange(value.ToPBPublicIds()); f.PublicIdListValue = l; } break; case DiTreeDTO value: f.DiTreeValue = value.ToPBDiTree(); break; case DiGraphDTO value: f.DiGraphValue = value.ToPBDiGraph(); break; case GraphDTO value: f.GraphValue = value.ToPBGraph(); break; case VertexDTO value: f.VertexValue = value.ToPBVertex(); break; default: throw new NotImplementedException(); } return(f); }