public void Shutdown(IServiceProvider serviceProvider)
        {
            var context = new ShutdownApplicationContext(serviceProvider);
            var modules = Modules.Reverse().ToList();

            foreach (var moduleDescriptor in modules)
            {
                try
                {
                    moduleDescriptor.Instance.Shutdown(context);
                }
                catch (Exception ex)
                {
                    throw new Exception("An error occurred during Shutdown phase of the module  " + moduleDescriptor.ModuleType.AssemblyQualifiedName + ". See the inner exception for details.", ex);
                }
            }
        }
 public virtual void Shutdown(ShutdownApplicationContext context)
 {
 }