public async Task HandleAsync(HubRegister message, CancellationToken cancellationToken)
        {
            if (message == null)
            {
                throw new NullReferenceException(nameof(message));
            }

            PrimeNumbersPersist.Get(out var end, out var count, out var primeNo);
            var primeParam = new PrimeParam();

            {
                primeParam.BeginNumber = end;
                primeParam.Count       = count;
                primeParam.Primes      = primeNo;
            }
            try
            {
                var result = await _rpcCaller.MethodCall(message.UserId, primeParam).ConfigureAwait(false);

                if (result?.Primes?.Length > 0 && (primeNo.LastOrDefault() < result.Primes.First()))
                {
                    PrimeNumbersPersist.Increase(primeParam.Count, primeNo: result.Primes);
                }
            }
            catch (Exception e)
            {
                _logger.LogCritical(e, e.Message);
            }
        }
예제 #2
0
        protected override async Task ExecuteAsync(CancellationToken stoppingToken)
        {
            while (!stoppingToken.IsCancellationRequested)
            {
                await Task.Delay(1000, stoppingToken);

                // This demo doesn't contain connected users management.
                // Please change null below to correct user identifier and make sure that user is connected before this line is called, otherwise it will hang.
                MethodResponse response = await _rpcCaller.MethodCall(null, new MethodParams
                {
                });
            }
        }