protected override void OnStartup(StartupEventArgs startup) { base.OnStartup(startup); // parse command line arguments and look for "archive var configurationType = startup.Args.FirstOrDefault(a => a.ToLowerInvariant().Contains("archive")) != null ? ConfigurationType.Archive : ConfigurationType.Prepare; var configuration = new Configuration(configurationType); var sapData = new SapData(configurationType); if (configurationType == ConfigurationType.Prepare) { // create the main window and set data context this.MainWindow = new PrepareView { DataContext = new MainViewModel(configuration, sapData) }; } else { // create the main window and set data context this.MainWindow = new ArchiveView { DataContext = new MainViewModel(configuration, sapData) }; } // show the main window this.MainWindow.Show(); }
/// <summary> /// Creates a new instance of the <see cref="MainViewModel"/> class /// </summary> /// <param name="configuration">Configuration to use</param> /// <param name="sapData">SAP data DTO</param> public MainViewModel(Configuration configuration, SapData sapData) { this.Configuration = new ConfigurationViewModel(configuration, this.Files); this.Sap = new SapDataViewModel(sapData); this.Log = new LogDataViewModel(this.Configuration.Configuration); this.File = null; this.Archive.CanExecuteChanged += delegate { this.RaisePropertyChanged(nameof(MainViewModel.IsValid)); }; }
/// <summary> /// Updates the attributes of the file by the data of the SAP view model /// </summary> /// <param name="file">The attribute file</param> /// <param name="sapData">SAP view model</param> private IEnumerable <FileAttribute> GetFileAttributes(AttributeFile file, SapData sapData) { foreach (var attribute in file.Attributes) { yield return(attribute); } foreach (var converter in FileAttributeParser.ConvertDefinitions) { yield return(new FileAttribute( converter.Key, null, converter.Value(file, sapData))); } }
/// <summary> /// Creates a new instance of the <see cref="SapDataViewModel"/> class /// </summary> /// <param name="sapData">The Data Transfer Object (DTO) containing the SAP data</param> public SapDataViewModel(SapData sapData) { this.sapData = sapData; }