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]); }
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); }
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); }
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>()); }); }
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)); }
//获取每个类型的值 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); }
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))); }
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))); }
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]); }
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); }
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 })); }
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]); }
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]); }