Example #1
0
        public async Task Start()
        {
            try
            {
                await Stop();

                if (_service != null)
                {
                    var result = await _service.Start(_serviceConfigString, this);

                    if (result.IsOK)
                    {
                        Service     = _service;
                        ServiceInfo = new ServiceInfo(result.Message, result.UserCode);

                        UriHandler            = Service as IServiceUriDataHandler;
                        BlockReceiver         = Service as IServiceBlockHandler;
                        ErrorReportReceiver   = Service as IServiceErrorReportsHandler;
                        ClientMessageReceiver = Service as IServiceRemoteMessageHandler;
                        PushReceiver          = Service as IServicePushHandler;

                        Log.Info($"Starting service {_service.GetType().Name} for chainid {ChainId}: {result.Message} (v {result.UserCode}).");
                    }
                    else
                    {
                        Log.Warn($"Starting service {_service.GetType().Name} failed, {result.Result}: {result.Message} (v {result.UserCode}).");
                    }
                }
            }
            catch (Exception ex)
            {
                Log.Warn($"Starting service {_service.GetType().Name} failed.", this);
                Log.HandleException(ex, this);
            }
        }
Example #2
0
        public async Task Stop()
        {
            ServiceInfo = null;

            if (_service != null)
            {
                Service               = null;
                UriHandler            = null;
                BlockReceiver         = null;
                ErrorReportReceiver   = null;
                ClientMessageReceiver = null;
                PushReceiver          = null;

                try
                {
                    await _service.Stop();
                }
                catch (Exception ex)
                {
                    Log.HandleException(ex, Service as ILogger);
                }
            }
        }