Ejemplo n.º 1
0
        protected override void OnStartup(StartupEventArgs e)
        {
            base.OnStartup(e);

            IDependencyContainer dependencyContainer = new UnityDependencyContainer();

            MainViewModel viewModel = new MainViewModel();

            viewModel.Settings.MainBorder.Size    = 60;
            viewModel.Settings.CommandBorder.Size = 40;

            DefaultLogFactory logFactory = new DefaultLogFactory("root");

            logFactory.AddSerializer(viewModel.Message);

            dependencyContainer.Definitions
            .AddScoped <ICommandCollection>(dependencyContainer.ScopeName, viewModel.Commands)
            .AddScoped <ILogFactory>(dependencyContainer.ScopeName, logFactory);

            RegisterCommands(dependencyContainer, viewModel.Commands);

            MainWindow view = new MainWindow();

            view.ViewModel = viewModel;
            view.Show();
        }
        private void BuildErrorHandler()
        {
            errorLog = new ErrorLog(new DefaultLogFormatter());
            ILogFactory logFactory = new DefaultLogFactory()
                                     .AddSerializer(errorLog)
#if DEBUG
                                     .AddConsole()
#endif
            ;

            log = logFactory.Scope("Root");

            ExceptionHandlerBuilder builder = new ExceptionHandlerBuilder();

            builder
            .Filter <UnauthorizedAccessException>()
            .Handler(new UnauthorizedAccessExceptionHandler(Settings.Default, this, () => { mainWindow?.Close(); mainFactory.ClearService(); }));

            builder
            .Filter(e => !(e is UnauthorizedAccessException))
            .Handler(new LogExceptionHandler(log))
            .Handler(new MessageBoxExceptionHandler(this));

            exceptionHandler = builder;
        }
Ejemplo n.º 3
0
        public static IServiceCollection AddLogging(this IServiceCollection services)
        {
            Ensure.NotNull(services, "services");

            ILogFilter logFilter = DefaultLogFilter.Debug;

#if !DEBUG
            logFilter = DefaultLogFilter.Warning;
#endif

            ILogFactory logFactory = new DefaultLogFactory("Root");
            logFactory.AddSerializer(new ConsoleSerializer(new SingleLineLogFormatter(), logFilter));

            return(services
                   .AddSingleton(logFactory)
                   .AddTransient(typeof(ILog <>), typeof(DefaultLog <>)));
        }
Ejemplo n.º 4
0
        public static void Test()
        {
            XmlConfigurator.Configure();

            Converts.Repository
            .Add(typeof(ExceptionModel), typeof(string), new ExceptionModelConverter());

            ILogFormatter formatter = new DefaultLogFormatter();

            ILogFactory logFactory = new DefaultLogFactory()
                                     .AddConsole(formatter)
                                     .AddLog4net();

            ILog root = logFactory.Scope("Root");

            root.Debug("Hello, World!");
            root.Fatal(Ensure.Exception.NotImplemented());
            root.Fatal(Ensure.Exception.NotImplemented(), "Method is not implemented!");
        }
Ejemplo n.º 5
0
        protected override void OnStartup(StartupEventArgs e)
        {
            MemoryLogSerializer = new MemoryLogSerializer(new DefaultLogFormatter());

            LogFactory = new DefaultLogFactory("root")
                         .AddConsole()
                         .AddSerializer(MemoryLogSerializer);

            ILog log = LogFactory.Scope("Startup");

            log.Debug($"Startup arguments: {Environment.NewLine}{String.Join(" ", e.Args)}");
            log.Debug($"Current version: {VersionInfo.Version}");

            Args = new Args(e.Args);

            ProcessService = new ProcessService(this, Args.ProcessNamesToKillBeforeChange ?? new string[0]);
            Navigator      = new Navigator(this, this, this);
            BuildExceptionHandler();

            if (!Directory.Exists(Args.Path))
            {
                Navigator.Notify("Packages", "Missing argument '--path' - a target path to install packages to.", Navigator.MessageType.Error);
                Shutdown();
                return;
            }

            base.OnStartup(e);

            PackageSources = new NuGetPackageSourceCollection(new PackageSourceProvider(new Settings(Args.Path)));

            IReadOnlyCollection <NuGetFramework> frameworks        = ParseMonikers(Args.Monikers);
            NuGetSourceRepositoryFactory         repositoryFactory = new NuGetSourceRepositoryFactory();
            INuGetPackageFilter packageFilter = null;

            if (Args.Dependencies.Any())
            {
                packageFilter = new DependencyNuGetPackageFilter(Args.Dependencies, frameworks);
            }

            NuGetPackageContent.IFrameworkFilter frameworkFilter = null;
            if (Args.Monikers.Any())
            {
                frameworkFilter = new NuGetFrameworkFilter(frameworks);
            }

            var selfPackageConfiguration = new SelfPackageConfiguration(Args.SelfPackageId);

            SelfPackageConverter.Configuration = selfPackageConfiguration;

            var contentService    = new NuGetPackageContentService(log, frameworkFilter);
            var versionService    = new NuGetPackageVersionService(contentService, log, packageFilter, frameworkFilter);
            var searchService     = new NuGetSearchService(repositoryFactory, LogFactory.Scope("Search"), contentService, versionService, packageFilter, frameworkFilter);
            var installService    = new NuGetInstallService(repositoryFactory, LogFactory.Scope("Install"), Args.Path, contentService, versionService, packageFilter, frameworkFilter);
            var selfUpdateService = new SelfUpdateService(this, ProcessService);

            EnsureSelfPackageInstalled(installService);

            var viewModel = new MainViewModel(
                PackageSources,
                searchService,
                installService,
                selfPackageConfiguration,
                selfUpdateService,
                NuGetPackageVersionComparer.Instance
                );

            var wnd = new MainWindow(viewModel, ProcessService, Navigator);

            wnd.Show();

            if (Args.IsSelfUpdate)
            {
                RunSelfUpdate(wnd);
            }
        }