Code development platform for open source projects from the European Union institutions :large_blue_circle: EU Login authentication by SMS will be completely phased out by mid-2025. To see alternatives please check here

Skip to content
Snippets Groups Projects
Commit 8decce4d authored by Harald Martini's avatar Harald Martini
Browse files

cleaned up viewmodel factories

parent 66a1d2d9
No related branches found
No related tags found
No related merge requests found
Showing
with 281 additions and 144 deletions
......@@ -42,7 +42,7 @@ namespace VECTO3GUI2020.Helper
if (xmlDocument == null)
return false;
var documentType = XMLHelper.GetDocumentType(xmlDocument.DocumentElement.LocalName);
var documentType = XMLHelper.GetDocumentTypeFromRootElement(xmlDocument.DocumentElement.LocalName);
if (documentType == null)
{
throw new VectoException("unknown xml file! {0}", xmlDocument.DocumentElement.LocalName);
......
......@@ -12,15 +12,17 @@ namespace VECTO3GUI2020.Ninject
public override void Load()
{
Bind<IDocumentViewModel>().To<DeclarationJobViewModel>().Named(XmlDocumentType.DeclarationJobData.ToString());
Bind<IDocumentViewModel>().To<MultiStageJobViewModel_v0_1>()
.Named(XmlDocumentType.MultistepOutputData.ToString());
//Bind<IDocumentViewModel>().To<DeclarationJobViewModel>().Named(XmlDocumentType.DeclarationJobData.ToString());
Bind<IDocumentViewModel>().To<CreateVifViewModel>()
.Named(typeof(JSONInputDataV10_PrimaryAndStageInputBus).ToString());
Bind<IDocumentViewModel>().To<CompletedBusV7ViewModel>()
.Named(typeof(JSONInputDataCompletedBusFactorMethodV7).ToString());
//Bind<IDocumentViewModel>().To<MultiStageJobViewModel_v0_1>()
// .Named(XmlDocumentType.MultistepOutputData.ToString());
//Bind<IDocumentViewModel>().To<CreateVifViewModel>()
// .Named(typeof(JSONInputDataV10_PrimaryAndStageInputBus).ToString());
//Bind<IDocumentViewModel>().To<CompletedBusV7ViewModel>()
// .Named(typeof(JSONInputDataCompletedBusFactorMethodV7).ToString());
//Bind<IDocumentViewModel>().To<MultistageJobViewModel>().Named(XmlDocumentType.MultistageOutputData.ToString());
//Bind<IDocumentViewModel>().To<DeclarationTrailerJobDocumentViewModel>().Named(XmlDocumentType.DeclarationTrailerJobData.ToString());
......
using System;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Expressions;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;
using System.Xml.Linq;
using Ninject.Extensions.Factory;
using Ninject.Extensions.NamedScope;
using Ninject.Modules;
using TUGraz.VectoCommon.InputData;
using TUGraz.VectoCommon.Resources;
using TUGraz.VectoCore.InputData.FileIO.XML;
using TUGraz.VectoCore.InputData.FileIO.XML.Declaration;
using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider.v24;
using TUGraz.VectoCore.InputData.Reader;
using TUGraz.VectoCore.Utils;
using TUGraz.VectoCore.Utils.Ninject;
using VECTO3GUI2020.Helper;
using VECTO3GUI2020.Ninject.Util;
using VECTO3GUI2020.ViewModel.Implementation.Common;
using VECTO3GUI2020.ViewModel.Implementation.Document;
using VECTO3GUI2020.ViewModel.Implementation.JobEdit;
using VECTO3GUI2020.ViewModel.Interfaces.Document;
using VECTO3GUI2020.ViewModel.Interfaces.JobEdit;
using VECTO3GUI2020.ViewModel.MultiStage.Implementation;
using VECTO3GUI2020.ViewModel.MultiStage.Interfaces;
namespace VECTO3GUI2020.Ninject
{
public class DocumentViewModelFactoryModule : NinjectModule
{
#region Overrides of NinjectModule
......@@ -47,7 +30,7 @@ namespace VECTO3GUI2020.Ninject
public override void Load()
{
Bind<IDocumentViewModelFactory>().To<DocumentViewModelFactory>().DefinesNamedScope(DocumentViewModelFactoryScope);
Bind<IDocumentViewModelFactory>().To<DocumentViewModelFactory>().Named(DocumentViewModelFactoryScope);
#region MultistepViewModel
......@@ -57,7 +40,7 @@ namespace VECTO3GUI2020.Ninject
#region DeclarationInputData
Bind<IDeclarationInputViewModelFactory>().ToFactory(() => new CombineArgumentsToNameInstanceProvider(
Bind<IDeclarationInputViewModelFactory>().ToFactory( () => new CombineArgumentsToNameInstanceProvider(true,
new [] {
new CombineArgumentsToNameInstanceProvider.MethodSettings() {
methods = new []{typeof(IDeclarationInputViewModelFactory).GetMethod(nameof(IDeclarationInputViewModelFactory.CreateDeclarationViewModel))},
......@@ -120,11 +103,7 @@ namespace VECTO3GUI2020.Ninject
Bind<IPrimaryAndStageInputViewModelFactory>().ToFactory().Named(PrimaryAndStageInputScope);
Bind<IDocumentViewModel>().To<CreateVifViewModel>().WhenParentNamed(PrimaryAndStageInputScope);
}
#endregion
}
}
......@@ -5,6 +5,7 @@ using System.Text;
using System.Threading.Tasks;
using Ninject.Extensions.Factory;
using Ninject.Modules;
using TUGraz.VectoCore;
using VECTO3GUI2020.Ninject.Util;
using VECTO3GUI2020.Util.XML.Interfaces;
using VECTO3GUI2020.ViewModel.Interfaces.Document;
......@@ -14,15 +15,20 @@ using VECTO3GUI2020.ViewModel.MultiStage.Interfaces;
namespace VECTO3GUI2020.Ninject
{
public class FactoryModule : NinjectModule
public class FactoryModule : AbstractNinjectModule
{
public override void Load()
{
LoadModule<DocumentViewModelFactoryModule>();
Bind<IXMLWriterFactory>().ToFactory(() => new UseFirstArgumentTypeAsNameInstanceProvider(fallback:true));
//Bind<IMultiStageViewModelFactory>().ToFactory(() => new UseFirstArgumentAsNameInstanceProvider(skipFirstArgument: true, fallback: true));
Bind<IJobEditViewModelFactory>().ToFactory(() => new UseFirstArgumentTypeAsNameInstanceProvider());
Bind<IDocumentViewModelFactory>().ToFactory(() => new UseFirstArgumentAsNameInstanceProvider(false));
Bind<IComponentViewModelFactory>().ToFactory(
() => new UseFirstArgumentTypeAsNameInstanceProvider(true));
......@@ -31,8 +37,8 @@ namespace VECTO3GUI2020.Ninject
InSingletonScope();
Bind<IMultiStageViewModelFactoryDefaultInstanceProvider>().
ToFactory();
Bind<IMultiStageViewModelFactoryTypeAsNameInstanceProvider>().
ToFactory(() => new UseFirstArgumentTypeAsNameInstanceProvider());
//Bind<IMultiStageViewModelFactoryTypeAsNameInstanceProvider>().
// ToFactory(() => new UseFirstArgumentTypeAsNameInstanceProvider());
Bind<IMultistageViewModelFactoryFirstParameterAsNameInstanceProvider>().ToFactory(() =>
new UseFirstArgumentAsNameInstanceProvider(skipFirstArgument: false));
......
using TUGraz.VectoCommon.InputData;
using Ninject;
using TUGraz.VectoCommon.InputData;
using TUGraz.VectoCore.InputData.FileIO.XML;
using TUGraz.VectoCore.InputData.FileIO.XML.Declaration;
using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider.v24;
using TUGraz.VectoCore.Models.Simulation;
using TUGraz.VectoCore.Utils;
using VECTO3GUI2020.ViewModel.Implementation;
using VECTO3GUI2020.ViewModel.Implementation.Common;
using VECTO3GUI2020.ViewModel.Implementation.Document;
using VECTO3GUI2020.ViewModel.Interfaces;
using VECTO3GUI2020.ViewModel.Interfaces.Common;
using VECTO3GUI2020.ViewModel.Interfaces.Document;
using VECTO3GUI2020.ViewModel.Interfaces.JobEdit.Vehicle;
......@@ -11,27 +20,26 @@ namespace VECTO3GUI2020.Ninject
public class MultiStageViewModelFactory : IMultiStageViewModelFactory
{
private IMultiStageViewModelFactoryDefaultInstanceProvider _multiStageVmFactoryDefaultInstanceProvider;
private IMultiStageViewModelFactoryTypeAsNameInstanceProvider _multiStageViewModelFactoryTypeAsNameInstanceProvider;
private IMultistageViewModelFactoryFirstParameterAsNameInstanceProvider
_multistageViewModelFactoryFirstParameterAsNameInstanceProvider;
private readonly IDocumentViewModelFactory _documentViewModelFactory;
public MultiStageViewModelFactory(IMultiStageViewModelFactoryDefaultInstanceProvider multiStageVmFactoryDefaultInstanceProvider,
IMultiStageViewModelFactoryTypeAsNameInstanceProvider multiStageViewModelFactoryTypeAsNameInstanceProvider, IMultistageViewModelFactoryFirstParameterAsNameInstanceProvider multistageViewModelFactoryFirstParameterAsNameInstanceProvider)
public MultiStageViewModelFactory(
IMultiStageViewModelFactoryDefaultInstanceProvider multiStageVmFactoryDefaultInstanceProvider,
IMultistageViewModelFactoryFirstParameterAsNameInstanceProvider multistageViewModelFactoryFirstParameterAsNameInstanceProvider,
IDocumentViewModelFactory documentViewModelFactory)
{
_multiStageVmFactoryDefaultInstanceProvider = multiStageVmFactoryDefaultInstanceProvider;
_multiStageViewModelFactoryTypeAsNameInstanceProvider = multiStageViewModelFactoryTypeAsNameInstanceProvider;
_multistageViewModelFactoryFirstParameterAsNameInstanceProvider = multistageViewModelFactoryFirstParameterAsNameInstanceProvider;
_documentViewModelFactory = documentViewModelFactory;
}
#region Implementation of IMultiStageViewModelFactoryDefaultInstanceProvider
public IDocumentViewModel GetStageInputViewModel(bool exemptedVehicle)
{
return _multiStageVmFactoryDefaultInstanceProvider.GetStageInputViewModel(exemptedVehicle);
}
public IViewModelBase GetNewMultistageJobViewModel()
{
return _multiStageVmFactoryDefaultInstanceProvider.GetNewMultistageJobViewModel();
......@@ -79,45 +87,49 @@ namespace VECTO3GUI2020.Ninject
return _multiStageVmFactoryDefaultInstanceProvider.GetAuxiliariesViewModel(consolidatedAuxiliariesInputData);
}
public ICreateVifViewModel GetCreateNewVifViewModel(bool completed)
{
return _multiStageVmFactoryDefaultInstanceProvider.GetCreateNewVifViewModel(completed);
}
//public ICreateVifViewModel GetCreateNewVifViewModel(bool completed)
//{
// return _multiStageVmFactoryDefaultInstanceProvider.GetCreateNewVifViewModel(completed);
//}
public ICreateVifViewModel GetCreateNewVifViewModel()
{
return _multiStageVmFactoryDefaultInstanceProvider.GetCreateNewVifViewModel();
}
//public ICreateVifViewModel GetCreateNewVifViewModel()
//{
// return _multiStageVmFactoryDefaultInstanceProvider.GetCreateNewVifViewModel();
//}
#endregion
#region Implementation of IMultiStageViewModelFactoryTypeAsNameInstanceProvider
public IDocumentViewModel CreateDocumentViewModel(IDeclarationInputDataProvider inputData)
{
return _multiStageViewModelFactoryTypeAsNameInstanceProvider.CreateDocumentViewModel(inputData);
}
public IDocumentViewModel CreateDocumentViewModel(IInputDataProvider inputData)
{
return _multiStageViewModelFactoryTypeAsNameInstanceProvider.CreateDocumentViewModel(inputData);
}
public IVehicleViewModel CreateStageInputVehicleViewModel(IVehicleDeclarationInputData inputData)
#region Implementation of IMultistageViewModelFactoryFirstParameterAsNameInstanceProvider
public IVehicleViewModel CreateStageInputVehicleViewModel(string inputProviderType)
{
return _multiStageViewModelFactoryTypeAsNameInstanceProvider.CreateStageInputVehicleViewModel(inputData);
return _multistageViewModelFactoryFirstParameterAsNameInstanceProvider.CreateStageInputVehicleViewModel(inputProviderType);
}
#endregion
#region Implementation of IDocumentViewModelFactory
#region Implementation of IMultistageViewModelFactoryFirstParameterAsNameInstanceProvider
public IDocumentViewModel CreateDocumentViewModel(IInputDataProvider declarationInput)
{
return _documentViewModelFactory.CreateDocumentViewModel(declarationInput);
}
public IVehicleViewModel CreateStageInputVehicleViewModel(string inputProviderType)
public IDocumentViewModel GetCreateNewStepInputViewModel(bool exemptedVehicle)
{
return _multistageViewModelFactoryFirstParameterAsNameInstanceProvider.CreateStageInputVehicleViewModel(inputProviderType);
return _documentViewModelFactory.GetCreateNewStepInputViewModel(exemptedVehicle);
}
public IDocumentViewModel GetCreateNewVifViewModel(bool completed)
{
return _documentViewModelFactory.GetCreateNewVifViewModel(completed);
}
#endregion
}
}
\ No newline at end of file
......@@ -36,14 +36,14 @@ namespace VECTO3GUI2020.Ninject
Bind<IMultistageDependencies>().To<MultistageLazyDependencies>();
Bind<ICreateVifViewModel>().To<CreateVifViewModel>().
NamedLikeFactoryMethod((IMultiStageViewModelFactory f) => f.GetCreateNewVifViewModel());
//Bind<ICreateVifViewModel>().To<CreateVifViewModel>().
// NamedLikeFactoryMethod((IMultiStageViewModelFactory f) => f.GetCreateNewVifViewModel());
Bind<IDocumentViewModel>().To<StageInputViewModel>()
.Named(typeof(XMLDeclarationInputDataProviderV20).ToString());
//Bind<IDocumentViewModel>().To<StageInputViewModel>()
// .Named(typeof(XMLDeclarationInputDataProviderV20).ToString());
Bind<IDocumentViewModel>().To<StageInputViewModel>()
.NamedLikeFactoryMethod((IMultiStageViewModelFactory f) => f.GetStageInputViewModel(default(bool)));
//Bind<IDocumentViewModel>().To<StageInputViewModel>()
// .NamedLikeFactoryMethod((IMultiStageViewModelFactory f) => f.GetStageInputViewModel(default(bool)));
Bind<IAdditionalJobInfoViewModel>().To<AdditionalJobInfoViewModelMultiStage>()
.WhenInjectedInto(typeof(IMultiStageJobViewModel));
......
using Ninject.Extensions.Factory;
using Ninject.Modules;
using TUGraz.VectoCore.InputData.FileIO.XML.Declaration;
using VECTO3GUI2020.Model.Multistage;
using VECTO3GUI2020.ViewModel.Implementation.Common;
using VECTO3GUI2020.ViewModel.Interfaces.Common;
using VECTO3GUI2020.ViewModel.Interfaces.Document;
using VECTO3GUI2020.ViewModel.Interfaces.JobEdit.Vehicle;
using VECTO3GUI2020.ViewModel.MultiStage.Implementation;
using VECTO3GUI2020.ViewModel.MultiStage.Interfaces;
namespace VECTO3GUI2020.Ninject
{
// public class MultistageViewModelModule : NinjectModule
// {
// public override void Load()
// {
// Bind<IViewModelBase>().To<NewMultiStageJobViewModel>().
// NamedLikeFactoryMethod((IMultiStageViewModelFactory f) => f.GetNewMultistageJobViewModel());
// Bind<IMultiStageJobViewModel>().To<MultiStageJobViewModel_v0_1>().
// NamedLikeFactoryMethod((IMultiStageViewModelFactory f) => f.GetMultiStageJobViewModel(null));
// Bind<IVehicleViewModel>().To<InterimStageBusVehicleViewModel_v2_8>().
// NamedLikeFactoryMethod((IMultiStageViewModelFactory f)=>f.GetInterimStageVehicleViewModel());
// Bind<IManufacturingStageViewModel>().To<ManufacturingStageViewModel_v0_1>().
// NamedLikeFactoryMethod((IMultiStageViewModelFactory f) => f.GetManufacturingStageViewModel(null, false));
// Bind<IMultistageAirdragViewModel>().To<MultistageAirdragViewModel>().
// NamedLikeFactoryMethod((IMultiStageViewModelFactory f) => f.GetMultistageAirdragViewModel());
// Bind<IMultistageAuxiliariesViewModel>().To<MultistageAuxiliariesViewModel>().
// NamedLikeFactoryMethod((IMultiStageViewModelFactory f) => f.GetAuxiliariesViewModel(null));
// Bind<IMultistageDependencies>().To<MultistageLazyDependencies>();
// Bind<ICreateVifViewModel>().To<CreateVifViewModel>().
// NamedLikeFactoryMethod((IMultiStageViewModelFactory f) => f.GetCreateNewVifViewModel());
// Bind<IDocumentViewModel>().To<StageInputViewModel>()
// .Named(typeof(XMLDeclarationInputDataProviderV20).ToString());
// Bind<IDocumentViewModel>().To<StageInputViewModel>()
// .NamedLikeFactoryMethod((IMultiStageViewModelFactory f) => f.GetStageInputViewModel(default(bool)));
// Bind<IAdditionalJobInfoViewModel>().To<AdditionalJobInfoViewModelMultiStage>()
// .WhenInjectedInto(typeof(IMultiStageJobViewModel));
// Bind<IAdditionalJobInfoViewModel>().To<AdditionalJobInfoViewModelNewVif>()
// .WhenInjectedInto(typeof(ICreateVifViewModel));
// Bind<IAdditionalJobInfoViewModel>().To<AdditionalJobInfoViewModelStageInput>()
// .WhenInjectedInto(typeof(IStageViewModelBase));
// Bind<JSONJob>().ToSelf();
// }
//}
}
using System.Windows;
using Ninject.Modules;
using TUGraz.VectoCore;
using VECTO3GUI2020.Helper;
using VECTO3GUI2020.Model.Implementation;
using VECTO3GUI2020.Model.Interfaces;
......@@ -9,12 +10,15 @@ using VECTO3GUI2020.ViewModel.Interfaces;
namespace VECTO3GUI2020.Ninject
{
public class Vecto3GUI2020Module : NinjectModule
public class Vecto3GUI2020Module : AbstractNinjectModule
{
#region Overrides of NinjectModule
public override void Load()
{
LoadModule<MultistageModule>();
Bind<IJobListViewModel>().To<JobListViewModel>().InSingletonScope();
Bind<IMainWindowViewModel>().To<MainWindowViewModel>();
......
......@@ -9,7 +9,7 @@
<ApplicationIcon>Resources\Icons\Icon2.ico</ApplicationIcon>
<UseWPF>true</UseWPF>
<UseWindowsForms>true</UseWindowsForms>
<PublishTrimmed >false</PublishTrimmed >
<PublishTrimmed>false</PublishTrimmed>
<ImportWindowsDesktopTargets>true</ImportWindowsDesktopTargets>
<TargetFrameworks>net48;net6.0-windows</TargetFrameworks>
<DefineConstants />
......@@ -107,6 +107,12 @@
<Resource Include="Resources\Images\VECTO-About.png" />
</ItemGroup>
<ItemGroup>
<Page Update="MainWindow.xaml">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Page>
</ItemGroup>
<!--Workauround for build error-->
<!--https://github.com/dotnet/wpf/pull/6680-->
......
......@@ -20,10 +20,12 @@ using TUGraz.VectoCommon.Exceptions;
using TUGraz.VectoCommon.InputData;
using TUGraz.VectoCommon.Models;
using TUGraz.VectoCommon.Resources;
using TUGraz.VectoCommon.Utils;
using TUGraz.VectoCore.Configuration;
using TUGraz.VectoCore.InputData.FileIO.JSON;
using TUGraz.VectoCore.InputData.FileIO.XML;
using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider;
using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider.v24;
using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Interfaces;
using TUGraz.VectoCore.Models.Simulation;
using TUGraz.VectoCore.Models.Simulation.Impl;
......@@ -75,7 +77,7 @@ namespace VECTO3GUI2020.ViewModel.Implementation
private IDialogHelper _dialogHelper;
private IWindowHelper _windowHelper;
private IDocumentViewModelFactory _documentViewModelFactory;
//private IDocumentViewModelFactory _documentViewModelFactory;
private IMultiStageViewModelFactory _multiStageViewModelFactory;
private readonly IXMLInputDataReader _inputDataReader;
......@@ -99,7 +101,7 @@ namespace VECTO3GUI2020.ViewModel.Implementation
}
public JobListViewModel(IDocumentViewModelFactory documentViewModelFactory,
public JobListViewModel(
IXMLInputDataReader inputDataReader,
IDialogHelper dialogHelper,
IWindowHelper windowHelper,
......@@ -107,8 +109,7 @@ namespace VECTO3GUI2020.ViewModel.Implementation
ISimulatorFactoryFactory simulatorFactoryFactory,
IOutputViewModel outputViewModel) : this()
{
_documentViewModelFactory = documentViewModelFactory;
_dialogHelper = dialogHelper;
_dialogHelper = dialogHelper;
_windowHelper = windowHelper;
_inputDataReader = inputDataReader;
_multiStageViewModelFactory = multiStageViewModelFactory;
......@@ -280,41 +281,43 @@ namespace VECTO3GUI2020.ViewModel.Implementation
private Task<IDocumentViewModel> LoadXMLFile([NotNull] string fileName)
{
var xElement = new System.Xml.XmlDocument();
xElement.Load(fileName);
var documentType = XMLHelper.GetDocumentType(xElement?.DocumentElement?.LocalName);
if (documentType == XmlDocumentType.MultistepOutputData)
{
var inputDataProvider = _inputDataReader.Create(fileName) as IMultistepBusInputDataProvider;
return Task.FromResult(_multiStageViewModelFactory.GetMultiStageJobViewModel(inputDataProvider) as IDocumentViewModel);
}
else if (documentType == XmlDocumentType.DeclarationJobData)
var documentType = XMLHelper.GetDocumentTypeFromFile(fileName);
if (!documentType.IsOneOf(XmlDocumentType.MultistepOutputData, XmlDocumentType.DeclarationJobData))
{
//Remove
var inputDataProvider = _inputDataReader.CreateDeclaration(fileName);
IDocumentViewModel result;
try
{
result = _multiStageViewModelFactory.CreateDocumentViewModel(inputDataProvider);
}
catch (Exception ex)
{
Debug.WriteLine(ex.GetInnerExceptionMessages());
result = new SimulationOnlyDeclarationJob(inputDataProvider.DataSource, inputDataProvider.JobInputData.JobName, XmlDocumentType.DeclarationJobData) as IDocumentViewModel;
}
return Task.FromResult(result);
}
else {
return Task.FromException<IDocumentViewModel>(
new VectoXMLException($"{documentType.ToString()} not supported"));
//throw new VectoXMLException($"{documentType.ToString()} not supported");
}
return null;
var inputDataProvider = _inputDataReader.CreateDeclaration(fileName);
var vm = _multiStageViewModelFactory.CreateDocumentViewModel(inputDataProvider);
return Task.FromResult(vm);
//if (documentType == XmlDocumentType.MultistepOutputData)
//{
// var inputDataProvider = _inputDataReader.Create(fileName) as IMultistepBusInputDataProvider;
// return Task.FromResult(_multiStageViewModelFactory.GetMultiStageJobViewModel(inputDataProvider) as IDocumentViewModel);
//}
//else if (documentType == XmlDocumentType.DeclarationJobData)
//{
// //Remove
// var inputDataProvider = _inputDataReader.CreateDeclaration(fileName);
// IDocumentViewModel result;
// try
// {
// result = _multiStageViewModelFactory.CreateDocumentViewModel(inputDataProvider);
// }
// catch (Exception ex)
// {
// Debug.WriteLine(ex.GetInnerExceptionMessages());
// result = new SimulationOnlyDeclarationJob(inputDataProvider.DataSource, inputDataProvider.JobInputData.JobName, XmlDocumentType.DeclarationJobData) as IDocumentViewModel;
// }
// return Task.FromResult(result);
//}
//else {
// return Task.FromException<IDocumentViewModel>(
// new VectoXMLException($"{documentType.ToString()} not supported"));
// //throw new VectoXMLException($"{documentType.ToString()} not supported");
//}
}
#endregion
......@@ -867,7 +870,7 @@ namespace VECTO3GUI2020.ViewModel.Implementation
private void NewCompletedInputCommandExecute(bool exempted)
{
var stageInputVm = _multiStageViewModelFactory.GetStageInputViewModel(exempted);
var stageInputVm = _multiStageViewModelFactory.GetCreateNewStepInputViewModel(exempted);
AddJob(stageInputVm);
......@@ -890,7 +893,9 @@ namespace VECTO3GUI2020.ViewModel.Implementation
{
return _newVifCommand ?? (_newVifCommand = new RelayCommand<bool>((b) => {
var newVifViewModel = _multiStageViewModelFactory.GetCreateNewVifViewModel(b);
lock (_jobsLock) {
//var newVifViewModel = _multiStageViewModelFactory.GetCreateNewVifViewModel(b);
lock (_jobsLock)
{
_jobs.Add(newVifViewModel);
}
_windowHelper.ShowWindow(newVifViewModel);
......
<?xml version="1.0" encoding="utf-8"?>
<ClassDiagram MajorVersion="1" MinorVersion="1">
<Class Name="VECTO3GUI2020.ViewModel.MultiStage.Implementation.StageInputViewModel">
<Position X="8" Y="3.75" Width="3.5" />
<TypeIdentifier>
<HashCode>AAAABAAABAQAAgAAEEAAAAQAAIAABIEAAAAGQACABkI=</HashCode>
<FileName>ViewModel\MultiStage\Implementation\StageInputViewModel.cs</FileName>
</TypeIdentifier>
<Lollipop Position="0.2" />
</Class>
<Class Name="VECTO3GUI2020.ViewModel.MultiStage.Implementation.MultiStageJobViewModel_v0_1">
<Position X="1.75" Y="5.5" Width="2.5" />
<TypeIdentifier>
<HashCode>GAAAFAAIBEQBAgQCBMgCAhQQEIAAAEGAEABAmYGgBgY=</HashCode>
<FileName>ViewModel\MultiStage\Implementation\MultistageJobViewModel_v0_1.cs</FileName>
</TypeIdentifier>
<Lollipop Position="0.2" />
</Class>
<Class Name="VECTO3GUI2020.ViewModel.MultiStage.Implementation.NullSumWriter" Collapsed="true">
<Position X="4.5" Y="5.5" Width="2.5" />
<TypeIdentifier>
<HashCode>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAg=</HashCode>
<FileName>ViewModel\MultiStage\Implementation\MultistageJobViewModel_v0_1.cs</FileName>
</TypeIdentifier>
</Class>
<Class Name="VECTO3GUI2020.ViewModel.MultiStage.Implementation.InterimStageBusVehicleViewModel_v2_8" BaseTypeListCollapsed="true">
<Position X="14.5" Y="5" Width="2.75" />
<TypeIdentifier>
<HashCode>GoqtjOJsdkIQU7J5C/N3qMfFnRmkC4GNAjrL18uimxo=</HashCode>
<FileName>ViewModel\MultiStage\Implementation\InterimStageBusVehicleViewModel_v2_8.cs</FileName>
</TypeIdentifier>
<Lollipop Position="0.2" Collapsed="true" />
</Class>
<Class Name="VECTO3GUI2020.ViewModel.MultiStage.Implementation.CreateVifViewModel">
<Position X="11.75" Y="5.25" Width="2" />
<TypeIdentifier>
<HashCode>BQABhAEChEQAggYAhEiAGAVQgBBAgEEAOAIgRAGEBgo=</HashCode>
<FileName>ViewModel\MultiStage\Implementation\CreateVifViewModel.cs</FileName>
</TypeIdentifier>
<Lollipop Position="0.2" />
</Class>
<Interface Name="VECTO3GUI2020.ViewModel.Interfaces.Document.IDocumentViewModel" Collapsed="true">
<Position X="1.25" Y="0.75" Width="4.5" />
<TypeIdentifier>
<HashCode>AAAABAAABAQAAgAAAAAAAAAAAAAAAAAAAAAAAACABgI=</HashCode>
<FileName>ViewModel\Interfaces\Document\IDocumentViewModel.cs</FileName>
</TypeIdentifier>
</Interface>
<Interface Name="VECTO3GUI2020.ViewModel.Interfaces.Document.IJobViewModel" Collapsed="true">
<Position X="1.75" Y="2" Width="2" />
<TypeIdentifier>
<HashCode>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=</HashCode>
<FileName>ViewModel\Interfaces\Document\IJobViewModel.cs</FileName>
</TypeIdentifier>
</Interface>
<Interface Name="VECTO3GUI2020.ViewModel.MultiStage.Implementation.ICreateVifViewModel" Collapsed="true">
<Position X="5" Y="1.75" Width="2" />
<TypeIdentifier>
<HashCode>AAAAAAACgAAAAAAAAAgAEAAAAAAAAEAACAAARAEAAAA=</HashCode>
<FileName>ViewModel\MultiStage\Implementation\CreateVifViewModel.cs</FileName>
</TypeIdentifier>
</Interface>
<Interface Name="VECTO3GUI2020.ViewModel.MultiStage.Implementation.IMultiStageJobViewModel" Collapsed="true">
<Position X="1.5" Y="3.5" Width="4.5" />
<TypeIdentifier>
<HashCode>AAAAAAAAAAAAAAAAAIgAAAAAAAAAAACAAAAAAAAAAAA=</HashCode>
<FileName>ViewModel\MultiStage\Implementation\MultistageJobViewModel_v0_1.cs</FileName>
</TypeIdentifier>
</Interface>
<Interface Name="VECTO3GUI2020.ViewModel.MultiStage.Implementation.IMultistageVehicleViewModel" Collapsed="true">
<Position X="12" Y="1.25" Width="1.5" />
<TypeIdentifier>
<HashCode>AAAgAAIAAAAAAQAAAAAAAAEAAAAAAAAIAAAAAgAAAAA=</HashCode>
<FileName>ViewModel\MultiStage\Implementation\InterimStageBusVehicleViewModel_v2_8.cs</FileName>
</TypeIdentifier>
</Interface>
<Enum Name="VECTO3GUI2020.ViewModel.MultiStage.Implementation.AIRDRAGMODIFIED" Collapsed="true">
<Position X="15" Y="4.25" Width="1.5" />
<TypeIdentifier>
<HashCode>AAAAAAAAABIAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAA=</HashCode>
<FileName>ViewModel\MultiStage\Implementation\InterimStageBusVehicleViewModel_v2_8.cs</FileName>
</TypeIdentifier>
</Enum>
<Font Name="Segoe UI" Size="9" />
</ClassDiagram>
\ No newline at end of file
using System.IO;
using System;
using System.IO;
using TUGraz.VectoCommon.InputData;
using TUGraz.VectoCore.Utils;
using VECTO3GUI2020.Properties;
......@@ -45,15 +46,17 @@ namespace VECTO3GUI2020.ViewModel.MultiStage.Implementation
public StageInputViewModel(IDeclarationInputDataProvider inputData, IMultiStageViewModelFactory multiStageViewModelFactory, IAdditionalJobInfoViewModel additionalJobInfoViewModel) : this(multiStageViewModelFactory,additionalJobInfoViewModel)
{
_documentName = inputData.JobInputData.JobName;
_vehicleViewModel =
_viewModelFactory.CreateStageInputVehicleViewModel(inputData.JobInputData.Vehicle) as IMultistageVehicleViewModel;
(_vehicleViewModel as InterimStageBusVehicleViewModel_v2_8).ShowConsolidatedData = false;
//_vehicleViewModel =
// _viewModelFactory.CreateStageInputVehicleViewModel(inputData.JobInputData.Vehicle) as IMultistageVehicleViewModel;
//(_vehicleViewModel as InterimStageBusVehicleViewModel_v2_8).ShowConsolidatedData = false;
_dataSource = inputData.DataSource;
VehicleInputDataFilePath = _dataSource.SourceFile;
Title = $"{GUILabels.Edit_step_input} - {Path.GetFileName(_dataSource.SourceFile)}";
Init();
return;
Init();
}
#region Overrides of StageViewModelBase
......
......@@ -16,31 +16,21 @@ namespace VECTO3GUI2020.ViewModel.MultiStage.Interfaces
{
public interface IMultiStageViewModelFactory :
IMultiStageViewModelFactoryDefaultInstanceProvider,
IMultiStageViewModelFactoryTypeAsNameInstanceProvider,
IMultistageViewModelFactoryFirstParameterAsNameInstanceProvider
{
IMultiStageViewModelFactoryDefaultInstanceProvider, IDocumentViewModelFactory,
IMultistageViewModelFactoryFirstParameterAsNameInstanceProvider
{
}
public interface IMultiStageViewModelFactoryTypeAsNameInstanceProvider
{
IDocumentViewModel CreateDocumentViewModel(IDeclarationInputDataProvider inputData);
IDocumentViewModel CreateDocumentViewModel(IInputDataProvider inputData);
IVehicleViewModel CreateStageInputVehicleViewModel(IVehicleDeclarationInputData inputData);
}
public interface IMultistageViewModelFactoryFirstParameterAsNameInstanceProvider
{
IVehicleViewModel CreateStageInputVehicleViewModel(string inputProviderType);
}
public interface IMultiStageViewModelFactoryDefaultInstanceProvider
{
IDocumentViewModel GetStageInputViewModel(bool exemptedVehicle);
IViewModelBase GetNewMultistageJobViewModel();
IMultiStageJobViewModel GetMultiStageJobViewModel(IMultistepBusInputDataProvider inputData);
......@@ -58,20 +48,5 @@ namespace VECTO3GUI2020.ViewModel.MultiStage.Interfaces
IMultistageAuxiliariesViewModel GetAuxiliariesViewModel();
IMultistageAuxiliariesViewModel GetAuxiliariesViewModel(
IBusAuxiliariesDeclarationData consolidatedAuxiliariesInputData);
ICreateVifViewModel GetCreateNewVifViewModel(bool completed);
ICreateVifViewModel GetCreateNewVifViewModel();
//IViewModelBase CreateNewMultiStageJobViewModel();
//IMultiStageJobViewModel CreateMultiStageJobViewModel(string inputProviderType, IMultistageBusInputDataProvider inputData);
//IVehicleViewModel CreateInterimStageVehicleViewModel(string inputProviderType);
//IVehicleViewModel CreateInterimStageVehicleViewModel(string inputProviderType, IVehicleDeclarationInputData prevStageInputData);
//IManufacturingStageViewModel CreateManufacturingStageViewModel(string inputProviderType, IManufacturingStageInputData consolidatedManufacturingStageInputData);
//IMultistageAirdragViewModel CreateMultistageAirdragViewModel();
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment