public virtual async Task Run()
 {
     ServiceName.SetCurrent(ServiceName);
     if (Host == null)
     {
         throw new InvalidOperationException(Strings.NuGetService_HostNotSet);
     }
     await OnRun();
 }
        public virtual async Task <bool> Start(ILifetimeScope scope)
        {
            ServiceName.SetCurrent(ServiceName);
            Container = scope;

            Configuration = scope.Resolve <ConfigurationHub>();

            if (Host == null)
            {
                throw new InvalidOperationException(Strings.NuGetService_HostNotSet);
            }
            Host.ShutdownToken.Register(OnShutdown);

            var ret = await OnStart();

            return(ret);
        }