Interpolation of results was added
This commit is contained in:
@@ -15,19 +15,27 @@ using System.Windows.Input;
|
||||
|
||||
namespace StructureHelper.Windows.ViewModels.Calculations.CalculationResult
|
||||
{
|
||||
public class CalculationResultViewModel
|
||||
public class CalculationResultViewModel : ViewModelBase
|
||||
{
|
||||
public ICalculationResult SelectedResult { get; set; }
|
||||
public ICommand ShowIsoFieldCommand { get;}
|
||||
private ObservableCollection<ICalculationResult> calculationResults;
|
||||
private IEnumerable<INdm> ndms;
|
||||
private IReport isoFieldReport;
|
||||
private RelayCommand showIsoFieldCommand;
|
||||
|
||||
public RelayCommand ShowIsoFieldCommand
|
||||
{ get
|
||||
{
|
||||
return showIsoFieldCommand ??
|
||||
(
|
||||
showIsoFieldCommand = new RelayCommand(o =>
|
||||
ShowIsoField(),
|
||||
o => !(SelectedResult is null) && SelectedResult.IsValid));
|
||||
}
|
||||
}
|
||||
|
||||
public CalculationResultViewModel(IEnumerable<ICalculationResult> results, IEnumerable<INdm> ndmCollection)
|
||||
{
|
||||
ShowIsoFieldCommand = new RelayCommand(o=>ShowIsoField(), o=> !(SelectedResult is null) && SelectedResult.IsValid);
|
||||
//
|
||||
calculationResults = new ObservableCollection<ICalculationResult>();
|
||||
ndms = ndmCollection;
|
||||
foreach (var result in results)
|
||||
|
||||
@@ -6,14 +6,17 @@ using StructureHelper.Infrastructure.UI.DataContexts;
|
||||
using StructureHelper.Services.Reports;
|
||||
using StructureHelper.Services.Reports.CalculationReports;
|
||||
using StructureHelper.Services.ResultViewers;
|
||||
using StructureHelper.Windows.CalculationWindows.CalculatorsViews.ForceCalculatorViews;
|
||||
using StructureHelperLogics.NdmCalculations.Analyses.ByForces;
|
||||
using StructureHelperLogics.NdmCalculations.Primitives;
|
||||
using StructureHelperLogics.Services.NdmCalculations;
|
||||
using StructureHelperLogics.Services.NdmPrimitives;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
using System.Windows.Input;
|
||||
|
||||
namespace StructureHelper.Windows.ViewModels.Calculations.Calculators
|
||||
@@ -27,26 +30,69 @@ namespace StructureHelper.Windows.ViewModels.Calculations.Calculators
|
||||
private IReport isoFieldReport;
|
||||
|
||||
public ForcesResult SelectedResult { get; set; }
|
||||
private ICommand showIsoFieldCommand;
|
||||
private RelayCommand showIsoFieldCommand;
|
||||
private RelayCommand exportToCSVCommand;
|
||||
private RelayCommand interpolateCommand;
|
||||
|
||||
public IForcesResults ForcesResults
|
||||
{
|
||||
get => forcesResults;
|
||||
}
|
||||
|
||||
public ICommand ShowIsoFieldCommand
|
||||
public RelayCommand ShowIsoFieldCommand
|
||||
{
|
||||
get
|
||||
{
|
||||
return showIsoFieldCommand ??
|
||||
(
|
||||
showIsoFieldCommand = new RelayCommand(o =>
|
||||
(showIsoFieldCommand = new RelayCommand(o =>
|
||||
{
|
||||
GetNdms();
|
||||
ShowIsoField();
|
||||
}, o => (SelectedResult != null) && SelectedResult.IsValid));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public RelayCommand ExportToCSVCommand
|
||||
{
|
||||
get
|
||||
{
|
||||
return exportToCSVCommand ??
|
||||
(exportToCSVCommand = new RelayCommand(o =>
|
||||
{
|
||||
|
||||
}
|
||||
));
|
||||
}
|
||||
}
|
||||
|
||||
public RelayCommand InterpolateCommand
|
||||
{
|
||||
get
|
||||
{
|
||||
return interpolateCommand ??
|
||||
(interpolateCommand = new RelayCommand(o =>
|
||||
{
|
||||
Interpolate();
|
||||
}, o => SelectedResult != null));
|
||||
}
|
||||
}
|
||||
|
||||
private void Interpolate()
|
||||
{
|
||||
int stepCount = 100;
|
||||
var calculator = InterpolateService.InterpolateForceCalculator(forceCalculator, SelectedResult.DesignForceTuple, stepCount);
|
||||
calculator.Run();
|
||||
var result = calculator.Result;
|
||||
if (result is null || result.IsValid == false)
|
||||
{
|
||||
MessageBox.Show(result.Desctription, "Check data for analisys", MessageBoxButtons.OK, MessageBoxIcon.Warning);
|
||||
}
|
||||
else
|
||||
{
|
||||
var vm = new ForcesResultsViewModel(calculator);
|
||||
var wnd = new ForceResultsView(vm);
|
||||
wnd.Show();
|
||||
}
|
||||
}
|
||||
|
||||
public ForcesResultsViewModel(IForceCalculator forceCalculator)
|
||||
|
||||
@@ -16,5 +16,7 @@ namespace StructureHelper.Windows.ViewModels
|
||||
RelayCommand Add { get; }
|
||||
RelayCommand Delete { get; }
|
||||
RelayCommand Edit { get; }
|
||||
RelayCommand Copy { get; }
|
||||
void AddItems(IEnumerable<TItem> items);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
using StructureHelper.Infrastructure;
|
||||
using StructureHelper.Windows.CalculationWindows.CalculatorsViews.ForceCalculatorViews;
|
||||
using StructureHelper.Windows.ViewModels.Calculations.Calculators;
|
||||
using StructureHelperCommon.Models.Forces;
|
||||
using StructureHelperLogics.Models.CrossSections;
|
||||
using StructureHelperLogics.NdmCalculations.Analyses;
|
||||
using StructureHelperLogics.NdmCalculations.Analyses.ByForces;
|
||||
@@ -18,18 +19,7 @@ namespace StructureHelper.Windows.ViewModels.NdmCrossSections
|
||||
private readonly ICrossSectionRepository repository;
|
||||
|
||||
public INdmCalculator SelectedItem { get; set; }
|
||||
public ObservableCollection<INdmCalculator> Items
|
||||
{
|
||||
get
|
||||
{
|
||||
var collection = new ObservableCollection<INdmCalculator>();
|
||||
foreach (var item in repository.CalculatorsList)
|
||||
{
|
||||
collection.Add(item);
|
||||
}
|
||||
return collection;
|
||||
}
|
||||
}
|
||||
public ObservableCollection<INdmCalculator> Items { get; private set; }
|
||||
|
||||
private RelayCommand addCalculatorCommand;
|
||||
public RelayCommand Add
|
||||
@@ -48,6 +38,7 @@ namespace StructureHelper.Windows.ViewModels.NdmCrossSections
|
||||
private void AddCalculator()
|
||||
{
|
||||
var item = new ForceCalculator() { Name = "New force calculator" };
|
||||
Items.Add(item);
|
||||
repository.CalculatorsList.Add(item);
|
||||
}
|
||||
private RelayCommand editCalculatorCommand;
|
||||
@@ -115,6 +106,8 @@ namespace StructureHelper.Windows.ViewModels.NdmCrossSections
|
||||
}
|
||||
}
|
||||
|
||||
public RelayCommand Copy => throw new NotImplementedException();
|
||||
|
||||
private void DeleteCalculator()
|
||||
{
|
||||
var dialogResult = MessageBox.Show("Delete calculator?", "Please, confirm deleting", MessageBoxButtons.YesNo, MessageBoxIcon.Warning);
|
||||
@@ -124,9 +117,20 @@ namespace StructureHelper.Windows.ViewModels.NdmCrossSections
|
||||
OnPropertyChanged(nameof(Items));
|
||||
}
|
||||
}
|
||||
|
||||
public void AddItems(IEnumerable<INdmCalculator> items)
|
||||
{
|
||||
foreach (var item in items)
|
||||
{
|
||||
Items.Add(item);
|
||||
}
|
||||
}
|
||||
|
||||
public CalculatorsViewModelLogic(ICrossSectionRepository repository)
|
||||
{
|
||||
this.repository = repository;
|
||||
Items = new ObservableCollection<INdmCalculator>();
|
||||
AddItems(this.repository.CalculatorsList);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,18 +20,7 @@ namespace StructureHelper.Windows.ViewModels.NdmCrossSections
|
||||
|
||||
public IForceCombinationList SelectedItem { get; set; }
|
||||
|
||||
public ObservableCollection<IForceCombinationList> Items
|
||||
{
|
||||
get
|
||||
{
|
||||
var collection = new ObservableCollection<IForceCombinationList>();
|
||||
foreach (var item in repository.ForceCombinationLists)
|
||||
{
|
||||
collection.Add(item);
|
||||
}
|
||||
return collection;
|
||||
}
|
||||
}
|
||||
public ObservableCollection<IForceCombinationList> Items { get; private set; }
|
||||
|
||||
private RelayCommand addForceCombinationCommand;
|
||||
public RelayCommand Add
|
||||
@@ -50,6 +39,7 @@ namespace StructureHelper.Windows.ViewModels.NdmCrossSections
|
||||
private void AddCombination()
|
||||
{
|
||||
var item = new ForceCombinationList() { Name = "New Force Combination" };
|
||||
Items.Add(item);
|
||||
repository.ForceCombinationLists.Add(item);
|
||||
}
|
||||
private RelayCommand deleteForceCombinationCommand;
|
||||
@@ -88,15 +78,28 @@ namespace StructureHelper.Windows.ViewModels.NdmCrossSections
|
||||
}, o => SelectedItem != null));
|
||||
}
|
||||
}
|
||||
|
||||
public RelayCommand Copy => throw new NotImplementedException();
|
||||
|
||||
private void EditForceCombination()
|
||||
{
|
||||
var wnd = new ForceCombinationView(SelectedItem);
|
||||
wnd.ShowDialog();
|
||||
}
|
||||
|
||||
public void AddItems(IEnumerable<IForceCombinationList> items)
|
||||
{
|
||||
foreach (var item in items)
|
||||
{
|
||||
Items.Add(item);
|
||||
}
|
||||
}
|
||||
|
||||
public ForceCombinationViewModelLogic(ICrossSectionRepository repository)
|
||||
{
|
||||
this.repository = repository;
|
||||
Items = new ObservableCollection<IForceCombinationList>();
|
||||
AddItems(this.repository.ForceCombinationLists);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user