Example #1
0
        public MainWindowVM(IWinSimple win,
                            RecentFileList recentFileList)
        {
            _layoutFileName = Path.Combine(AppDataDirectoryPath,
                                           Assembly.GetEntryAssembly().GetName().Name + ".ColLayout");

            _callingWin = win;

            _workspace = new LogAnalysisWorkspace();
            YalvRegistry.Instance.SetActualLogAnalysisWorkspace(_workspace);

            _yalvLogViewModel = new YalvViewModel();

            CommandCancelProcessing = YalvLogViewModel.CommandCancelProcessing;

            if (CreateAppDataDir())
            {
                _yalvLogViewModel.LogEntryRows.LoadColumnsLayout(_layoutFileName);
            }

            RecentFileList = recentFileList;

            CommandExit     = new RelayCommand <object>((p) => CommandExitExecute(p), p => true);
            CommandOpenFile = new RelayCommand <object>((p) => CommandOpenFileExecute(p), CommandOpenFileCanExecute);

            CommandExport                 = new RelayCommand <object>((p) => CommandExportExecute(p), p => true);
            CommandOpenSqliteDatabase     = new RelayCommand <object>((p) => CommandOpenSqliteDatabaseExecute(p), p => true);
            CommandOpenLogAnalysisSession = new RelayCommand <object>((p) => CommandOpenLogAnalysisSessionExecute(p), p => true);
        }
Example #2
0
        protected virtual object CommandExportExecute(object parameter)
        {
            LogAnalysisWorkspace workspace = YalvRegistry.Instance.ActualWorkspace;

            if (workspace != null && YalvLogViewModel.HasData)
            {
                var saveFileDialog = new SaveFileDialog {
                    Filter = "Yalv file | *.yalv", Title = "Save a workspace"
                };
                saveFileDialog.ShowDialog();
                if (saveFileDialog.FileName != string.Empty)
                {
                    YalvLogViewModel.ManageRepositoriesViewModel.IsLoading = true;
                    var exporter = new LogAnalysisWorkspaceExporter(saveFileDialog.FileName);
                    exporter.ExportResultEvent += ExporterResultEvent;
                    exporter.Export(workspace);
                }
            }
            else
            {
                MessageBox.Show("No Data to be exported !");
            }

            return(null);
        }
Example #3
0
        /// <summary>
        /// Load a workspace from a sqlite database
        /// </summary>
        /// <returns></returns>
        public LogAnalysisWorkspace Load()
        {
            ISessionFactory sessionFactory = Fluently.Configure()
                                             .Database(SQLiteConfiguration.Standard.UsingFile(_path))
                                             .Mappings(m =>
            {
                m.FluentMappings.Add <LogAnalysisWorkspaceMapping>();
                m.FluentMappings.Add <LogAnalysisMapping>();
                m.FluentMappings.Add <LogEntryRepositoryMapping>();
                m.FluentMappings.Add <LogEntryMapping>();
                m.FluentMappings.Add <ColorMarkerMapping>();
                m.FluentMappings.Add <TextMarkerMapping>();
                m.FluentMappings.Add <CustomFilterMapping>();
            })
                                             .ExposeConfiguration(BuildSchema)
                                             .BuildSessionFactory();
            LogAnalysisWorkspace logAnalysisWorkspace = null;

            using (ISession session = sessionFactory.OpenSession())
            {
                using (ITransaction transaction = session.BeginTransaction())
                {
                    IList l = session.CreateCriteria <LogAnalysisWorkspace>().List();
                    if (l.Count > 0)
                    {
                        logAnalysisWorkspace = l[0] as LogAnalysisWorkspace;
                    }
                    transaction.Commit();
                }
            }
            return(logAnalysisWorkspace);
        }
Example #4
0
        /// <summary>
        /// Map and export the logAnalysis workspaces to a SQLite database
        /// </summary>
        /// <param name="logWorkspace">Log Analysis workspace to export</param>
        public void Export(LogAnalysisWorkspace logWorkspace)
        {
            try
            {
                var cancelToken = new CancellationToken(true);
                Task.Factory.StartNew(obj =>
                {
                    ISessionFactory factory = BuildFactory();
                    NHibernateUtil.Initialize(factory);

                    using (ISession session = factory.OpenSession())
                    {
                        using (
                            ITransaction transaction =
                                session.BeginTransaction())
                        {
                            try
                            {
                                session.SaveOrUpdate(logWorkspace);
                                transaction.Commit();
                            }
                            catch (Exception e)
                            {
                                throw e.InnerException;
                            }finally
                            {
                                factory.Close();
                            }
                        }
                    }
                    factory.Close();
                }, cancelToken).ContinueWith(
                    ant => ReportExportComplete());
            }catch (Exception e)
            {
                throw e.InnerException;
            }
        }
 public void CreateEnvironment()
 {
     _session = new LogAnalysisWorkspace();
 }