예제 #1
0
        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();
            }
        }
예제 #2
0
        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);
        }