Example #1
0
 public void AddRange_SlowPath()
 {
     var list = new RepeatedField<string>();
     list.AddRange(new[] { "foo", "bar" }.Select(x => x));
     Assert.AreEqual(2, list.Count);
     Assert.AreEqual("foo", list[0]);
     Assert.AreEqual("bar", list[1]);
 }
Example #2
0
        public override async Task <GetRoomReply> GetRoom(GetRoomRequest request, ServerCallContext context)
        {
            var room = await _queryRepository.GetById(request.Id);

            var reservation = new RepeatedField <RoomReservation>();

            reservation.AddRange(room.RoomReservations.Select(x => new RoomReservation()
            {
                Id        = x.Id.ToString(),
                StartDate = x.StartDate.ToTimestamp(),
                EndDate   = x.EndDate.ToTimestamp()
            }));
            var result = new GetRoomReply()
            {
                Id          = room.Id.ToString(),
                RoomType    = room.RoomType.ToString(),
                Name        = room.Name,
                Price       = room.Price,
                Reservation = { reservation }
            };

            return(result);
        }
Example #3
0
        public override async Task <GetCarReply> GetCar(GetCarRequest request, ServerCallContext context)
        {
            var car = await _queryRepository.GetById(request.Id);

            var reservation = new RepeatedField <CarReservation>();

            reservation.AddRange(car.CarReservations.Select(x => new CarReservation()
            {
                StartDate = x.StartDate.ToTimestamp(),
                EndDate   = x.EndDate.ToTimestamp(),
                Id        = x.Id.ToString()
            }));
            var result = new GetCarReply()
            {
                Id              = car.Id.ToString(),
                CarType         = car.CarType.ToString(),
                Name            = car.Name,
                Price           = car.Price,
                CarReservations = { reservation }
            };

            return(result);
        }
Example #4
0
        public ToDoItemProfile()
        {
            var map = CreateMap <Item, ToDoItemModel>();

            map.ForMember(o => o.DueDate, o => o.MapFrom(p => p.DueDate.ToDateTimeOffset()));

            map.ForMember(o => o.InsertedOn, o => o.MapFrom(p => p.InsertedOn.ToDateTimeOffset()));

            map.ForMember(o => o.Tags, o => o.MapFrom(p => p.Tags.ToArray()));

            map.ForMember(o => o.Id, o => o.MapFrom(p => Guid.Parse(p.Id)));

            var reverseMap = map.ReverseMap();

            reverseMap.ForMember(o => o.DueDate, o => o.MapFrom(p => Timestamp.FromDateTimeOffset(p.DueDate)));

            reverseMap.ForMember(o => o.InsertedOn, o => o.MapFrom(p => Timestamp.FromDateTimeOffset(p.InsertedOn)));

            reverseMap.ForMember(o => o.Id, o => o.MapFrom(p => p.Id.ToString()));

            reverseMap.ForMember(o => o.Tags, o =>
            {
                o.MapFrom((source, _) =>
                {
                    var field = new RepeatedField <string>();

                    if (source.Tags != null)
                    {
                        field.AddRange(source.Tags);
                    }

                    return(field);
                });

                o.NullSubstitute(new RepeatedField <string>());
            });
        }
Example #5
0
        bool IEquatable <SerializedCallGraph> .Equals(SerializedCallGraph other)
        {
            if (other == null)
            {
                return(false);
            }

            var edges = new RepeatedField <GraphEdge>();

            edges.AddRange(Edges.OrderBy(e => e.Source).ThenBy(e => e.Target));
            var otherEdges = new RepeatedField <GraphEdge>();

            otherEdges.AddRange(other.Edges.OrderBy(e => e.Source).ThenBy(e => e.Target));

            var vertices = new RepeatedField <string>();

            vertices.AddRange(Vertices.OrderBy(v => v));
            var otherVertices = new RepeatedField <string>();

            otherVertices.AddRange(other.Vertices.OrderBy(v => v));


            return(edges.Equals(otherEdges) && vertices.Equals(otherVertices));
        }
Example #6
0
    //获取每个类型的值
    private object GetFieldData(FieldData data, Assembly assembly, string namespaceName)
    {
        try
        {
            switch (data.type)
            {
            case SupportType.INT: return(int.Parse(data.data));

            case SupportType.FLOAT: return(float.Parse(data.data));

            case SupportType.STRING: return(string.IsNullOrEmpty(data.data) ?  string.Empty : data.data);

            case SupportType.BOOLEAN: return(bool.Parse(data.data));

            case SupportType.LIST_INT:
                RepeatedField <int> repeatedInt = new RepeatedField <int>();
                if (string.IsNullOrEmpty(data.data))
                {
                    return(repeatedInt);
                }
                string[] intStr = data.data.Split(';');
                for (int i = 0; i < intStr.Length; ++i)
                {
                    repeatedInt.Add(int.Parse(intStr[i]));
                }
                return(repeatedInt);

            case SupportType.LIST_FLOAT:
                RepeatedField <float> repeatedFloat = new RepeatedField <float>();
                if (string.IsNullOrEmpty(data.data))
                {
                    return(repeatedFloat);
                }
                string[] floatStr = data.data.Split(';');
                for (int i = 0; i < floatStr.Length; ++i)
                {
                    repeatedFloat.Add(float.Parse(floatStr[i]));
                }
                return(repeatedFloat);

            case SupportType.LIST_STRING:
                RepeatedField <string> repeatedString = new RepeatedField <string>();
                if (string.IsNullOrEmpty(data.data))
                {
                    return(repeatedString);
                }
                repeatedString.AddRange(data.data.Split(';'));
                return(repeatedString);

            default:
                string typeName = namespaceName + data.type;
                Type   enumType = assembly.GetType(typeName);
                if (enumType != null)
                {
                    return(Enum.Parse(enumType, data.data));
                }
                throw new Exception("不匹配的类型 : " + typeName);
            }
        }
        catch (Exception e)
        {
            Console.WriteLine(e.Message);
        }

        return(null);
    }
Example #7
0
 public void AddRange_SlowPath_NullsProhibited_NullableValueType()
 {
     var list = new RepeatedField<int?>();
     // It's okay for this to throw ArgumentNullException if necessary.
     // It's not ideal, but not awful.
     Assert.Catch<ArgumentException>(() => list.AddRange(new[] { 20, (int?)null }.Select(x => x)));
 }
Example #8
0
 public void AddRange_SlowPath_NullsProhibited_ReferenceType()
 {
     var list = new RepeatedField<string>();
     // It's okay for this to throw ArgumentNullException if necessary.
     // It's not ideal, but not awful.
     Assert.Catch<ArgumentException>(() => list.AddRange(new[] { "foo", null }.Select(x => x)));
 }
Example #9
0
 public void AddRange_RepeatedField()
 {
     var list = new RepeatedField<string> { "original" };
     list.AddRange(new RepeatedField<string> { "foo", "bar" });
     Assert.AreEqual(3, list.Count);
     Assert.AreEqual("original", list[0]);
     Assert.AreEqual("foo", list[1]);
     Assert.AreEqual("bar", list[2]);
 }
Example #10
0
 public void AddRange_AlreadyNotEmpty()
 {
     var list = new RepeatedField<int> { 1, 2, 3 };
     list.AddRange(new List<int> { 4, 5, 6 });
     CollectionAssert.AreEqual(new[] { 1, 2, 3, 4, 5, 6 }, list);
 }
Example #11
0
 public void AddRange_Optimized_NullsProhibited_NullableValueType()
 {
     // We don't just trust that a collection with a nullable element type doesn't contain nulls
     var list = new RepeatedField<int?>();
     // It's okay for this to throw ArgumentNullException if necessary.
     // It's not ideal, but not awful.
     Assert.Catch<ArgumentException>(() => list.AddRange(new List<int?> { 20, null }));
 }
Example #12
0
 public void AddRange_Optimized_NullableValueType()
 {
     var list = new RepeatedField<int?>();
     list.AddRange(new List<int?> { 20, 30 });
     Assert.AreEqual(2, list.Count);
     Assert.AreEqual((int?) 20, list[0]);
     Assert.AreEqual((int?) 30, list[1]);
 }
Example #13
0
 public void AddRange_Optimized_ReferenceType()
 {
     var list = new RepeatedField<string>();
     list.AddRange(new List<string> { "foo", "bar" });
     Assert.AreEqual(2, list.Count);
     Assert.AreEqual("foo", list[0]);
     Assert.AreEqual("bar", list[1]);
 }