Exemplo n.º 1
0
        /// <summary>
        ///     Method called from the view. Generate a report from a set of selected configurations once
        ///     all conditions are fulfilled.
        /// </summary>
        public void MakeReport()
        {
            Task.Run(() =>
            {
                StartLongOperation();
                // Execute the Query
                string batchFilename = LoadedBatch;

                LoadedBatch = "Running query";

                List <TrackGroup> queryResultTracks = null;
                List <Report> queryReports          = null;
                try
                {
                    Query.Execute(LoggedExperiments, OnExperimentalUnitProcessed, out queryResultTracks, out queryReports);
                }
                catch (Exception ex)
                {
                    string exception = ex.ToString();
                }
                //Clone the query
                LogQueryViewModel clonedQuery = Serialiazer.Clone(Query);

                //Create and add to list the result of the query
                LogQueryResultViewModel result = new LogQueryResultViewModel(queryResultTracks, queryReports, clonedQuery);
                LogQueryResults.Add(result);
                //set this last result as selected
                SelectedLogQueryResult = LogQueryResults[LogQueryResults.Count - 1];

                LoadedBatch = batchFilename;
                EndLongOperation();
            });
        }
Exemplo n.º 2
0
 /// <summary>
 ///     Close a tab (report view) and remove it from the list of reports.
 /// </summary>
 /// <param name="result">The report to be removed</param>
 public void Close(LogQueryResultViewModel result)
 {
     LogQueryResults.Remove(result);
     if (LogQueryResults.Count > 0)
     {
         SelectedLogQueryResult = LogQueryResults[0];
     }
     else
     {
         SelectedLogQueryResult = null;
     }
 }
Exemplo n.º 3
0
        /// <summary>
        ///     Method called from the view. This clear every list and field. Should be called when
        ///     we load a new experiment if one is already loaded or when we hit the delete button
        ///     from the view.
        /// </summary>
        public void ClearReportViewer()
        {
            ExperimentalUnits.Clear();
            LoggedExperiments.Clear();
            LogQueryResults.Clear();

            NotifyOfPropertyChange(() => VariablesLoaded);
            NotifyOfPropertyChange(() => ForksLoaded);

            Query = new LogQueryViewModel();
            //Add the listening function to the LogQuery object with all the parameters
            Query.PropertyChanged += OnChildPropertyChanged;

            LogsLoaded  = false;
            ForksLoaded = false;
        }
Exemplo n.º 4
0
        /// <summary>
        /// Loads a report previously saved from the Reports window
        /// </summary>
        /// <param name="reportFileName">File where the report was saved using SaveReports()</param>
        public void LoadReport(string reportFileName)
        {
            int numQueriesRead = Files.LoadReport(reportFileName, out string readBatchFilename, out BindableCollection <LogQueryResultViewModel> readQueries);

            if (numQueriesRead > 0)
            {
                ClearReportViewer();

                LoadExperimentBatch(readBatchFilename);
                LoadedBatch = readBatchFilename;
                LogQueryResults.AddRange(readQueries);
                if (LogQueryResults.Count > 0)
                {
                    SelectedLogQueryResult = LogQueryResults[0];
                }
            }
        }