diff --git a/DataAccess/DTOs/Converters/HeadMaterialFromDTOConvertStrategy.cs b/DataAccess/DTOs/Converters/HeadMaterialFromDTOConvertStrategy.cs index 44584f9..40053bb 100644 --- a/DataAccess/DTOs/Converters/HeadMaterialFromDTOConvertStrategy.cs +++ b/DataAccess/DTOs/Converters/HeadMaterialFromDTOConvertStrategy.cs @@ -3,6 +3,7 @@ using StructureHelper.Models.Materials; using StructureHelperCommon.Infrastructures.Interfaces; using StructureHelperCommon.Models; using StructureHelperCommon.Models.Loggers; +using StructureHelperCommon.Models.Materials; using StructureHelperLogics.Models.CrossSections; using StructureHelperLogics.Models.Materials; using System; diff --git a/DataAccess/DTOs/Converters/HeadMaterialToDTOConvertStrategy.cs b/DataAccess/DTOs/Converters/HeadMaterialToDTOConvertStrategy.cs index a2682cd..7f2727e 100644 --- a/DataAccess/DTOs/Converters/HeadMaterialToDTOConvertStrategy.cs +++ b/DataAccess/DTOs/Converters/HeadMaterialToDTOConvertStrategy.cs @@ -2,6 +2,7 @@ using StructureHelperCommon.Infrastructures.Interfaces; using StructureHelperCommon.Models; using StructureHelperCommon.Models.Loggers; +using StructureHelperCommon.Models.Materials; using StructureHelperLogics.Models.CrossSections; using StructureHelperLogics.Models.Materials; using System; diff --git a/DataAccess/DTOs/Converters/HelperMaterialDTOSafetyFactorUpdateStrategy.cs b/DataAccess/DTOs/Converters/HelperMaterialDTOSafetyFactorUpdateStrategy.cs index caedb75..6c99494 100644 --- a/DataAccess/DTOs/Converters/HelperMaterialDTOSafetyFactorUpdateStrategy.cs +++ b/DataAccess/DTOs/Converters/HelperMaterialDTOSafetyFactorUpdateStrategy.cs @@ -1,12 +1,7 @@ using StructureHelperCommon.Infrastructures.Interfaces; +using StructureHelperCommon.Models.Materials; using StructureHelperCommon.Models.Materials.Libraries; using StructureHelperCommon.Services; -using StructureHelperLogics.Models.Materials; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; namespace DataAccess.DTOs { diff --git a/DataAccess/DTOs/Converters/HelperMaterialFromDTOConvertStrategy.cs b/DataAccess/DTOs/Converters/HelperMaterialFromDTOConvertStrategy.cs index cf20515..03a478d 100644 --- a/DataAccess/DTOs/Converters/HelperMaterialFromDTOConvertStrategy.cs +++ b/DataAccess/DTOs/Converters/HelperMaterialFromDTOConvertStrategy.cs @@ -3,6 +3,7 @@ using StructureHelper.Models.Materials; using StructureHelperCommon.Infrastructures.Exceptions; using StructureHelperCommon.Infrastructures.Interfaces; using StructureHelperCommon.Models; +using StructureHelperCommon.Models.Materials; using StructureHelperLogics.Models.Materials; using System; using System.CodeDom; diff --git a/DataAccess/DTOs/Converters/HelperMaterialToDTOConvertStrategy.cs b/DataAccess/DTOs/Converters/HelperMaterialToDTOConvertStrategy.cs index 9043712..5f60232 100644 --- a/DataAccess/DTOs/Converters/HelperMaterialToDTOConvertStrategy.cs +++ b/DataAccess/DTOs/Converters/HelperMaterialToDTOConvertStrategy.cs @@ -3,6 +3,7 @@ using StructureHelperCommon.Infrastructures.Exceptions; using StructureHelperCommon.Infrastructures.Interfaces; using StructureHelperCommon.Models; using StructureHelperCommon.Models.Loggers; +using StructureHelperCommon.Models.Materials; using StructureHelperLogics.Models.CrossSections; using StructureHelperLogics.Models.Materials; using StructureHelperLogics.Models.Materials.Logics; diff --git a/DataAccess/DTOs/Converters/LibMaterialDTOUpdateStrategy.cs b/DataAccess/DTOs/Converters/LibMaterialDTOUpdateStrategy.cs index 5f0a2b7..fb3fca4 100644 --- a/DataAccess/DTOs/Converters/LibMaterialDTOUpdateStrategy.cs +++ b/DataAccess/DTOs/Converters/LibMaterialDTOUpdateStrategy.cs @@ -1,4 +1,5 @@ using StructureHelperCommon.Infrastructures.Interfaces; +using StructureHelperCommon.Models.Materials; using StructureHelperCommon.Models.Materials.Libraries; using StructureHelperCommon.Services; using StructureHelperLogics.Models.Materials; diff --git a/DataAccess/DTOs/Converters/LibMaterialToDTOConvertStrategy.cs b/DataAccess/DTOs/Converters/LibMaterialToDTOConvertStrategy.cs index 2f66856..d29f9fd 100644 --- a/DataAccess/DTOs/Converters/LibMaterialToDTOConvertStrategy.cs +++ b/DataAccess/DTOs/Converters/LibMaterialToDTOConvertStrategy.cs @@ -1,14 +1,10 @@ using StructureHelperCommon.Infrastructures.Interfaces; using StructureHelperCommon.Models; using StructureHelperCommon.Models.Loggers; -using StructureHelperLogics.Models.CrossSections; -using StructureHelperLogics.Models.Materials; -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Linq; -using System.Text; -using System.Threading.Tasks; +using StructureHelperCommon.Models.Materials; + +//Copyright (c) 2025 Redikultsev Evgeny, Ekaterinburg, Russia +//All rights reserved. namespace DataAccess.DTOs { diff --git a/DataAccess/DTOs/DTOEntities/HeadMaterialDTO.cs b/DataAccess/DTOs/DTOEntities/HeadMaterialDTO.cs index a0e9969..96449c4 100644 --- a/DataAccess/DTOs/DTOEntities/HeadMaterialDTO.cs +++ b/DataAccess/DTOs/DTOEntities/HeadMaterialDTO.cs @@ -2,13 +2,7 @@ using Newtonsoft.Json; using StructureHelper.Models.Materials; using StructureHelperCommon.Infrastructures.Enums; -using StructureHelperCommon.Infrastructures.Interfaces; -using StructureHelperLogics.Models.Materials; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; +using StructureHelperCommon.Models.Materials; using System.Windows.Media; namespace DataAccess.DTOs diff --git a/StructureHelper/App.xaml b/StructureHelper/App.xaml index 65d70da..d64bbc2 100644 --- a/StructureHelper/App.xaml +++ b/StructureHelper/App.xaml @@ -6,6 +6,7 @@ + diff --git a/StructureHelper/Infrastructure/Enums/CalculatorTypes.cs b/StructureHelper/Infrastructure/Enums/CalculatorTypes.cs index fd4e157..ac3c4bd 100644 --- a/StructureHelper/Infrastructure/Enums/CalculatorTypes.cs +++ b/StructureHelper/Infrastructure/Enums/CalculatorTypes.cs @@ -11,6 +11,7 @@ namespace StructureHelper.Infrastructure.Enums ForceCalculator, LimitCurveCalculator, CrackCalculator, - FireCalculator + FireCalculator, + BeamShearCalculator } } diff --git a/StructureHelper/Infrastructure/Enums/StirrupTypes.cs b/StructureHelper/Infrastructure/Enums/StirrupTypes.cs new file mode 100644 index 0000000..14fa497 --- /dev/null +++ b/StructureHelper/Infrastructure/Enums/StirrupTypes.cs @@ -0,0 +1,14 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace StructureHelper.Infrastructure.Enums +{ + public enum StirrupTypes + { + Density, + UniformRebar + } +} diff --git a/StructureHelper/Infrastructure/UI/Resources/ButtonStyles.xaml b/StructureHelper/Infrastructure/UI/Resources/ButtonStyles.xaml index 0538cde..0866ea8 100644 --- a/StructureHelper/Infrastructure/UI/Resources/ButtonStyles.xaml +++ b/StructureHelper/Infrastructure/UI/Resources/ButtonStyles.xaml @@ -269,6 +269,20 @@ + + + + + + + + + + + + + + @@ -601,6 +615,25 @@ + + + + + + + + + + + + + + + + + + + @@ -627,6 +660,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/StructureHelper/Infrastructure/UI/Resources/ContextMenus.xaml b/StructureHelper/Infrastructure/UI/Resources/ContextMenus.xaml new file mode 100644 index 0000000..a35890c --- /dev/null +++ b/StructureHelper/Infrastructure/UI/Resources/ContextMenus.xaml @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/StructureHelper/StructureHelper.csproj.user b/StructureHelper/StructureHelper.csproj.user index 88e81bf..39209a9 100644 --- a/StructureHelper/StructureHelper.csproj.user +++ b/StructureHelper/StructureHelper.csproj.user @@ -12,6 +12,9 @@ Code + + Code + Code @@ -107,6 +110,9 @@ + + Designer + Designer @@ -134,6 +140,9 @@ Designer + + Designer + Designer diff --git a/StructureHelper/Windows/BeamShears/BeamShearActionsViewModel.cs b/StructureHelper/Windows/BeamShears/BeamShearActionsViewModel.cs new file mode 100644 index 0000000..66ec8bd --- /dev/null +++ b/StructureHelper/Windows/BeamShears/BeamShearActionsViewModel.cs @@ -0,0 +1,22 @@ +using StructureHelper.Windows.ViewModels; +using StructureHelperCommon.Models.Forces; +using StructureHelperLogics.Models.BeamShears; +using System.Collections.Generic; + +namespace StructureHelper.Windows.BeamShears +{ + public class BeamShearActionsViewModel : SelectItemVM + { + private readonly IBeamShearRepository shearRepository; + + public BeamShearActionsViewModel(IBeamShearRepository shearRepository) : base(shearRepository.BeamShearActions) + { + this.shearRepository = shearRepository; + } + public override void DeleteMethod(object parameter) + { + shearRepository.DeleteAction(SelectedItem); + base.DeleteMethod(parameter); + } + } +} diff --git a/StructureHelper/Windows/BeamShears/BeamShearCalculatorViewModel.cs b/StructureHelper/Windows/BeamShears/BeamShearCalculatorViewModel.cs new file mode 100644 index 0000000..af8581e --- /dev/null +++ b/StructureHelper/Windows/BeamShears/BeamShearCalculatorViewModel.cs @@ -0,0 +1,19 @@ +using StructureHelper.Windows.ViewModels; +using StructureHelperLogics.Models.BeamShears; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace StructureHelper.Windows.BeamShears +{ + public class BeamShearCalculatorViewModel : OkCancelViewModelBase + { + private IBeamShearCalculator calculator; + public BeamShearCalculatorViewModel(IBeamShearCalculator calculator) + { + this.calculator = calculator; + } + } +} diff --git a/StructureHelper/Windows/BeamShears/BeamShearCalculatorsViewModel.cs b/StructureHelper/Windows/BeamShears/BeamShearCalculatorsViewModel.cs new file mode 100644 index 0000000..53e5b48 --- /dev/null +++ b/StructureHelper/Windows/BeamShears/BeamShearCalculatorsViewModel.cs @@ -0,0 +1,99 @@ +using StructureHelper.Infrastructure; +using StructureHelper.Infrastructure.Enums; +using StructureHelper.Windows.ViewModels; +using StructureHelper.Windows.ViewModels.Errors; +using StructureHelperCommon.Infrastructures.Exceptions; +using StructureHelperCommon.Models; +using StructureHelperCommon.Models.Calculators; +using StructureHelperLogics.Models.BeamShears; +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.BeamShears +{ + public class BeamShearCalculatorsViewModel : SelectItemVM + { + private object parameter; + private readonly IBeamShearRepository shearRepository; + private RelayCommand runCommand; + + public ICommand Run + { + get + { + return runCommand ?? + ( + runCommand = new RelayCommand(param => + { + RunMethod(param); + } + )); + } + } + + public override void AddMethod(object parameter) + { + this.parameter = parameter; + SafetyProcessor.RunSafeProcess(AddCalculator, "Error of creating calculator"); + } + + + public override void EditMethod(object parameter) + { + SafetyProcessor.RunSafeProcess(EditCalculator, $"Error of calculator {SelectedItem.Name}"); + base.EditMethod(parameter); + } + + public BeamShearCalculatorsViewModel(IBeamShearRepository shearRepository) : base(shearRepository.Calculators) + { + this.shearRepository = shearRepository; + } + private void AddCalculator() + { + if (parameter is CalculatorTypes.BeamShearCalculator) + { + NewItem = new BeamShearCalculator(Guid.NewGuid()) + { + Name = "New shear calculator", + TraceLogger = new ShiftTraceLogger() + }; + } + else + { + throw new StructureHelperException(ErrorStrings.ObjectTypeIsUnknownObj(parameter)); + } + base.AddMethod(parameter); + } + private void EditCalculator() + { + if (SelectedItem is IBeamShearCalculator beamShearCalculator) + { + //to do + } + else + { + throw new StructureHelperException(ErrorStrings.ObjectTypeIsUnknownObj(SelectedItem)); + } + } + private void RunMethod(object param) + { + SafetyProcessor.RunSafeProcess(RunCalculator, $"Error of calculator {SelectedItem.Name}"); + } + private void RunCalculator() + { + if (SelectedItem is IBeamShearCalculator beamShearCalculator) + { + beamShearCalculator.Run(); + } + else + { + throw new StructureHelperException(ErrorStrings.ObjectTypeIsUnknownObj(SelectedItem)); + } + } + } +} diff --git a/StructureHelper/Windows/BeamShears/BeamShearSectionsViewModel.cs b/StructureHelper/Windows/BeamShears/BeamShearSectionsViewModel.cs new file mode 100644 index 0000000..697d228 --- /dev/null +++ b/StructureHelper/Windows/BeamShears/BeamShearSectionsViewModel.cs @@ -0,0 +1,25 @@ +using StructureHelper.Windows.ViewModels; +using StructureHelperLogics.Models.BeamShears; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace StructureHelper.Windows.BeamShears +{ + public class BeamShearSectionsViewModel : SelectItemVM + { + IBeamShearRepository shearRepository; + public BeamShearSectionsViewModel(IBeamShearRepository shearRepository) : base(shearRepository.ShearSections) + { + this.shearRepository = shearRepository; + } + public override void DeleteMethod(object parameter) + { + shearRepository.DeleteSection(SelectedItem); + base.DeleteMethod(parameter); + } + } +} diff --git a/StructureHelper/Windows/BeamShears/BeamShearView.xaml b/StructureHelper/Windows/BeamShears/BeamShearView.xaml new file mode 100644 index 0000000..b8274ea --- /dev/null +++ b/StructureHelper/Windows/BeamShears/BeamShearView.xaml @@ -0,0 +1,169 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/StructureHelper/Windows/BeamShears/BeamShearView.xaml.cs b/StructureHelper/Windows/BeamShears/BeamShearView.xaml.cs new file mode 100644 index 0000000..3e583b0 --- /dev/null +++ b/StructureHelper/Windows/BeamShears/BeamShearView.xaml.cs @@ -0,0 +1,31 @@ +using StructureHelperLogics.Models.Analyses; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Shapes; + +namespace StructureHelper.Windows.BeamShears +{ + /// + /// Interaction logic for BeamShearView.xaml + /// + public partial class BeamShearView : Window + { + private BeamShearViewModel viewModel; + public BeamShearView(BeamShearViewModel viewModel) + { + InitializeComponent(); + this.viewModel = viewModel; + this.DataContext = this.viewModel; + } + } +} diff --git a/StructureHelper/Windows/BeamShears/BeamShearViewModel.cs b/StructureHelper/Windows/BeamShears/BeamShearViewModel.cs new file mode 100644 index 0000000..87c9876 --- /dev/null +++ b/StructureHelper/Windows/BeamShears/BeamShearViewModel.cs @@ -0,0 +1,70 @@ +using StructureHelper.Infrastructure; +using StructureHelperLogics.Models.Analyses; +using StructureHelperLogics.Models.BeamShears; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Input; + +namespace StructureHelper.Windows.BeamShears +{ + public class BeamShearViewModel : ViewModelBase + { + private IBeamShear beamShear; + private IBeamShearRepository repository; + private RelayCommand addTemplateCommand; + + public BeamShearActionsViewModel Actions {get; private set;} + public BeamShearSectionsViewModel Sections { get; private set; } + public BeamStirrupsViewModel Stirrups { get; private set; } + public BeamShearCalculatorsViewModel Calculators { get; private set; } + + public ICommand AddTemplate + { + get + { + return addTemplateCommand ?? + ( + addTemplateCommand = new RelayCommand(param => + { + AddTemplateMethod(param); + } + )); + } + } + + private void AddTemplateMethod(object param) + { + var templateRepository = BeamShearTemplatesFactory.GetTemplateRepository(ShearSectionTemplateTypes.Rectangle); + var updateStrategy = new BeamShearRepositoryAddUpdateStrategy(); + updateStrategy.Update(repository, templateRepository); + Refresh(); + } + + private void Refresh() + { + Actions.Refresh(); + Sections.Refresh(); + Stirrups.Refresh(); + Calculators.Refresh(); + } + + public BeamShearViewModel(IBeamShear beamShear) + { + this.beamShear = beamShear; + repository = beamShear.Repository; + InitializeSubModels(); + } + + private void InitializeSubModels() + { + Actions = new (repository); + Sections = new (repository); + Stirrups = new (repository); + Calculators = new (repository); + } + } +} diff --git a/StructureHelper/Windows/BeamShears/BeamStirrupsViewModel.cs b/StructureHelper/Windows/BeamShears/BeamStirrupsViewModel.cs new file mode 100644 index 0000000..a5fdaba --- /dev/null +++ b/StructureHelper/Windows/BeamShears/BeamStirrupsViewModel.cs @@ -0,0 +1,25 @@ +using StructureHelper.Windows.ViewModels; +using StructureHelperLogics.Models.BeamShears; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace StructureHelper.Windows.BeamShears +{ + public class BeamStirrupsViewModel : SelectItemVM + { + private readonly IBeamShearRepository shearRepository; + + public BeamStirrupsViewModel(IBeamShearRepository shearRepository) : base(shearRepository.Stirrups) + { + this.shearRepository = shearRepository; + } + public override void DeleteMethod(object parameter) + { + shearRepository.DeleteStirrup(SelectedItem); + base.DeleteMethod(parameter); + } + } +} diff --git a/StructureHelper/Windows/MainWindow/Analyses/AnalysesLogic.cs b/StructureHelper/Windows/MainWindow/Analyses/AnalysesLogic.cs index 8471061..76cceb9 100644 --- a/StructureHelper/Windows/MainWindow/Analyses/AnalysesLogic.cs +++ b/StructureHelper/Windows/MainWindow/Analyses/AnalysesLogic.cs @@ -1,5 +1,6 @@ using StructureHelper.Infrastructure; using StructureHelper.Infrastructure.Enums; +using StructureHelper.Windows.BeamShears; using StructureHelper.Windows.MainWindow.Analyses; using StructureHelperCommon.Infrastructures.Exceptions; using StructureHelperCommon.Infrastructures.Interfaces; @@ -7,6 +8,7 @@ using StructureHelperCommon.Infrastructures.Settings; using StructureHelperCommon.Models.Analyses; using StructureHelperLogic.Models.Analyses; using StructureHelperLogics.Models.Analyses; +using StructureHelperLogics.Models.BeamShears; using StructureHelperLogics.Models.CrossSections; using System; using System.Collections.Generic; @@ -220,12 +222,23 @@ namespace StructureHelper.Windows.MainWindow { ProcessCrossSection(crossSection); } + else if (version.AnalysisVersion is IBeamShear beamShear) + { + ProcessBeamShear(beamShear); + } else { throw new StructureHelperException(ErrorStrings.ObjectTypeIsUnknownObj(version)); } } + private void ProcessBeamShear(IBeamShear beamShear) + { + BeamShearViewModel viewModel = new BeamShearViewModel(beamShear); + var window = new BeamShearView(viewModel); + window.ShowDialog(); + } + private void ProcessCrossSection(ICrossSection crossSection) { var window = new CrossSectionView(crossSection); diff --git a/StructureHelper/Windows/MainWindow/CrossSectionView.xaml b/StructureHelper/Windows/MainWindow/CrossSectionView.xaml index 9164902..db4096c 100644 --- a/StructureHelper/Windows/MainWindow/CrossSectionView.xaml +++ b/StructureHelper/Windows/MainWindow/CrossSectionView.xaml @@ -15,7 +15,7 @@ xmlns:sys="clr-namespace:System;assembly=mscorlib" mc:Ignorable="d" d:DataContext="{d:DesignInstance local:CrossSectionViewModel}" - Title="StructureHelper" Height="700" Width="1000" MinHeight="400" MinWidth="600" WindowStartupLocation="CenterScreen"> + Title="Cross-Section NDM Analysis" Height="700" Width="1000" MinHeight="400" MinWidth="600" WindowStartupLocation="CenterScreen"> @@ -27,48 +27,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -287,7 +245,7 @@ - + diff --git a/StructureHelper/Windows/MainWindow/Materials/HeadMaterialView.xaml.cs b/StructureHelper/Windows/MainWindow/Materials/HeadMaterialView.xaml.cs index b7047d0..fd68c2a 100644 --- a/StructureHelper/Windows/MainWindow/Materials/HeadMaterialView.xaml.cs +++ b/StructureHelper/Windows/MainWindow/Materials/HeadMaterialView.xaml.cs @@ -1,6 +1,7 @@ using StructureHelper.Models.Materials; using StructureHelper.Windows.ViewModels.Materials; using StructureHelperCommon.Infrastructures.Exceptions; +using StructureHelperCommon.Models.Materials; using StructureHelperLogics.Models.Materials; using System; using System.Collections.Generic; diff --git a/StructureHelper/Windows/ViewModels/Materials/ConcreteViewModel.cs b/StructureHelper/Windows/ViewModels/Materials/ConcreteViewModel.cs index f9d3f79..cc22fb2 100644 --- a/StructureHelper/Windows/ViewModels/Materials/ConcreteViewModel.cs +++ b/StructureHelper/Windows/ViewModels/Materials/ConcreteViewModel.cs @@ -3,6 +3,7 @@ using StructureHelper.Infrastructure; using StructureHelperCommon.Infrastructures.Enums; using StructureHelperCommon.Infrastructures.Exceptions; using StructureHelperCommon.Infrastructures.Settings; +using StructureHelperCommon.Models.Materials; using StructureHelperCommon.Models.Materials.Libraries; using StructureHelperLogics.Models.Materials; using System; diff --git a/StructureHelper/Windows/ViewModels/Materials/HeadMaterialViewModel.cs b/StructureHelper/Windows/ViewModels/Materials/HeadMaterialViewModel.cs index d02ebd8..a4e1df6 100644 --- a/StructureHelper/Windows/ViewModels/Materials/HeadMaterialViewModel.cs +++ b/StructureHelper/Windows/ViewModels/Materials/HeadMaterialViewModel.cs @@ -2,6 +2,7 @@ using StructureHelper.Models.Materials; using StructureHelper.Windows.AddMaterialWindow; using StructureHelperCommon.Infrastructures.Exceptions; +using StructureHelperCommon.Models.Materials; using StructureHelperCommon.Models.Materials.Libraries; using StructureHelperCommon.Services.ColorServices; using StructureHelperLogics.Models.Materials; diff --git a/StructureHelper/Windows/ViewModels/Materials/HeadMaterialsViewModel.cs b/StructureHelper/Windows/ViewModels/Materials/HeadMaterialsViewModel.cs index 61a664c..4d993ae 100644 --- a/StructureHelper/Windows/ViewModels/Materials/HeadMaterialsViewModel.cs +++ b/StructureHelper/Windows/ViewModels/Materials/HeadMaterialsViewModel.cs @@ -6,6 +6,7 @@ using StructureHelper.Windows.MainWindow; using StructureHelper.Windows.MainWindow.Materials; using StructureHelperCommon.Infrastructures.Enums; using StructureHelperCommon.Infrastructures.Settings; +using StructureHelperCommon.Models.Materials; using StructureHelperCommon.Models.Materials.Libraries; using StructureHelperCommon.Services.ColorServices; using StructureHelperLogics.Models.Materials; diff --git a/StructureHelper/Windows/ViewModels/Materials/ReinforcementViewModel.cs b/StructureHelper/Windows/ViewModels/Materials/ReinforcementViewModel.cs index a5fc79c..5612093 100644 --- a/StructureHelper/Windows/ViewModels/Materials/ReinforcementViewModel.cs +++ b/StructureHelper/Windows/ViewModels/Materials/ReinforcementViewModel.cs @@ -1,6 +1,7 @@ using StructureHelperCommon.Infrastructures.Exceptions; using StructureHelperCommon.Infrastructures.Settings; using StructureHelperCommon.Models.Codes; +using StructureHelperCommon.Models.Materials; using StructureHelperCommon.Models.Materials.Libraries; using StructureHelperLogics.Models.Materials; using System; diff --git a/StructureHelperCommon/Infrastructures/Interfaces/IHasBeamShearActions.cs b/StructureHelperCommon/Infrastructures/Interfaces/IHasBeamShearActions.cs index 7079896..a2c4024 100644 --- a/StructureHelperCommon/Infrastructures/Interfaces/IHasBeamShearActions.cs +++ b/StructureHelperCommon/Infrastructures/Interfaces/IHasBeamShearActions.cs @@ -13,5 +13,6 @@ namespace StructureHelperCommon.Infrastructures.Interfaces public interface IHasBeamShearActions { List BeamShearActions { get; } + void DeleteAction(IBeamShearAction action); } } diff --git a/StructureHelperCommon/Models/Materials/IDirectMaterialStrength.cs b/StructureHelperCommon/Models/Materials/IDirectMaterialStrength.cs new file mode 100644 index 0000000..99d6f11 --- /dev/null +++ b/StructureHelperCommon/Models/Materials/IDirectMaterialStrength.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace StructureHelperCommon.Models.Materials +{ + public interface IDirectMaterialStrength + { + } +} diff --git a/StructureHelperCommon/Models/Materials/IHasSafetyFactors.cs b/StructureHelperCommon/Models/Materials/IHasSafetyFactors.cs index de280ba..c1d37ca 100644 --- a/StructureHelperCommon/Models/Materials/IHasSafetyFactors.cs +++ b/StructureHelperCommon/Models/Materials/IHasSafetyFactors.cs @@ -1,7 +1,7 @@ using StructureHelperCommon.Models.Materials.Libraries; using System.Collections.Generic; -namespace StructureHelperLogics.Models.Materials +namespace StructureHelperCommon.Models.Materials { public interface IHasSafetyFactors { diff --git a/StructureHelperCommon/Models/Materials/IHeadMaterial.cs b/StructureHelperCommon/Models/Materials/IHeadMaterial.cs index af722d0..1eac425 100644 --- a/StructureHelperCommon/Models/Materials/IHeadMaterial.cs +++ b/StructureHelperCommon/Models/Materials/IHeadMaterial.cs @@ -1,7 +1,7 @@ using LoaderCalculator.Data.Materials; using StructureHelperCommon.Infrastructures.Enums; using StructureHelperCommon.Infrastructures.Interfaces; -using StructureHelperLogics.Models.Materials; +using StructureHelperCommon.Models.Materials; using System; using System.Windows.Media; diff --git a/StructureHelperCommon/Models/Materials/IHelperMaterial.cs b/StructureHelperCommon/Models/Materials/IHelperMaterial.cs index e1f0563..ac3614b 100644 --- a/StructureHelperCommon/Models/Materials/IHelperMaterial.cs +++ b/StructureHelperCommon/Models/Materials/IHelperMaterial.cs @@ -1,13 +1,9 @@ using LoaderCalculator.Data.Materials; using StructureHelperCommon.Infrastructures.Enums; using StructureHelperCommon.Infrastructures.Interfaces; -using StructureHelperCommon.Models.Materials.Libraries; -using StructureHelperLogics.Models.Materials; using System; -using System.Collections.Generic; -using System.Text; -namespace StructureHelperLogics.Models.Materials +namespace StructureHelperCommon.Models.Materials { public interface IHelperMaterial : ISaveable, ICloneable, IHasSafetyFactors { diff --git a/StructureHelperCommon/Models/Materials/ILibMaterial.cs b/StructureHelperCommon/Models/Materials/ILibMaterial.cs index 05f6c8c..7b16702 100644 --- a/StructureHelperCommon/Models/Materials/ILibMaterial.cs +++ b/StructureHelperCommon/Models/Materials/ILibMaterial.cs @@ -1,18 +1,20 @@ using StructureHelperCommon.Infrastructures.Enums; using StructureHelperCommon.Models.Materials; using StructureHelperCommon.Models.Materials.Libraries; -using StructureHelperLogics.Models.Materials; -using System; using System.Collections.Generic; -using System.Text; -namespace StructureHelperLogics.Models.Materials +//Copyright (c) 2025 Redikultsev Evgeny, Ekaterinburg, Russia +//All rights reserved. + +namespace StructureHelperCommon.Models.Materials { - public interface ILibMaterial : IHelperMaterial + /// + /// Implements logic for library material + /// + public interface ILibMaterial : IHelperMaterial, IMaterialStrength { ILibMaterialEntity MaterialEntity { get; set; } IMaterialLogic MaterialLogic { get; set; } List MaterialLogics { get; } - (double Compressive, double Tensile) GetStrength(LimitStates limitState, CalcTerms calcTerm); } } diff --git a/StructureHelperCommon/Models/Materials/IMaterialStrength.cs b/StructureHelperCommon/Models/Materials/IMaterialStrength.cs new file mode 100644 index 0000000..d2af966 --- /dev/null +++ b/StructureHelperCommon/Models/Materials/IMaterialStrength.cs @@ -0,0 +1,9 @@ +using StructureHelperCommon.Infrastructures.Enums; + +namespace StructureHelperCommon.Models.Materials +{ + public interface IMaterialStrength + { + (double Compressive, double Tensile) GetStrength(LimitStates limitState, CalcTerms calcTerm); + } +} \ No newline at end of file diff --git a/StructureHelperCommon/Models/Materials/IMaterialStrengthByLibMaterial.cs b/StructureHelperCommon/Models/Materials/IMaterialStrengthByLibMaterial.cs new file mode 100644 index 0000000..562e3fb --- /dev/null +++ b/StructureHelperCommon/Models/Materials/IMaterialStrengthByLibMaterial.cs @@ -0,0 +1,14 @@ +using StructureHelperCommon.Infrastructures.Interfaces; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace StructureHelperCommon.Models.Materials +{ + public interface IMaterialStrengthByLibMaterial : ISaveable, ICloneable, IMaterialStrength + { + ILibMaterial LibMaterial { get; } + } +} diff --git a/StructureHelperCommon/Models/Materials/MaterialStrengthByLibMaterial.cs b/StructureHelperCommon/Models/Materials/MaterialStrengthByLibMaterial.cs new file mode 100644 index 0000000..36b6796 --- /dev/null +++ b/StructureHelperCommon/Models/Materials/MaterialStrengthByLibMaterial.cs @@ -0,0 +1,33 @@ +using StructureHelperCommon.Infrastructures.Enums; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace StructureHelperCommon.Models.Materials +{ + public class MaterialStrengthByLibMaterial : IMaterialStrengthByLibMaterial + { + public Guid Id { get; } + public ILibMaterial LibMaterial { get; } + + public MaterialStrengthByLibMaterial(Guid id, ILibMaterial libMaterial) + { + Id = id; + LibMaterial = libMaterial; + } + + + + public (double Compressive, double Tensile) GetStrength(LimitStates limitState, CalcTerms calcTerm) + { + return LibMaterial.GetStrength(limitState, calcTerm); + } + + public object Clone() + { + throw new NotImplementedException(); + } + } +} diff --git a/StructureHelperCommon/StructureHelperCommon.csproj b/StructureHelperCommon/StructureHelperCommon.csproj index 5300505..233784a 100644 --- a/StructureHelperCommon/StructureHelperCommon.csproj +++ b/StructureHelperCommon/StructureHelperCommon.csproj @@ -20,4 +20,8 @@ + + + + diff --git a/StructureHelperLogics/Models/BeamShears/BeamShearCalculator.cs b/StructureHelperLogics/Models/BeamShears/BeamShearCalculator.cs index 0c873f9..663b773 100644 --- a/StructureHelperLogics/Models/BeamShears/BeamShearCalculator.cs +++ b/StructureHelperLogics/Models/BeamShears/BeamShearCalculator.cs @@ -9,10 +9,10 @@ using System.Threading.Tasks; namespace StructureHelperLogics.Models.BeamShears { - internal class BeamShearCalculator : IBeamShearCalculator + public class BeamShearCalculator : IBeamShearCalculator { private ICheckInputDataLogic checkInputDataLogic; - IGetResultByInputDataLogic calculationLogic; + private IGetResultByInputDataLogic calculationLogic; private IBeamShearCalculatorResult result; public Guid Id { get; } @@ -23,6 +23,10 @@ namespace StructureHelperLogics.Models.BeamShears public IShiftTraceLogger? TraceLogger { get; set; } + public BeamShearCalculator(Guid id) + { + Id = id; + } public object Clone() { diff --git a/StructureHelperLogics/Models/BeamShears/BeamShearCalculatorInputData.cs b/StructureHelperLogics/Models/BeamShears/BeamShearCalculatorInputData.cs index 636a785..c06dafb 100644 --- a/StructureHelperLogics/Models/BeamShears/BeamShearCalculatorInputData.cs +++ b/StructureHelperLogics/Models/BeamShears/BeamShearCalculatorInputData.cs @@ -26,5 +26,19 @@ namespace StructureHelperLogics.Models.BeamShears Id = id; } + public void DeleteAction(IBeamShearAction action) + { + //nothing to do + } + + public void DeleteSection(IBeamShearSection section) + { + //nothing to do + } + + public void DeleteStirrup(IStirrup stirrup) + { + //nothing to do + } } } diff --git a/StructureHelperLogics/Models/BeamShears/BeamShearRepository.cs b/StructureHelperLogics/Models/BeamShears/BeamShearRepository.cs index 1c8a191..c0b965b 100644 --- a/StructureHelperLogics/Models/BeamShears/BeamShearRepository.cs +++ b/StructureHelperLogics/Models/BeamShears/BeamShearRepository.cs @@ -1,4 +1,5 @@ -using StructureHelperCommon.Models.Calculators; +using StructureHelperCommon.Infrastructures.Interfaces; +using StructureHelperCommon.Models.Calculators; using StructureHelperCommon.Models.Forces; using System; using System.Collections.Generic; @@ -13,7 +14,7 @@ namespace StructureHelperLogics.Models.BeamShears public Guid Id { get; } - public List BeamShearActions {get;} + public List BeamShearActions { get; } = new(); public List Calculators { get; } = new(); @@ -44,5 +45,48 @@ namespace StructureHelperLogics.Models.BeamShears { throw new NotImplementedException(); } + + public void DeleteSection(IBeamShearSection section) + { + foreach (var calculator in Calculators) + { + if (calculator is IBeamShearCalculator beamShearCalculator) + { + if (beamShearCalculator.InputData.ShearSections.Contains(section)) + { + beamShearCalculator.InputData.DeleteSection(section); + beamShearCalculator.InputData.ShearSections.Remove(section); + } + } + } + } + public void DeleteAction(IBeamShearAction action) + { + foreach (var calculator in Calculators) + { + if (calculator is IBeamShearCalculator beamShearCalculator) + { + if (beamShearCalculator.InputData.BeamShearActions.Contains(action)) + { + beamShearCalculator.InputData.DeleteAction(action); + beamShearCalculator.InputData.BeamShearActions.Remove(action); + } + } + } + } + public void DeleteStirrup(IStirrup stirrup) + { + foreach (var calculator in Calculators) + { + if (calculator is IBeamShearCalculator beamShearCalculator) + { + if (beamShearCalculator.InputData.Stirrups.Contains(stirrup)) + { + beamShearCalculator.InputData.DeleteStirrup(stirrup); + beamShearCalculator.InputData.Stirrups.Remove(stirrup); + } + } + } + } } } diff --git a/StructureHelperLogics/Models/BeamShears/BeamShearSection.cs b/StructureHelperLogics/Models/BeamShears/BeamShearSection.cs index 7912a30..0a4a7a8 100644 --- a/StructureHelperLogics/Models/BeamShears/BeamShearSection.cs +++ b/StructureHelperLogics/Models/BeamShears/BeamShearSection.cs @@ -1,10 +1,6 @@ -using StructureHelperCommon.Models.Shapes; +using StructureHelperCommon.Models.Materials; +using StructureHelperCommon.Models.Shapes; using StructureHelperLogics.Models.Materials; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; namespace StructureHelperLogics.Models.BeamShears { @@ -12,16 +8,17 @@ namespace StructureHelperLogics.Models.BeamShears { public Guid Id { get; } public string? Name { get; set; } - public IConcreteLibMaterial Material { get; set; } - - public IShape Shape { get; } + /// + public IMaterialStrength MaterialStrength { get; } = new MaterialStrengthByLibMaterial(Guid.NewGuid(), new ConcreteLibMaterial(Guid.NewGuid())); + /// + public IShape Shape { get; } = new RectangleShape(Guid.NewGuid()) { Height = 0.6, Width = 0.4}; public double CenterCover { get; set; } - public BeamShearSection(Guid id, IShape shape) + + public BeamShearSection(Guid id) { Id = id; - Shape = shape; } public object Clone() diff --git a/StructureHelperLogics/Models/BeamShears/Factories/BeamShearTemplatesFactory.cs b/StructureHelperLogics/Models/BeamShears/Factories/BeamShearTemplatesFactory.cs new file mode 100644 index 0000000..24b2137 --- /dev/null +++ b/StructureHelperLogics/Models/BeamShears/Factories/BeamShearTemplatesFactory.cs @@ -0,0 +1,43 @@ +using StructureHelperCommon.Infrastructures.Exceptions; +using StructureHelperCommon.Models.Forces; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace StructureHelperLogics.Models.BeamShears +{ + public enum ShearSectionTemplateTypes + { + Rectangle, + } + public static class BeamShearTemplatesFactory + { + public static IBeamShearRepository GetTemplateRepository(ShearSectionTemplateTypes templateType) + { + if (templateType is ShearSectionTemplateTypes.Rectangle) + { + return GetRectangleSection(); + } + else + { + throw new StructureHelperException(ErrorStrings.ObjectTypeIsUnknownObj(templateType)); + } + } + + private static IBeamShearRepository GetRectangleSection() + { + BeamShearRepository shearRepository = new(Guid.Empty); + BeamShearSection section = new(Guid.Empty) { Name = "New shear section"}; + shearRepository.ShearSections.Add(section); + StirrupByUniformRebar stirrupByUniformRebar = new(Guid.Empty) { Name = "New uniform stirrup"}; + shearRepository.Stirrups.Add(stirrupByUniformRebar); + BeamShearCalculator beamShearCalculator = new(Guid.Empty) { Name = "New shear calculator"}; + beamShearCalculator.InputData.ShearSections.Add(section); + beamShearCalculator.InputData.Stirrups.Add(stirrupByUniformRebar); + shearRepository.Calculators.Add(beamShearCalculator); + return shearRepository; + } + } +} diff --git a/StructureHelperLogics/Models/BeamShears/IBeamShearSection.cs b/StructureHelperLogics/Models/BeamShears/IBeamShearSection.cs index 1e85e71..bab54a7 100644 --- a/StructureHelperLogics/Models/BeamShears/IBeamShearSection.cs +++ b/StructureHelperLogics/Models/BeamShears/IBeamShearSection.cs @@ -1,4 +1,5 @@ using StructureHelperCommon.Infrastructures.Interfaces; +using StructureHelperCommon.Models.Materials; using StructureHelperCommon.Models.Shapes; using StructureHelperLogics.Models.Materials; using System; @@ -18,11 +19,11 @@ namespace StructureHelperLogics.Models.BeamShears /// /// Concrete of cross-section /// - IConcreteLibMaterial Material { get; set; } + IMaterialStrength MaterialStrength { get;} /// /// Shape of cross-section /// - IShape Shape {get;} + IShape Shape { get; } /// /// Distance from edge of tension zone to center of the nearest reinforcement bar /// diff --git a/StructureHelperLogics/Models/BeamShears/IHasBeamShearSections.cs b/StructureHelperLogics/Models/BeamShears/IHasBeamShearSections.cs index 0410d5b..e8ca165 100644 --- a/StructureHelperLogics/Models/BeamShears/IHasBeamShearSections.cs +++ b/StructureHelperLogics/Models/BeamShears/IHasBeamShearSections.cs @@ -9,5 +9,6 @@ namespace StructureHelperLogics.Models.BeamShears public interface IHasBeamShearSections { List ShearSections { get; } + void DeleteSection(IBeamShearSection section); } } diff --git a/StructureHelperLogics/Models/BeamShears/IHasStirrups.cs b/StructureHelperLogics/Models/BeamShears/IHasStirrups.cs index 6faf9c0..17eb78d 100644 --- a/StructureHelperLogics/Models/BeamShears/IHasStirrups.cs +++ b/StructureHelperLogics/Models/BeamShears/IHasStirrups.cs @@ -9,5 +9,6 @@ namespace StructureHelperLogics.Models.BeamShears public interface IHasStirrups { List Stirrups { get; } + void DeleteStirrup(IStirrup stirrup); } } diff --git a/StructureHelperLogics/Models/BeamShears/Logics/BeamShearRepositoryAddUpdateStrategy.cs b/StructureHelperLogics/Models/BeamShears/Logics/BeamShearRepositoryAddUpdateStrategy.cs new file mode 100644 index 0000000..c3c574a --- /dev/null +++ b/StructureHelperLogics/Models/BeamShears/Logics/BeamShearRepositoryAddUpdateStrategy.cs @@ -0,0 +1,20 @@ +using StructureHelperCommon.Infrastructures.Exceptions; +using StructureHelperCommon.Infrastructures.Interfaces; +using StructureHelperCommon.Services; + +namespace StructureHelperLogics.Models.BeamShears +{ + public class BeamShearRepositoryAddUpdateStrategy : IUpdateStrategy + { + public void Update(IBeamShearRepository targetObject, IBeamShearRepository sourceObject) + { + CheckObject.IsNull(sourceObject, ErrorStrings.SourceObject); + CheckObject.IsNull(targetObject, ErrorStrings.TargetObject); + if (ReferenceEquals(targetObject, sourceObject)) { return; }; + targetObject.BeamShearActions.AddRange(sourceObject.BeamShearActions); + targetObject.ShearSections.AddRange(sourceObject.ShearSections); + targetObject.Stirrups.AddRange(sourceObject.Stirrups); + targetObject.Calculators.AddRange(sourceObject.Calculators); + } + } +} diff --git a/StructureHelperLogics/Models/BeamShears/StirrupByUniformRebar.cs b/StructureHelperLogics/Models/BeamShears/StirrupByUniformRebar.cs index 6b79ad6..eb0826b 100644 --- a/StructureHelperLogics/Models/BeamShears/StirrupByUniformRebar.cs +++ b/StructureHelperLogics/Models/BeamShears/StirrupByUniformRebar.cs @@ -12,6 +12,7 @@ namespace StructureHelperLogics.Models.BeamShears { /// public Guid Id { get; } + public string? Name { get; set; } /// public IReinforcementLibMaterial Material { get; set; } @@ -24,6 +25,10 @@ namespace StructureHelperLogics.Models.BeamShears /// public double CompressedGap { get; set; } = 0; + public StirrupByUniformRebar(Guid id) + { + Id = id; + } public object Clone() { diff --git a/StructureHelperLogics/Models/Materials/HeadMaterial.cs b/StructureHelperLogics/Models/Materials/HeadMaterial.cs index 6584393..9e638b2 100644 --- a/StructureHelperLogics/Models/Materials/HeadMaterial.cs +++ b/StructureHelperLogics/Models/Materials/HeadMaterial.cs @@ -1,16 +1,10 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Linq; -using System.Text; -using System.Threading; -using System.Threading.Tasks; -using System.Windows; -using System.Windows.Media; -using LoaderCalculator.Data.Materials; +using LoaderCalculator.Data.Materials; using StructureHelperCommon.Infrastructures.Enums; +using StructureHelperCommon.Models.Materials; using StructureHelperCommon.Services.ColorServices; using StructureHelperLogics.Models.Materials; +using System.ComponentModel; +using System.Windows.Media; namespace StructureHelper.Models.Materials { diff --git a/StructureHelperLogics/Models/Materials/IConcreteLibMaterial.cs b/StructureHelperLogics/Models/Materials/IConcreteLibMaterial.cs index 1b8c339..45be282 100644 --- a/StructureHelperLogics/Models/Materials/IConcreteLibMaterial.cs +++ b/StructureHelperLogics/Models/Materials/IConcreteLibMaterial.cs @@ -6,8 +6,16 @@ using System.Linq; using System.Text; using System.Threading.Tasks; + +//Copyright (c) 2025 Redikultsev Evgeny, Ekaterinburg, Russia +//All rights reserved. + + namespace StructureHelperLogics.Models.Materials { + /// + /// Implements logic for library concrete material + /// public interface IConcreteLibMaterial : ILibMaterial, ICrackedMaterial { /// diff --git a/StructureHelperLogics/Models/Materials/IElasticMaterial.cs b/StructureHelperLogics/Models/Materials/IElasticMaterial.cs index 28bdf41..483015e 100644 --- a/StructureHelperLogics/Models/Materials/IElasticMaterial.cs +++ b/StructureHelperLogics/Models/Materials/IElasticMaterial.cs @@ -1,4 +1,5 @@ -using StructureHelperCommon.Models.Materials.Libraries; +using StructureHelperCommon.Models.Materials; +using StructureHelperCommon.Models.Materials.Libraries; using System; using System.Collections.Generic; using System.Linq; diff --git a/StructureHelperLogics/Models/Materials/IReinforcementLibMaterial.cs b/StructureHelperLogics/Models/Materials/IReinforcementLibMaterial.cs index 7470504..281253d 100644 --- a/StructureHelperLogics/Models/Materials/IReinforcementLibMaterial.cs +++ b/StructureHelperLogics/Models/Materials/IReinforcementLibMaterial.cs @@ -1,4 +1,5 @@ -using System; +using StructureHelperCommon.Models.Materials; +using System; using System.Collections.Generic; using System.Linq; using System.Text; diff --git a/StructureHelperLogics/Models/Materials/Logics/ConcreteLibUpdateStrategy.cs b/StructureHelperLogics/Models/Materials/Logics/ConcreteLibUpdateStrategy.cs index 5e5e721..932c61a 100644 --- a/StructureHelperLogics/Models/Materials/Logics/ConcreteLibUpdateStrategy.cs +++ b/StructureHelperLogics/Models/Materials/Logics/ConcreteLibUpdateStrategy.cs @@ -1,10 +1,6 @@ using StructureHelperCommon.Infrastructures.Interfaces; +using StructureHelperCommon.Models.Materials; using StructureHelperCommon.Services; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; namespace StructureHelperLogics.Models.Materials { diff --git a/StructureHelperLogics/Models/Materials/Logics/HeadMaterialUpdateStrategy.cs b/StructureHelperLogics/Models/Materials/Logics/HeadMaterialUpdateStrategy.cs index a7ca8b4..5409c6b 100644 --- a/StructureHelperLogics/Models/Materials/Logics/HeadMaterialUpdateStrategy.cs +++ b/StructureHelperLogics/Models/Materials/Logics/HeadMaterialUpdateStrategy.cs @@ -1,5 +1,6 @@ using StructureHelper.Models.Materials; using StructureHelperCommon.Infrastructures.Interfaces; +using StructureHelperCommon.Models.Materials; using StructureHelperCommon.Services; namespace StructureHelperLogics.Models.Materials diff --git a/StructureHelperLogics/Models/Materials/Logics/HelperMaterialSafetyFactorsUpdateStrategy.cs b/StructureHelperLogics/Models/Materials/Logics/HelperMaterialSafetyFactorsUpdateStrategy.cs index dfd32ad..1d2b7e5 100644 --- a/StructureHelperLogics/Models/Materials/Logics/HelperMaterialSafetyFactorsUpdateStrategy.cs +++ b/StructureHelperLogics/Models/Materials/Logics/HelperMaterialSafetyFactorsUpdateStrategy.cs @@ -1,4 +1,5 @@ using StructureHelperCommon.Infrastructures.Interfaces; +using StructureHelperCommon.Models.Materials; using StructureHelperCommon.Models.Materials.Libraries; using StructureHelperCommon.Services; using System; diff --git a/StructureHelperLogics/Models/Materials/Logics/HelperMaterialUpdateStrategy.cs b/StructureHelperLogics/Models/Materials/Logics/HelperMaterialUpdateStrategy.cs index e688fce..e0f9fe3 100644 --- a/StructureHelperLogics/Models/Materials/Logics/HelperMaterialUpdateStrategy.cs +++ b/StructureHelperLogics/Models/Materials/Logics/HelperMaterialUpdateStrategy.cs @@ -1,5 +1,6 @@ using StructureHelperCommon.Infrastructures.Exceptions; using StructureHelperCommon.Infrastructures.Interfaces; +using StructureHelperCommon.Models.Materials; using StructureHelperCommon.Models.Materials.Libraries; using StructureHelperCommon.Services; using StructureHelperLogics.Models.Materials.Logics; diff --git a/StructureHelperLogics/Models/Materials/Logics/LibMaterialUpdateStrategy.cs b/StructureHelperLogics/Models/Materials/Logics/LibMaterialUpdateStrategy.cs index 843919d..1eb3873 100644 --- a/StructureHelperLogics/Models/Materials/Logics/LibMaterialUpdateStrategy.cs +++ b/StructureHelperLogics/Models/Materials/Logics/LibMaterialUpdateStrategy.cs @@ -1,11 +1,9 @@ using StructureHelperCommon.Infrastructures.Interfaces; -using StructureHelperCommon.Models.Materials.Libraries; +using StructureHelperCommon.Models.Materials; using StructureHelperCommon.Services; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; + +//Copyright (c) 2025 Redikultsev Evgeny, Ekaterinburg, Russia +//All rights reserved. namespace StructureHelperLogics.Models.Materials { diff --git a/StructureHelperLogics/Models/Materials/Logics/ReinforcementLibUpdateStrategy.cs b/StructureHelperLogics/Models/Materials/Logics/ReinforcementLibUpdateStrategy.cs index 90dbd59..8888bb1 100644 --- a/StructureHelperLogics/Models/Materials/Logics/ReinforcementLibUpdateStrategy.cs +++ b/StructureHelperLogics/Models/Materials/Logics/ReinforcementLibUpdateStrategy.cs @@ -1,10 +1,9 @@ using StructureHelperCommon.Infrastructures.Interfaces; +using StructureHelperCommon.Models.Materials; using StructureHelperCommon.Services; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; + +//Copyright (c) 2025 Redikultsev Evgeny, Ekaterinburg, Russia +//All rights reserved. namespace StructureHelperLogics.Models.Materials { diff --git a/StructureHelperLogics/Models/Materials/TraceMaterialsFactory.cs b/StructureHelperLogics/Models/Materials/TraceMaterialsFactory.cs index d80ae0d..4b7af43 100644 --- a/StructureHelperLogics/Models/Materials/TraceMaterialsFactory.cs +++ b/StructureHelperLogics/Models/Materials/TraceMaterialsFactory.cs @@ -1,17 +1,12 @@ -using LoaderCalculator.Data.Materials; -using StructureHelper.Models.Materials; +using StructureHelper.Models.Materials; using StructureHelperCommon.Infrastructures.Exceptions; using StructureHelperCommon.Models; +using StructureHelperCommon.Models.Materials; using StructureHelperCommon.Models.Materials.Libraries; using StructureHelperCommon.Models.Tables; -using StructureHelperLogics.NdmCalculations.Primitives; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using System.Windows.Documents; -using System.Windows.Shapes; + +//Copyright (c) 2025 Redikultsev Evgeny, Ekaterinburg, Russia +//All rights reserved. namespace StructureHelperLogics.Models.Materials { diff --git a/StructureHelperTests/UnitTests/MaterialTests/MaterialStrengthTest.cs b/StructureHelperTests/UnitTests/MaterialTests/MaterialStrengthTest.cs index c86744f..f7d0dc4 100644 --- a/StructureHelperTests/UnitTests/MaterialTests/MaterialStrengthTest.cs +++ b/StructureHelperTests/UnitTests/MaterialTests/MaterialStrengthTest.cs @@ -1,6 +1,7 @@ using NUnit.Framework; using StructureHelperCommon.Infrastructures.Enums; using StructureHelperCommon.Infrastructures.Settings; +using StructureHelperCommon.Models.Materials; using StructureHelperLogics.Models.Materials; namespace StructureHelperTests.UnitTests.MaterialTests diff --git a/StructureHelperTests/UnitTests/UpdateStrategiesTests/ConcreteLibUpdateStrategyTests.cs b/StructureHelperTests/UnitTests/UpdateStrategiesTests/ConcreteLibUpdateStrategyTests.cs index 10082b0..e508f0a 100644 --- a/StructureHelperTests/UnitTests/UpdateStrategiesTests/ConcreteLibUpdateStrategyTests.cs +++ b/StructureHelperTests/UnitTests/UpdateStrategiesTests/ConcreteLibUpdateStrategyTests.cs @@ -2,6 +2,7 @@ using NUnit.Framework; using StructureHelperCommon.Infrastructures.Exceptions; using StructureHelperCommon.Infrastructures.Interfaces; +using StructureHelperCommon.Models.Materials; using StructureHelperLogics.Models.Materials; using System; diff --git a/StructureHelperTests/UnitTests/UpdateStrategiesTests/HeadMaterialUpdateStrategyTests.cs b/StructureHelperTests/UnitTests/UpdateStrategiesTests/HeadMaterialUpdateStrategyTests.cs index f34727d..4a3fbc9 100644 --- a/StructureHelperTests/UnitTests/UpdateStrategiesTests/HeadMaterialUpdateStrategyTests.cs +++ b/StructureHelperTests/UnitTests/UpdateStrategiesTests/HeadMaterialUpdateStrategyTests.cs @@ -4,6 +4,7 @@ using StructureHelper.Models.Materials; using StructureHelperCommon.Infrastructures.Enums; using StructureHelperCommon.Infrastructures.Exceptions; using StructureHelperCommon.Infrastructures.Interfaces; +using StructureHelperCommon.Models.Materials; using StructureHelperCommon.Models.Materials.Libraries; using StructureHelperLogics.Models.Materials; using System;