public static Overlaps CalculateOverlaps( RemoveOverlapsGrpc.RemoveOverlapsGrpcClient rpcClient, [NotNull] IList <Feature> selectedFeatures, [NotNull] IList <Feature> overlappingFeatures, CancellationToken cancellationToken) { CalculateOverlapsResponse response = CalculateOverlapsRpc(rpcClient, selectedFeatures, overlappingFeatures, cancellationToken); if (response == null || cancellationToken.IsCancellationRequested) { return(null); } var result = new Overlaps(); foreach (OverlapMsg overlapMsg in response.Overlaps) { GdbObjectReference gdbObjRef = new GdbObjectReference( overlapMsg.OriginalFeatureRef.ClassHandle, overlapMsg.OriginalFeatureRef.ObjectId); List <Geometry> overlapGeometries = ProtobufConversionUtils.FromShapeMsgList(overlapMsg.Overlaps); result.AddGeometries(gdbObjRef, overlapGeometries); } result.Notifications.AddRange( response.Notifications.Select(n => new Notification(n))); return(result); }
private static CalculateOverlapsResponse CalculateOverlapsRpc( RemoveOverlapsGrpc.RemoveOverlapsGrpcClient rpcClient, IList <Feature> selectedFeatures, IList <Feature> overlappingFeatures, CancellationToken cancellationToken) { CalculateOverlapsRequest request = CreateCalculateOverlapsRequest(selectedFeatures, overlappingFeatures); CalculateOverlapsResponse response; try { response = rpcClient.CalculateOverlaps(request, null, null, cancellationToken); } catch (Exception e) { _msg.Debug($"Error calling remote procedure: {e.Message} ", e); throw; } return(response); }
public static RemoveOverlapsResult RemoveOverlaps( RemoveOverlapsGrpc.RemoveOverlapsGrpcClient rpcClient, IEnumerable <Feature> selectedFeatures, Overlaps overlapsToRemove, IList <Feature> overlappingFeatures, CancellationToken cancellationToken) { List <Feature> updateFeatures; RemoveOverlapsRequest request = CreateRemoveOverlapsRequest( selectedFeatures, overlapsToRemove, overlappingFeatures, out updateFeatures); RemoveOverlapsResponse response = rpcClient.RemoveOverlaps(request, null, null, cancellationToken); return(GetRemoveOverlapsResult(response, updateFeatures)); }
private static CalculateOverlapsResponse CalculateOverlapsRpc( RemoveOverlapsGrpc.RemoveOverlapsGrpcClient rpcClient, IList <Feature> selectedFeatures, IList <Feature> overlappingFeatures, CancellationToken cancellationToken) { CalculateOverlapsRequest request = CreateCalculateOverlapsRequest(selectedFeatures, overlappingFeatures); int maxTimePerFeature = 4000; CalculateOverlapsResponse response = RpcCallUtils.Try( o => rpcClient.CalculateOverlaps(request, o), cancellationToken, maxTimePerFeature * selectedFeatures.Count); return(response); }
protected override void ChannelOpenedCore(Channel channel) { RemoveOverlapsClient = new RemoveOverlapsGrpc.RemoveOverlapsGrpcClient(channel); ChangeAlongClient = new ChangeAlongGrpc.ChangeAlongGrpcClient(channel); ReshapeClient = new ReshapeGrpc.ReshapeGrpcClient(channel); }
protected override void ChannelOpenedCore(Channel channel) { RemoveOverlapsClient = new RemoveOverlapsGrpc.RemoveOverlapsGrpcClient(channel); }