public IProvidedMethodReference CreateProvidedMethodReference(IProvidedServiceReference providedService, string methodId)
        {
            var obj = ProvidedMethodReference.Rent();

            obj.ProvidedService = providedService;
            obj.MethodId        = methodId;
            return(obj);
        }
 private ProvidedServiceReference Convert(IProvidedServiceReference providedService)
 {
     return(new ProvidedServiceReference(
                providedService.ServiceId,
                providedService.ServiceAlias,
                providedService.ApplicationId,
                providedService.ConnectionId));
 }
        private static ProvidedServiceReference ConvertToProtoStrict(IProvidedServiceReference obj)
        {
            var proto = ProvidedServiceReference.Rent();

            proto.ServiceId     = obj.ServiceId.ConvertToProtoStrict();
            proto.ApplicationId = obj.ApplicationId.ConvertToProtoStrict();
            proto.ConnectionId  = proto.ConnectionId.MergeFrom(obj.ConnectionId);
            proto.ServiceAlias  = obj.ServiceAlias.ConvertToProto();
            return(proto);
        }
        public IDiscoveredService CreateDiscoveredService(
            IConsumedServiceReference consumedService,
            IProvidedServiceReference providedService,
            Maybe <string> serviceTitle,
            IReadOnlyCollection <IDiscoveredServiceMethod> methods)
        {
            var obj = DiscoveredService.Rent();

            obj.ConsumedService = consumedService;
            obj.ProvidedService = providedService;
            obj.ServiceTitle    = serviceTitle;
            obj.Methods         = methods;
            return(obj);
        }
 public IProvidedService GetProvidedService(IProvidedServiceReference reference)
 {
     _registryLock.EnterReadLock();
     try
     {
         return(_registry.Applications[reference.ApplicationId].ProvidedServices
                .FirstOrDefault(x =>
                                Equals(x.Alias, reference.ServiceAlias) && Equals(x.Service.Id, reference.ServiceId)));
     }
     finally
     {
         _registryLock.ExitReadLock();
     }
 }
 public IProvidedService GetProvidedService(IProvidedServiceReference reference)
 {
     _registryLock.EnterReadLock();
     if (!reference.ApplicationId.HasValue)
     {
         throw new InvalidOperationException($"Can't find provided services of unspecified application id ({reference})");
     }
     try
     {
         return(_registry.Applications[reference.ApplicationId.Value].ProvidedServices
                .FirstOrDefault(x =>
                                Equals(x.Alias, reference.ServiceAlias) && Equals(x.Service.Id, reference.ServiceId)));
     }
     finally
     {
         _registryLock.ExitReadLock();
     }
 }