129 lines
3.8 KiB
C#
129 lines
3.8 KiB
C#
using StructureHelper.Infrastructure;
|
|
using StructureHelper.Windows.MainWindow.Analyses;
|
|
using StructureHelperLogic.Models.Analyses;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Collections.ObjectModel;
|
|
using System.ComponentModel;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using System.Windows.Forms;
|
|
|
|
namespace StructureHelper.Windows.MainWindow
|
|
{
|
|
public class AnalysesLogic : ViewModelBase
|
|
{
|
|
private RelayCommand? addAnalyisCommand;
|
|
private RelayCommand? runCommand;
|
|
private RelayCommand? editCommand;
|
|
private RelayCommand? deleteCommand;
|
|
|
|
public IVisualAnalysis? SelectedAnalysis { get; set; }
|
|
|
|
public List<IVisualAnalysis> AnalysesList { get; }
|
|
public ObservableCollection<IVisualAnalysis> FilteredAnalyses { get; }
|
|
public RelayCommand AddAnalysisCommand
|
|
{
|
|
get
|
|
{
|
|
return addAnalyisCommand ??= new RelayCommand(obj =>
|
|
{
|
|
AddCrossSectionNdmAnalysis();
|
|
Refresh();
|
|
});
|
|
}
|
|
}
|
|
public RelayCommand RunCommand
|
|
{
|
|
get
|
|
{
|
|
return runCommand ??= new RelayCommand(obj =>
|
|
{
|
|
RunAnalysis();
|
|
Refresh();
|
|
},
|
|
b => SelectedAnalysis is not null);
|
|
}
|
|
}
|
|
public RelayCommand EditCommand
|
|
{
|
|
get
|
|
{
|
|
return editCommand ??= new RelayCommand(obj =>
|
|
{
|
|
EditAnalysis();
|
|
Refresh();
|
|
},
|
|
b => SelectedAnalysis is not null);
|
|
}
|
|
}
|
|
public RelayCommand DeleteCommand
|
|
{
|
|
get
|
|
{
|
|
return deleteCommand ??= new RelayCommand(obj =>
|
|
{
|
|
DeleteAnalysis();
|
|
Refresh();
|
|
},
|
|
b => SelectedAnalysis is not null);
|
|
}
|
|
}
|
|
|
|
|
|
public AnalysesLogic()
|
|
{
|
|
AnalysesList = new();
|
|
FilteredAnalyses = new();
|
|
}
|
|
public void Refresh()
|
|
{
|
|
FilteredAnalyses.Clear();
|
|
var analysesList = AnalysesList.ToList();
|
|
foreach (var analysis in analysesList)
|
|
{
|
|
FilteredAnalyses.Add(analysis);
|
|
}
|
|
}
|
|
private void EditAnalysis()
|
|
{
|
|
if (SelectedAnalysis is not null)
|
|
{
|
|
var name = SelectedAnalysis.Analysis.Name;
|
|
var tags = SelectedAnalysis.Analysis.Tags;
|
|
var wnd = new AnalysisView(SelectedAnalysis);
|
|
wnd.ShowDialog();
|
|
if (wnd.DialogResult != true)
|
|
{
|
|
SelectedAnalysis.Analysis.Name = name;
|
|
SelectedAnalysis.Analysis.Tags = tags;
|
|
}
|
|
}
|
|
}
|
|
private void DeleteAnalysis()
|
|
{
|
|
if (SelectedAnalysis is not null)
|
|
{
|
|
var dialogResult = MessageBox.Show("Delete analysis?", "Please, confirm deleting", MessageBoxButtons.YesNo, MessageBoxIcon.Warning);
|
|
if (dialogResult == DialogResult.Yes)
|
|
{
|
|
AnalysesList.Remove(SelectedAnalysis);
|
|
}
|
|
}
|
|
}
|
|
private void RunAnalysis()
|
|
{
|
|
SelectedAnalysis?.Run();
|
|
}
|
|
private void AddCrossSectionNdmAnalysis()
|
|
{
|
|
var analysis = new CrossSectionNdmAnalysis();
|
|
analysis.Name = "New NDM Analysis";
|
|
analysis.Tags = "#New group";
|
|
var visualAnalysis = new VisualAnalysis(analysis);
|
|
AnalysesList.Add(visualAnalysis);
|
|
}
|
|
}
|
|
}
|