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); }
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); }
/// <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); }
/// <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(); }