Exemplo n.º 1
0
        public string[] Export(string name)
        {
            if (name == null)
            {
                return(ConsoleConfigSection.GetConfig().Restore
                       .Cast <NameValueConfigElement>()
                       .Select(x => x.Name).ToArray());
            }

            var filename   = String.Format(@"Restore{1}{0}_exported.xml", name, Path.DirectorySeparatorChar);
            var stringType = ConsoleConfigSection.GetConfig().Restore
                             .Cast <NameValueConfigElement>().First(x => x.Name == name).Value;

            var type = Type.GetType(stringType);

            if (type == null)
            {
                throw new Exception(stringType + " can not be resolved.");
            }
            if (File.Exists(filename))
            {
                File.Delete(filename);
            }
            INHibernateFileBackupBase fileBackup = Context.Resolve(type) as INHibernateFileBackupBase;

            fileBackup.BackupFile = filename;
            fileBackup.Backup();
            return(null);
        }
Exemplo n.º 2
0
        public string[] Restore(string name)
        {
            if (name == null)
            {
                return(ConsoleConfigSection.GetConfig().Restore
                       .Cast <NameValueConfigElement>()
                       .Select(x => x.Name).ToArray());
            }

            var filename   = String.Format(@"Restore{1}{0}.xml", name, Path.DirectorySeparatorChar);
            var stringType = ConsoleConfigSection.GetConfig().Restore
                             .Cast <NameValueConfigElement>().First(x => x.Name == name).Value;

            var type = Type.GetType(stringType);

            if (type == null)
            {
                throw new Exception(stringType + " can not be resolved.");
            }
            if (File.Exists(filename))
            {
                INHibernateFileBackupBase fileBackup = Context.Resolve(type) as INHibernateFileBackupBase;
                fileBackup.BackupFile     = filename;
                fileBackup.ImportStrategy = BoxImporterStrategy.SkipExisting;
                fileBackup.Restore();
            }
            else
            {
                Writer.WriteLine(filename + " not found");
            }
            return(null);
        }
Exemplo n.º 3
0
        private void Initialize()
        {
            using (var logSubscribe = FormsLogInjectionModule.NextLoggingEvent().ToObservable(
                       System.Reactive.Concurrency.Scheduler.NewThread)
                                      .Where(l => l != null)
                                      .Subscribe(l => SetProgressAsync(-1, l.RenderedMessage)))
            {
                try
                {
                    SetProgressAsync(0, "Building factory");
                    var bs = new Bootstrap();
                    bs.Init();
                    SetProgressAsync(30, "Init database");

                    //trackers
                    //var pTracker = bs.Container.Resolve<PerformanceCountersTracker>();
                    //pTracker.Start(TimeSpan.FromSeconds(10), "Performance");

                    //var rTracker = bs.Container.Resolve<RandomTracker>();
                    //rTracker.Start(TimeSpan.FromSeconds(1), "Random");

                    var dbCtx = bs.Container.Resolve <IDbContext>();

                    int step = 50;
                    SetProgressAsync(step, "Unpacking zip files");

                    var packagesFolder       = Path.Combine(Environment.CurrentDirectory, "JS", "Packages");
                    var packagesOutputFolder = Path.Combine(Environment.CurrentDirectory, "JS");
                    if (!Directory.Exists(packagesFolder))
                    {
                        throw new Exception("Component folder not found: " + packagesFolder);
                    }

                    if (!ModalBootstrapConfigSection.GetConfig().JsComponents.Disabled)
                    {
                        var packStep = 20 / Math.Max(1, ModalBootstrapConfigSection.GetConfig().JsComponents.Count);
                        Action <NameValueConfigElement> Unpack =
                            (element) =>
                        {
                            step += packStep;
                            SetProgressAsync(step, "Unpacking: " + element.Name);
                            ZipFunctions.ExtractZipFile(
                                Path.Combine(packagesFolder, element.Name),
                                Path.Combine(packagesOutputFolder, element.Value), ZipFunctions.Functions.IfNewer);
                        };
                        foreach (NameValueConfigElement elem in ModalBootstrapConfigSection.GetConfig().JsComponents)
                        {
                            Unpack(elem);
                        }
                    }
                    SetProgressAsync(70, "Unpack done");

                    step = 71;
                    SetProgressAsync(step, "Restoring");

                    if (!ModalBootstrapConfigSection.GetConfig().Restore.Disabled)
                    {
                        var packStep = 10 / Math.Max(1, ModalBootstrapConfigSection.GetConfig().Restore.Count);
                        Action <string, string> Restore =
                            (filename, stringType) =>
                        {
                            var type = Type.GetType(stringType);
                            if (type == null)
                            {
                                throw new Exception(stringType + " can not be resolved.");
                            }
                            if (File.Exists(filename))
                            {
                                step += packStep;
                                SetProgressAsync(step, filename + " restore");
                                INHibernateFileBackupBase httpProxyBackup = Bootstrap.Instance.Container.Resolve(type)
                                                                            as INHibernateFileBackupBase;
                                httpProxyBackup.BackupFile = filename;
                                httpProxyBackup.Restore();
                            }
                            else
                            {
                                MessageBox.Show(filename + " not found");
                            }
                        };

                        ModalBootstrapConfigSection.GetConfig().Restore.Cast <NameValueConfigElement>()
                        .ToList().ForEach(e => Restore(e.Name, e.Value));
                    }

                    //foreach (var restor in restore) Restore(restor.Item1, restor.Item2);
                    SetProgressAsync(80, "Build menu");

                    bs.Container.Resolve <CoreContextExtensions>().getMenu();

                    SetProgressAsync(99, "Setting up registry");
                    if (!ModalBootstrapConfigSection.GetConfig().Registry.Disabled)
                    {
                        throw new NotImplementedException("registry section read is not implemented, disable it!");
                    }
                    //TODO: if not mono
                    var executableFilename = Path.GetFileName(System.Reflection.Assembly.GetEntryAssembly().Location);
                    var keys = new[] { executableFilename, "BinaryAnalysis.GUI.vshost.exe" };

                    Action <string, object, string> SetRegistryKeyOrFail =
                        (key, val, regStr) =>
                    {
                        var reg =
                            Registry.CurrentUser.CreateSubKey(regStr);
                        if (reg == null)
                        {
                            throw new Exception("Failed registry: " + regStr);
                        }
                        reg.SetValue(key, val);
                    };

                    foreach (var key in keys)
                    {
                        SetRegistryKeyOrFail(key, 0, @"SOFTWARE\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BLOCK_LMZ_IMG");
                        SetRegistryKeyOrFail(key, 0, @"SOFTWARE\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BLOCK_LMZ_SCRIPT");
                    }

                    Thread.Sleep(500);
                    SetProgressAsync(100, "All done");
                    IsInitialized = true;
                }catch (Exception ex)
                {
                    log.Error(ex);
                    MessageBox.Show(ex.Message, "Error in init.");
                    SetProgressAsync(100);
                }
            }
        }