/// <summary> /// Creates a new instance of <typeparamref name="TService"/> using the factory method. /// Registers all subscriptions. /// </summary> /// <returns></returns> public TService Build() { _service = _serviceFactory(_context); Task.Run(async() => { _loggingCallback?.Invoke($"Registering for notifications about service '{_context.ServiceName}'."); try { var filter = new ServiceNotificationFilterDescription { Name = _context.ServiceName, MatchPrimaryChangeOnly = true }; _filterId = await _fabricClient.ServiceManager.RegisterServiceNotificationFilterAsync(filter); _loggingCallback?.Invoke( $"Succesfully registered for notifications about service '{_context.ServiceName}'."); } catch (Exception ex) { _loggingCallback?.Invoke( $"Failed to register for notifications about service '{_context.ServiceName}'. Error: {ex}"); } }); return(_service); }
public RegisterServiceNotificationFilterRequest(IFabricClient fabricClient, ServiceNotificationFilterDescription filterDescription, TimeSpan timeout) : base(fabricClient, timeout) { ThrowIf.Null(filterDescription, "filterDescription"); this.FilterDescription = filterDescription; }