public MainForm(IFormOpener formManager, IMainFormPresenter presenter, MainFormStyler mainFormStyler, IPubSub pubsub, IPropertiesRepository propertiesRepository)
        {
            InitializeComponent();

            _mainFormStyler = mainFormStyler;
            _pubsub         = pubsub;
            RenderTheme();
            if (propertiesRepository.GetValue <bool>(Constants.AppProperties.UpdateSettings))
            {
                propertiesRepository.Upgrade();
                propertiesRepository.SetValue(Constants.AppProperties.UpdateSettings, false);
                propertiesRepository.Save();
            }

            _formManager = formManager;
            presenter.InitializePresenter(new
            {
                MainForm = this,
                PubSub   = _pubsub
            });

            var selectedPath = propertiesRepository.GetValue <string>(Constants.AppProperties.SelectedPath);

            if (!string.IsNullOrEmpty(selectedPath))
            {
                Presenter.PopulateTreeView(selectedPath);
            }

            _propertiesRepository = propertiesRepository;
        }
Exemple #2
0
        /// <summary>
        /// Publishes a message with a topic.
        /// When used with publisher confirms the task completes when the publish is confirmed.
        /// Task will throw an exception if the confirm is NACK'd or times out.
        /// </summary>
        /// <typeparam name="T">The message type</typeparam>
        /// <param name="pubSub">The pubSub instance</param>
        /// /// <param name="message">The message to publish</param>
        /// <param name="topic">The topic string</param>
        /// <param name="cancellationToken">The cancellation token</param>
        /// <returns></returns>
        public static Task PublishAsync <T>(this IPubSub pubSub, T message, string topic, CancellationToken cancellationToken = default)
        {
            Preconditions.CheckNotNull(pubSub, "pubSub");
            Preconditions.CheckNotNull(topic, "topic");

            return(pubSub.PublishAsync(message, c => c.WithTopic(topic), cancellationToken));
        }
Exemple #3
0
        public static async Task <TResponse> RequestAsync <TRequest, TResponse>(this IPubSub pubsub, TRequest message, TimeSpan timeout, bool self = true)
        {
            var request = new Request <TRequest> {
                Body = message, CorrelationId = Guid.NewGuid()
            };

            IDisposable subscription = null;

            try
            {
                var receiveTask = new TaskCompletionSource <TResponse>(TaskCreationOptions.RunContinuationsAsynchronously);

                subscription = pubsub.Subscribe <Response <TResponse> >(response =>
                {
                    if (response.CorrelationId == request.CorrelationId)
                    {
                        receiveTask.SetResult(response.Body);
                    }
                });

                Task.Run(() => pubsub.Publish(request, self));

                using (var cts = new CancellationTokenSource(timeout))
                {
                    return(await receiveTask.Task.WithCancellation(cts.Token));
                }
            }
            finally
            {
                subscription?.Dispose();
            }
        }
Exemple #4
0
        public GamblingConfigService(IConfigSeria serializer, IPubSub pubSub)
            : base(FilePath, serializer, pubSub, changeKey)
        {
            AddParsedProp("currency.name", gs => gs.Currency.Name, ConfigParsers.String, ConfigPrinters.ToString);
            AddParsedProp("currency.sign", gs => gs.Currency.Sign, ConfigParsers.String, ConfigPrinters.ToString);

            AddParsedProp("minbet", gs => gs.MinBet, int.TryParse, ConfigPrinters.ToString, val => val >= 0);
            AddParsedProp("maxbet", gs => gs.MaxBet, int.TryParse, ConfigPrinters.ToString, val => val >= 0);

            AddParsedProp("gen.min", gs => gs.Generation.MinAmount, int.TryParse, ConfigPrinters.ToString, val => val >= 1);
            AddParsedProp("gen.max", gs => gs.Generation.MaxAmount, int.TryParse, ConfigPrinters.ToString, val => val >= 1);
            AddParsedProp("gen.cd", gs => gs.Generation.GenCooldown, int.TryParse, ConfigPrinters.ToString, val => val > 0);
            AddParsedProp("gen.chance", gs => gs.Generation.Chance, decimal.TryParse, ConfigPrinters.ToString, val => val >= 0 && val <= 1);
            AddParsedProp("gen.has_pw", gs => gs.Generation.HasPassword, bool.TryParse, ConfigPrinters.ToString);
            AddParsedProp("bf.multi", gs => gs.BetFlip.Multiplier, decimal.TryParse, ConfigPrinters.ToString, val => val >= 1);
            AddParsedProp("waifu.min_price", gs => gs.Waifu.MinPrice, int.TryParse, ConfigPrinters.ToString, val => val >= 0);
            AddParsedProp("waifu.multi.reset", gs => gs.Waifu.Multipliers.WaifuReset, int.TryParse, ConfigPrinters.ToString, val => val >= 0);
            AddParsedProp("waifu.multi.crush_claim", gs => gs.Waifu.Multipliers.CrushClaim, decimal.TryParse, ConfigPrinters.ToString, val => val >= 0);
            AddParsedProp("waifu.multi.normal_claim", gs => gs.Waifu.Multipliers.NormalClaim, decimal.TryParse, ConfigPrinters.ToString, val => val > 0);
            AddParsedProp("waifu.multi.divorce_value", gs => gs.Waifu.Multipliers.DivorceNewValue, decimal.TryParse, ConfigPrinters.ToString, val => val > 0);
            AddParsedProp("waifu.multi.all_gifts", gs => gs.Waifu.Multipliers.AllGiftPrices, decimal.TryParse, ConfigPrinters.ToString, val => val > 0);
            AddParsedProp("waifu.multi.gift_effect", gs => gs.Waifu.Multipliers.GiftEffect, decimal.TryParse, ConfigPrinters.ToString, val => val >= 0);
            AddParsedProp("decay.percent", gs => gs.Decay.Percent, decimal.TryParse, ConfigPrinters.ToString, val => val >= 0 && val <= 1);
            AddParsedProp("decay.maxdecay", gs => gs.Decay.MaxDecay, int.TryParse, ConfigPrinters.ToString, val => val >= 0);
            AddParsedProp("decay.threshold", gs => gs.Decay.MinThreshold, int.TryParse, ConfigPrinters.ToString, val => val >= 0);
        }
        public When_autosubscribing_with_subscription_configuration_action()
        {
            pubSub = Substitute.For <IPubSub>();
            bus    = Substitute.For <IBus>();
            bus.PubSub.Returns(pubSub);

            var autoSubscriber = new AutoSubscriber(bus, "my_app")
            {
                ConfigureSubscriptionConfiguration =
                    c => c.WithAutoDelete()
                    .WithExpires(10)
                    .WithPrefetchCount(10)
                    .WithPriority(10)
            };

            pubSub.SubscribeAsync(
                Arg.Is("MyActionTest"),
                Arg.Any <Func <MessageA, CancellationToken, Task> >(),
                Arg.Any <Action <ISubscriptionConfiguration> >()
                )
            .Returns(Task.FromResult(Substitute.For <ISubscriptionResult>()).ToAwaitableDisposable())
            .AndDoes(a => capturedAction = (Action <ISubscriptionConfiguration>)a.Args()[2]);

            autoSubscriber.Subscribe(new[] { typeof(MyConsumerWithAction) });
        }
Exemple #6
0
        /// <summary>
        /// Publishes a message.
        /// </summary>
        /// <typeparam name="T">The message type</typeparam>
        /// <param name="pubSub">The pubSub instance</param>
        /// <param name="message">The message to publish</param>
        /// <param name="configure">
        /// Fluent configuration e.g. x => x.WithTopic("*.brighton").WithPriority(2)
        /// </param>
        /// <param name="cancellationToken">The cancellation token</param>
        public static void Publish <T>(this IPubSub pubSub, T message, Action <IPublishConfiguration> configure, CancellationToken cancellationToken = default)
        {
            Preconditions.CheckNotNull(pubSub, "pubSub");

            pubSub.PublishAsync(message, configure, cancellationToken)
            .GetAwaiter()
            .GetResult();
        }
 public void InitializePresenter(dynamic context)
 {
     _context           = context;
     _view              = (IPreferencesForm)context.PreferencesForm;
     _view.Presenter    = this;
     _mainFormPresenter = (IMainFormPresenter)context.MainFormPresenter;
     _pubsub            = context.PubSub;
 }
Exemple #8
0
 public PubSubCache(IPubSub pubSubProvider, string cacheInstanceKey = null)
 {
     this.pubSub = pubSubProvider;
     this.memoryCacheInstance = new MemoryCache(this.pubSub.GetType().Name + (cacheInstanceKey ?? ""));
     this.subscription        = pubSub.CreateEmptySubscription();
     this.filter = new InvalidationFilter();
     this.subscription.OnMessage += filter.OnMessageReceived;
 }
 public override void InitializePresenter(dynamic context)
 {
     _view           = (IQueryWindowControl)context.QueryWindowControl;
     _view.Presenter = this;
     _pubsub         = context.PubSub;
     _pubsub.Subscribe(this, Constants.SubscriptionTypes.THEME_CHANGE);
     TabIndexReference = (int)context.TabIndexReference;
 }
 public GamesConfigService(IConfigSeria serializer, IPubSub pubSub)
     : base(FilePath, serializer, pubSub, changeKey)
 {
     AddParsedProp("trivia.min_win_req", gs => gs.Trivia.MinimumWinReq, int.TryParse,
                   ConfigPrinters.ToString, val => val > 0);
     AddParsedProp("trivia.currency_reward", gs => gs.Trivia.CurrencyReward, long.TryParse,
                   ConfigPrinters.ToString, val => val >= 0);
 }
Exemple #11
0
 public ChatHub(IMessageService messageService, IClaimsService claimsService, ICacheService cacheService, IPubSub pubSub, INotificationService notificationService)
 {
     _messageService      = messageService;
     _claimsService       = claimsService;
     _cacheService        = cacheService;
     _pubSub              = pubSub;
     _notificationService = notificationService;
 }
 public StreamReaderAdapter(string source, IPubSub pubSub, IPrecentageCalculator precentageCalculator)
 {
     _reader = new StreamReader(source);
     _source = source;
     _pubSub = pubSub;
     _precentageCalculator = precentageCalculator;
     _prevProgress         = -1;
 }
Exemple #13
0
 public Socket(ISocketTransport transport, IPubSub pubSub, Channel channel, string topic, string id = null)
 {
     Transport = transport;
     PubSub = pubSub;
     Channel = channel;
     Topic = topic;
     Id = id;
     _assigns = new ConcurrentDictionary<string, string>();
 }
Exemple #14
0
        public void InitializePresenter(dynamic context)
        {
            _context        = context;
            _view           = (IActionLogForm)context.ActionLogForm;
            _view.Presenter = this;

            _pubsub = context.PubSub;
            _pubsub.Subscribe(this, Constants.SubscriptionTypes.THEME_CHANGE);
        }
Exemple #15
0
        public BlacklistService(DbService db, IPubSub pubSub, IBotCredentials creds)
        {
            _db     = db;
            _pubSub = pubSub;
            _creds  = creds;

            Reload(false);
            _pubSub.Sub(blPubKey, OnReload);
        }
Exemple #16
0
        public ReplicatedCache(IMemoryCache memoryCache, IPubSub pubSub)
        {
            Guard.NotNull(memoryCache, nameof(memoryCache));
            Guard.NotNull(pubSub, nameof(pubSub));

            this.memoryCache = memoryCache;

            this.pubSub = pubSub;
            this.pubSub.Subscribe(OnMessage);
        }
 public MessageHandler(Func <PunchyMessage, Task> onMessageAsync, IPubSub pubSub, ILogger logger,
                       SubscriberConfiguration configuration, string groupId)
 {
     this.onMessageAsync = onMessageAsync ?? throw new ArgumentNullException(nameof(onMessageAsync));
     this.pubSub         = pubSub ?? throw new ArgumentNullException(nameof(pubSub));
     this.logger         = logger ?? throw new ArgumentNullException(nameof(logger));
     this.configuration  = configuration ?? throw new ArgumentNullException(nameof(configuration));
     this.groupId        = groupId ?? throw new ArgumentNullException(nameof(groupId));
     badMessageMaxLevels = configuration.LevelDelaysInSeconds.Length;
 }
Exemple #18
0
        public StateFactory(IPubSub pubSub, IMemoryCache statesCache, IServiceProvider services)
        {
            Guard.NotNull(pubSub, nameof(pubSub));
            Guard.NotNull(services, nameof(services));
            Guard.NotNull(statesCache, nameof(statesCache));

            this.pubSub      = pubSub;
            this.services    = services;
            this.statesCache = statesCache;
        }
Exemple #19
0
        public void InitializePresenter(dynamic context)
        {
            _context        = context;
            _view           = (IMainForm)context.MainForm;
            _view.Presenter = this;
            _pubsub         = context.PubSub;
            _pubsub.Subscribe(this, Constants.SubscriptionTypes.THEME_CHANGE);

            InitializeTransactionCache();
        }
Exemple #20
0
        public InvalidatingMemoryCache(IMemoryCache inner, IPubSub invalidator)
        {
            Guard.NotNull(inner, nameof(inner));
            Guard.NotNull(invalidator, nameof(invalidator));

            this.inner       = inner;
            this.invalidator = invalidator;

            invalidator.Subscribe(ChannelName, inner.Remove);
        }
Exemple #21
0
        public EventConsumerGrainManager(IEnumerable <IEventConsumer> consumers, IPubSub pubSub, IStateFactory factory)
        {
            Guard.NotNull(pubSub, nameof(pubSub));
            Guard.NotNull(factory, nameof(factory));
            Guard.NotNull(consumers, nameof(consumers));

            this.pubSub    = pubSub;
            this.factory   = factory;
            this.consumers = consumers.ToList();
        }
 public UsersController(
     IUserService userService,
     IMapper mapper,
     IOptions <AppSettings> appSettings,
     IPubSub pubSub)
 {
     this.userService = userService;
     this.mapper      = mapper;
     this.appSettings = appSettings.Value;
     this.pubSub      = pubSub;
 }
Exemple #23
0
        public static IDisposable ReceiveAsync <TRequest, TResponse>(this IPubSub pubsub, Func <TRequest, Task <TResponse> > callback, bool self = true)
        {
            return(pubsub.Subscribe <Request <TRequest> >(async x =>
            {
                var response = await callback(x.Body);

                pubsub.Publish(new Response <TResponse> {
                    CorrelationId = x.CorrelationId, Body = response
                }, true);
            }));
        }
        public DefaultRemoteActorChannel(IPubSub pubSub, TypeNameRegistry typeNameRegistry, JsonSerializerSettings serializerSettings = null)
        {
            Guard.NotNull(pubSub, nameof(pubSub));
            Guard.NotNull(typeNameRegistry, nameof(typeNameRegistry));

            this.pubSub = pubSub;

            this.typeNameRegistry = typeNameRegistry;

            serializer = JsonSerializer.Create(serializerSettings ?? new JsonSerializerSettings());
        }
Exemple #25
0
        /// <summary>
        /// Initialized an instance of <see cref="ConfigServiceBase{TSettings}"/>
        /// </summary>
        /// <param name="filePath">Path to the file where the settings are serialized/deserialized to and from</param>
        /// <param name="serializer">Serializer which will be used</param>
        /// <param name="pubSub">Pubsub implementation for signaling when settings are updated</param>
        /// <param name="changeKey">Key used to signal changed event</param>
        protected ConfigServiceBase(string filePath, IConfigSeria serializer, IPubSub pubSub,
                                    TypedKey <TSettings> changeKey)
        {
            _filePath   = filePath;
            _serializer = serializer;
            _pubSub     = pubSub;
            _changeKey  = changeKey;

            Load();
            _pubSub.Sub(_changeKey, OnChangePublished);
        }
Exemple #26
0
            public static DomainObject Create(IPubSub pubSub)
            {
                var domainObject = new DomainObject(
                    new ReplicatedCache(
                        new MemoryCache(Options.Create(new MemoryCacheOptions())),
                        pubSub,
                        Options.Create(new ReplicatedCacheOptions {
                    Enable = true
                })));

                return(domainObject);
            }
Exemple #27
0
 public void Connect(IPEndPoint ipEndPoint, DelegateConnected connected_callback)
 {
     if (connected)
         throw new ArgumentException("Connect already called");
     else
     {
         connected = true;
         client = new TcpTopicClientIAR(
             ipEndPoint, connected_callback, completion_queue);
         ThreadPool.QueueUserWorkItem(FlushProc);
     }
 }
        /// <summary>
        /// Publishes a message with a topic
        /// </summary>
        /// <param name="pubSub">The pubSub instance</param>
        /// <param name="message">The message to publish</param>
        /// <param name="messageType">The message type</param>
        /// <param name="topic">The topic string</param>
        /// <param name="cancellationToken">The cancellation token</param>
        public static void Publish(
            this IPubSub pubSub,
            object message,
            Type messageType,
            string topic,
            CancellationToken cancellationToken = default
            )
        {
            Preconditions.CheckNotNull(pubSub, "pubSub");

            pubSub.Publish(message, messageType, c => c.WithTopic(topic), cancellationToken);
        }
Exemple #29
0
 public static async Task PublishBatchAsync <T>(
     this IPubSub pubSub,
     IEnumerable <T> messages,
     Action <IPublishConfiguration> configuration,
     CancellationToken cancellationToken = default
     )
 {
     foreach (var message in messages)
     {
         await pubSub.PublishAsync(message, configuration, cancellationToken).ConfigureAwait(false);
     }
 }
Exemple #30
0
        public static async Task PublishBatchInParallelAsync <T>(
            this IPubSub pubSub, IEnumerable <T> messages, CancellationToken cancellationToken = default
            )
        {
            var publishTasks = new List <Task>();

            foreach (var message in messages)
            {
                publishTasks.Add(pubSub.PublishAsync(message, cancellationToken));
            }

            await Task.WhenAll(publishTasks).ConfigureAwait(false);
        }
        public InvalidatingMemoryCache(IMemoryCache inner, IPubSub invalidator)
        {
            Guard.NotNull(inner, nameof(inner));
            Guard.NotNull(invalidator, nameof(invalidator));

            this.inner       = inner;
            this.invalidator = invalidator;

            subscription = invalidator.Subscribe <InvalidateMessage>(m =>
            {
                inner.Remove(m.CacheKey);
            });
        }
Exemple #32
0
 public WeatherForecastController(
     ILogger <WeatherForecastController> logger,
     IHttpContextAccessor httpContextAccessor,
     ICacheService cacheService,
     IHubContext <NotificationHub> notificationHub,
     IPubSub pubSub)
 {
     _logger = logger;
     _httpContextAccessor = httpContextAccessor;
     _cacheService        = cacheService;
     _notificationHub     = notificationHub;
     _pubSub = pubSub;
 }
 public BaseSocketTransport(IPubSub pubSub, ISocketSerializer socketSerializer)
 {
     _pubSub = pubSub;
     _socketSerializer = socketSerializer;
 }
 public TestTcpTopicClientIAR(IPEndPoint ipEndPoint, CompletionQueue completion_queue)
 {
     this.client = new TcpTopicClientIAR(ipEndPoint, Connected,
         completion_queue);
 }
 public HomeController(IPubSub pubSub)
 {
     _pubSub = pubSub;
 }