This commit is contained in:
2026-04-17 14:55:32 -04:00
commit bc3ac1d4c9
18017 changed files with 4371742 additions and 0 deletions

View File

@@ -0,0 +1 @@
12

View File

@@ -0,0 +1 @@
12

View File

@@ -0,0 +1,24 @@
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Threading.Tasks;
using System.Windows;
namespace DTS.Viewer.Loader
{
/// <summary>
/// Interaction logic for App.xaml
/// </summary>
public partial class App : Application
{
private void App_OnStartup(object sender, StartupEventArgs e)
{
var session = new ViewerLoaderSession();
session.CreateSession();
}
}
}

View File

@@ -0,0 +1,63 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.42000
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace DTS.Viewer.Loader.Properties {
using System;
/// <summary>
/// A strongly-typed resource class, for looking up localized strings, etc.
/// </summary>
// This class was auto-generated by the StronglyTypedResourceBuilder
// class via a tool like ResGen or Visual Studio.
// To add or remove a member, edit your .ResX file then rerun ResGen
// with the /str option, or rebuild your VS project.
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
internal class Resources {
private static global::System.Resources.ResourceManager resourceMan;
private static global::System.Globalization.CultureInfo resourceCulture;
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
internal Resources() {
}
/// <summary>
/// Returns the cached ResourceManager instance used by this class.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Resources.ResourceManager ResourceManager {
get {
if (object.ReferenceEquals(resourceMan, null)) {
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("DTS.Viewer.Loader.Properties.Resources", typeof(Resources).Assembly);
resourceMan = temp;
}
return resourceMan;
}
}
/// <summary>
/// Overrides the current thread's CurrentUICulture property for all
/// resource lookups using this strongly typed resource class.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Globalization.CultureInfo Culture {
get {
return resourceCulture;
}
set {
resourceCulture = value;
}
}
}
}

View File

@@ -0,0 +1,117 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>

View File

@@ -0,0 +1,9 @@
<?xml version='1.0' encoding='utf-8'?>
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" GeneratedClassNamespace="DTS.Viewer.Loader.Properties" GeneratedClassName="Settings">
<Profiles />
<Settings>
<Setting Name="PluginFolder" Type="System.String" Scope="Application">
<Value Profile="(Default)">../../../../RunTimeModules</Value>
</Setting>
</Settings>
</SettingsFile>

View File

@@ -0,0 +1,27 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<section name="DTS.Common.Core.PluginLib.Config" type="DTS.Common.Core.PluginLib.PluginConfigSectionHandler, DTS.Common.Core"/>
<sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<section name="DTS.Viewer.Loader.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false"/>
</sectionGroup>
</configSections>
<DTS.Common.Core.PluginLib.Config>
<PluginFolders>
<add key="viewerPlugins" value="..//..//..//RunTimeModules"/>
<add key="DTSViewerPlugins" value="..//..//..//..//RunTimeModules//DTSViewerModules"/>
</PluginFolders>
</DTS.Common.Core.PluginLib.Config>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2"/>
</startup>
<applicationSettings>
<DTS.Viewer.Loader.Properties.Settings>
<setting name="PluginFolder" serializeAs="String">
<value>../../../../RunTimeModules</value>
</setting>
</DTS.Viewer.Loader.Properties.Settings>
</applicationSettings>
</configuration>

View File

@@ -0,0 +1,117 @@
using System;
using System.Windows;
using DTS.Common;
using DTS.Common.Interface;
using DTS.Common.Core.PluginLib;
using Microsoft.Practices.Prism.Events;
using Microsoft.Practices.Prism.Modularity;
using Microsoft.Practices.Prism.Regions;
using Microsoft.Practices.Prism.UnityExtensions;
using Microsoft.Practices.ServiceLocation;
using Microsoft.Practices.Unity;
// ReSharper disable InconsistentNaming
namespace DTS.Viewer.Loader
{
/// <summary>
/// https://msdn.microsoft.com/en-us/library/ff921075(v=pandp.20).aspx
/// </summary>
public class Bootstrapper : UnityBootstrapper
{
public IServiceLocator _serviceLocator { get; private set; }
public IEventAggregator _EventAggregator { get; private set; }
protected override void ConfigureContainer()
{
Container.RegisterType<IShellView, ShellView>();
Container.RegisterType<IShellViewModel, ShellViewModel>(new ContainerControlledLifetimeManager());
try
{
base.ConfigureContainer();
}
catch (System.Threading.SynchronizationLockException e)
{
}
}
/// <summary>
/// Returns null - not to interfere with Viewer app RegionAdapterMappings
/// </summary>
/// <returns></returns>
protected override RegionAdapterMappings ConfigureRegionAdapterMappings()
{
return null;
//var regionAdapterMappings = base.ConfigureRegionAdapterMappings();
//regionAdapterMappings.RegisterMapping(typeof(StackPanel), ServiceLocator.Current.GetInstance<StackPanelRegionAdapter>());
//return regionAdapterMappings;
}
/// <summary>
/// The CreateShell method allows a developer to specify the top-level window for a Prism application.
/// The shell is usually the MainWindow or MainPage. Implement this method by returning an instance of
/// your application's shell class. In a Prism application, you can create the shell object, or resolve
/// it from the container, depending on your application's requirements.
/// </summary>
/// <returns></returns>
protected override DependencyObject CreateShell()
{
Container = ServiceLocator.Current.GetInstance<IUnityContainer>();
_EventAggregator = Container.Resolve<IEventAggregator>();
_serviceLocator = Container.Resolve<IServiceLocator>();
var viewmodel = Container.TryResolve<IShellViewModel>();
if (viewmodel == null) return new DependencyObject();
var view = viewmodel.View;
viewmodel.Initialize(this);
((ShellView)view).Visibility = Visibility.Visible;
((ShellView)view).Closing += Bootstrapper_Closing;
view.DataContext = viewmodel;
return ServiceLocator.Current.GetInstance<ShellView>();
}
/// <summary>
/// Shutdown the application
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
void Bootstrapper_Closing(object sender, System.ComponentModel.CancelEventArgs e)
{
Application.Current.Shutdown(1);
}
/// <summary>
/// Returns the module catalog that will be used to initialize the modules.
/// </summary>
/// <returns>
/// An instance of <see cref="IModuleCatalog"/> that will be used to initialize the modules.
/// </returns>
protected override IModuleCatalog CreateModuleCatalog()
{
// The module catalog is used by the ModuleManager and ModuleLoader components, which are responsible for downloading the modules.
return new AggregateModuleCatalog();
}
/// <summary>
/// Modules are packages of functionality that can be independently developed, tested, and (optionally) deployed.
/// In a composite application, modules must be discovered and loaded at run time by the host application.
/// The module catalog is used by the ModuleManager and ModuleLoader components, which are responsible for downloading the modules.
/// Modules are copied to a directory as part of a post-build step. These modules are not referenced in the project and are discovered by inspecting a directory.
/// Module projects have a post-build step to copy themselves into that directory.
/// </summary>
protected override void ConfigureModuleCatalog()
{
var directoryCatalog = new DirectoryModuleCatalog { ModulePath = Properties.Settings.Default.PluginFolder };
((AggregateModuleCatalog)ModuleCatalog).AddCatalog(directoryCatalog);
}
protected override void InitializeModules()
{
// Register the DataProRegionManager with Unity dependency injection container as a singleton.
Container.RegisterType<IDTSRegionManager, DTSRegionManager>(new ContainerControlledLifetimeManager(), new InjectionMember[] { });
base.InitializeModules();
}
}
}

View File

@@ -0,0 +1,8 @@
<Window x:Class="DTS.Viewer.Loader.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Grid>
</Grid>
</Window>

View File

@@ -0,0 +1,8 @@
<Application x:Class="DTS.Viewer.Loader.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Startup="App_OnStartup">
<Application.Resources>
</Application.Resources>
</Application>

View File

@@ -0,0 +1,23 @@
<base:BaseWindow x:Class="DTS.Viewer.Loader.ShellView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:base="clr-namespace:DTS.Common.Base;assembly=DTS.Common"
Background="Silver"
VerticalAlignment="Stretch" HorizontalAlignment="Stretch"
VerticalContentAlignment="Stretch" HorizontalContentAlignment="Stretch"
Height="Auto" Width="Auto" SizeToContent="WidthAndHeight" >
<Grid x:Name="MainShell" VerticalAlignment="Stretch" HorizontalAlignment="Stretch">
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<ContentControl Grid.Row="0" x:Name="MainRegion" Content="{Binding ContextMainRegion}" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" >
<ContentControl.Template>
<ControlTemplate TargetType="ContentControl">
<ContentPresenter Content="{TemplateBinding Content}" />
</ControlTemplate>
</ContentControl.Template>
</ContentControl>
</Grid>
</base:BaseWindow>

View File

@@ -0,0 +1,55 @@
using System.Reflection;
using System.Resources;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Windows;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("DTS.Viewer.Loader")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("Diversified Technical Systems, Inc. (DTS)")]
[assembly: AssemblyProduct("DTS.Viewer.Loader")]
[assembly: AssemblyCopyright("Copyright © 2017")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]
//In order to begin building localizable applications, set
//<UICulture>CultureYouAreCodingWith</UICulture> in your .csproj file
//inside a <PropertyGroup>. For example, if you are using US english
//in your source files, set the <UICulture> to en-US. Then uncomment
//the NeutralResourceLanguage attribute below. Update the "en-US" in
//the line below to match the UICulture setting in the project file.
//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)]
[assembly: ThemeInfo(
ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located
//(used if a resource is not found in the page,
// or application resource dictionaries)
ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located
//(used if a resource is not found in the page,
// app, or any theme specific resource dictionaries)
)]
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]

View File

@@ -0,0 +1,132 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using DTS.Common;
using DTS.Common.Base;
using DTS.Common.Classes;
using DTS.Common.Core.PluginLib;
using DTS.Common.Interface;
using Microsoft.Practices.Prism.Events;
using Microsoft.Practices.Prism.Modularity;
using Microsoft.Practices.Prism.Regions;
using Microsoft.Practices.ServiceLocation;
using Microsoft.Practices.Unity;
using System.IO;
namespace DTS.Viewer.Loader
{
/// <summary>
/// I think we need it...
/// </summary>
public class ViewerLoaderSession
{
/// <summary>
/// Custom Bootstrapper
/// </summary>
///<remarks>
/// Do not try to re-create the bootstrapper. Once modules are loaded, they will be be loaded into the DirectoryModuleCatalog and each
/// Module initialization will not be called (thus no registered types).
/// It appears that the current bootstrapper loads around 40 MB into memory.
/// To completely unload the bootstrapper would take same research and effort.
/// </remarks>
private Bootstrapper _bootstrapper;
public IUnityContainer _unityContainer { get; private set; }
public IServiceLocator ServiceLocator { get; private set; }
public IEventAggregator EventAggregator { get; private set; }
public IRegionManager RegionManager { get; private set; }
public ViewerLoaderSession()
{
}
public void CreateSession()
{
CreateBootstrapper();
if (_bootstrapper == null) return;
_unityContainer = _bootstrapper.Container;
EventAggregator = _unityContainer.Resolve<IEventAggregator>();
ServiceLocator = _unityContainer.Resolve<IServiceLocator>();
RegionManager = _unityContainer.Resolve<IRegionManager>();
var shellVviewmodel = _unityContainer.Resolve<IShellViewModel>();
var viewerModule = _unityContainer.Resolve<IViewerModule>();
viewerModule.StartSession(true, @"C:\devDTS\RunTimeModules\DTS.Viewer.dll.config");
var viewModel = _unityContainer.Resolve<IViewerMainViewModel>();
shellVviewmodel.ContextMainRegion = viewModel.View;
//var assemblyList = LoadPlugins();
//if (assemblyList.Count == 1)
//{
// var assembly = assemblyList[0];
// if (assembly.ManifestModule.Name.StartsWith("DTS.Viewer"))
// {
// }
//}
//var viewDefinition = new ViewDefinition(RegionNames.MainRegion, typeof(IMainView), typeof(IMainViewModel));
//var viewModel = (IBaseViewModel)Container.Resolve(viewDefinition.ViewModelInterfaceType);
//var view = (IBaseView)Container.Resolve(viewDefinition.ViewInterfaceType);
//view.DataContext = viewModel;
//RegionManager.Regions[RegionNames.MainRegion].Add(view);
//RegionManager.ActivateViewIfExists(viewDefinition.RegionName, viewDefinition.ViewInterfaceType);
}
/// <summary>
/// Return type of View/ViewModel registered with Unity Container
/// </summary>
/// <param name="name">Name of the selected assembly (plug-in)</param>
/// <returns>interface type</returns>
private Type GetRegisteredViewType(string name)
{
return (from v in _unityContainer.Registrations where v.RegisteredType.Name.EndsWith(name) select v.RegisteredType).FirstOrDefault();
}
private List<Assembly> LoadPlugins()
{
var pluginManager = PluginManager.GetPluginManager(Path.Combine(Environment.CurrentDirectory, @"DTS.Viewer.Loader.exe.config"));
return pluginManager.GetPluginList<IModule>();
}
/// <summary>
/// Create bootstrapper for prism-based modules and views.
/// </summary>
/// <remarks>
/// Currently, there is no course of action for destroying the bootstrapper.
/// </remarks>
private void CreateBootstrapper()
{
if (_bootstrapper == null)
{
try
{
_bootstrapper = new Bootstrapper();
_bootstrapper.Run();
}
catch (ApplicationException ex)
{
throw new Exception("Failed to create bootstrapper ", ex);
}
}
if (_bootstrapper == null)
{
throw new Exception("Failed to create Bootstrapper!");
}
}
/// <summary>
/// The Terminate method is called only when JMPS is in the process of shutting down.
/// If a component is just being closed, only the class destructor will be called.
/// Part of IComponent implementation.
/// </summary>
public void Terminate()
{
}
}
}

View File

@@ -0,0 +1,149 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{0325A955-D63C-4900-93E7-2FE49CFB1CAB}</ProjectGuid>
<OutputType>WinExe</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>DTS.Viewer.Loader</RootNamespace>
<AssemblyName>DTS.Viewer.Loader</AssemblyName>
<TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
<WarningLevel>4</WarningLevel>
<SccProjectName>SAK</SccProjectName>
<SccLocalPath>SAK</SccLocalPath>
<SccAuxPath>SAK</SccAuxPath>
<SccProvider>SAK</SccProvider>
<TargetFrameworkProfile />
</PropertyGroup>
<ItemGroup>
<Reference Include="Microsoft.Expression.Interactions, Version=4.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\Common\DTS.Common\lib\PrismLibrary\Microsoft.Expression.Interactions.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Practices.Prism, Version=4.0.0.0, Culture=neutral, PublicKeyToken=c8fa4079b73712d6, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\Common\DTS.Common\lib\PrismLibrary\Microsoft.Practices.Prism.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Practices.Prism.Interactivity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=c8fa4079b73712d6, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\Common\DTS.Common\lib\PrismLibrary\Microsoft.Practices.Prism.Interactivity.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Practices.Prism.UnityExtensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=c8fa4079b73712d6, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\Common\DTS.Common\lib\PrismLibrary\Microsoft.Practices.Prism.UnityExtensions.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Practices.ServiceLocation, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\Common\DTS.Common\lib\PrismLibrary\Microsoft.Practices.ServiceLocation.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Practices.Unity, Version=1.2.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\Common\DTS.Common\lib\PrismLibrary\Microsoft.Practices.Unity.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Practices.Unity.Interception, Version=2.1.505.0, Culture=neutral, PublicKeyToken=6ccbc87945fa0721, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\Common\DTS.Common\lib\PrismLibrary\Microsoft.Practices.Unity.Interception.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.ComponentModel.Composition" />
<Reference Include="System.Data" />
<Reference Include="System.EnterpriseServices" />
<Reference Include="System.Windows.Interactivity, Version=4.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\Common\DTS.Common\lib\System.Windows.Interactivity.dll</HintPath>
</Reference>
<Reference Include="System.Xml" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Core" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="System.Xaml">
<RequiredTargetFramework>4.0</RequiredTargetFramework>
</Reference>
<Reference Include="WindowsBase" />
<Reference Include="PresentationCore" />
<Reference Include="PresentationFramework" />
</ItemGroup>
<ItemGroup>
<ApplicationDefinition Include="App.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</ApplicationDefinition>
<Compile Include="ViewerLoaderSession.cs" />
<Compile Include="ViewModel\ShellViewModel.cs" />
<Compile Include="View\ShellView.xaml.cs">
<DependentUpon>ShellView.xaml</DependentUpon>
</Compile>
<Compile Include="App.xaml.cs">
<DependentUpon>App.xaml</DependentUpon>
<SubType>Code</SubType>
</Compile>
<Compile Include="Bootstrapper.cs" />
<Page Include="View\ShellView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
</ItemGroup>
<ItemGroup>
<Compile Include="Properties\AssemblyInfo.cs">
<SubType>Code</SubType>
</Compile>
<Compile Include="Properties\Resources.Designer.cs">
<AutoGen>True</AutoGen>
<DesignTime>True</DesignTime>
<DependentUpon>Resources.resx</DependentUpon>
</Compile>
<Compile Include="Properties\Settings.Designer.cs">
<AutoGen>True</AutoGen>
<DependentUpon>Settings.settings</DependentUpon>
<DesignTimeSharedInput>True</DesignTimeSharedInput>
</Compile>
<EmbeddedResource Include="Properties\Resources.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
</EmbeddedResource>
<None Include="Properties\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator>
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
</None>
<AppDesigner Include="Properties\" />
</ItemGroup>
<ItemGroup>
<None Include="App.config">
<SubType>Designer</SubType>
</None>
</ItemGroup>
<ItemGroup>
<Folder Include="Classes\" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\Common\DTS.Common.Core\DTS.Common.Core.csproj">
<Project>{fab1f470-1574-4301-b56e-d3364aa93679}</Project>
<Name>DTS.Common.Core</Name>
</ProjectReference>
<ProjectReference Include="..\..\Common\DTS.Common.Serialization\DTS.Common.Serialization.csproj">
<Project>{b7d50b14-fa61-4fe4-bff7-b257902b55b0}</Project>
<Name>DTS.Common.Serialization</Name>
</ProjectReference>
<ProjectReference Include="..\..\Common\DTS.Common.Utilities\DTS.Common.Utilities.csproj">
<Project>{03eace47-ea59-44ac-b49d-956e4dc4d618}</Project>
<Name>DTS.Common.Utilities</Name>
</ProjectReference>
<ProjectReference Include="..\..\Common\DTS.Common\DTS.Common.csproj">
<Project>{114edc77-f3b5-4576-a91b-40818d503b55}</Project>
<Name>DTS.Common</Name>
</ProjectReference>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
</Project>

View File

@@ -0,0 +1,35 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.42000
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace DTS.Viewer.Loader.Properties {
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "15.1.0.0")]
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
public static Settings Default {
get {
return defaultInstance;
}
}
[global::System.Configuration.ApplicationScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("../../../../RunTimeModules")]
public string PluginFolder {
get {
return ((string)(this["PluginFolder"]));
}
}
}
}

View File

@@ -0,0 +1,28 @@
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.Navigation;
using System.Windows.Shapes;
namespace DTS.Viewer.Loader
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
}
}

View File

@@ -0,0 +1,21 @@
using System.Windows;
using DTS.Common.Interface;
namespace DTS.Viewer.Loader
{
/// <summary>
/// Interaction logic for ShellView.xaml
/// </summary>
public partial class ShellView : IShellView
{
public ShellView()
{
InitializeComponent();
this.WindowState = WindowState.Maximized;
//this.StateChanged += (s, e) =>
//{
// ResizeMode = WindowState == WindowState.Maximized ? ResizeMode.NoResize : ResizeMode.CanResize;
//};
}
}
}

View File

@@ -0,0 +1,165 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 15
VisualStudioVersion = 15.0.26403.7
MinimumVisualStudioVersion = 10.0.40219.1
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Common", "Common", "{0AD8A06F-DDFB-4856-8A33-9BC53EC8D3B2}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "DTS.Viewer.Modules", "DTS.Viewer.Modules", "{37F41B75-3A35-447A-A46E-C4EFD7655193}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DTS.Viewer.Loader", "DTS.Viewer.Loader.csproj", "{0325A955-D63C-4900-93E7-2FE49CFB1CAB}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "DTS.Viewer", "DTS.Viewer", "{03A31AE8-B06B-4E7F-8690-CDF69FD8231B}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DTS.Viewer", "..\DTS.Viewer\DTS.Viewer.csproj", "{F1AEA231-F29E-4EAB-9EA9-5355EBDECD6E}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "DTS.Viewer.Graph", "DTS.Viewer.Graph", "{C335A828-A4E1-489C-8E2D-0B3A072B477E}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DTS.Viewer.Graph", "..\DTS.Viewer.Modules\DTS.Viewer.Graph\DTS.Viewer.Graph.csproj", "{C4821193-52FF-4636-8C91-8FD850C2D3ED}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "DTS.Viewer.Navigation", "DTS.Viewer.Navigation", "{18C9C157-F61C-460D-8EE9-AD7892C2C09C}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DTS.Viewer.Navigation", "..\DTS.Viewer.Modules\DTS.Viewer.Navigation\DTS.Viewer.Navigation.csproj", "{4C930AD2-E6EB-466C-BB92-9AAF7BEF8B08}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DTS.Common", "..\..\Common\DTS.Common\DTS.Common.csproj", "{F7A0804F-61A4-40AE-83D0-F1137622B592}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DTS.Common.Core", "..\..\Common\DTS.Common.Core\DTS.Common.Core.csproj", "{FAB1F470-1574-4301-B56E-D3364AA93679}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DTS.Common.Property", "..\..\Common\DTS.Common.Property\DTS.Common.Property.csproj", "{53D908E1-8F00-4F7A-A313-EE0B6D98BE91}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DTS.Common.CPU", "..\..\Common\DTS.Common.CPU\DTS.Common.CPU.csproj", "{761A8290-184D-4610-967C-25B08D27A1A9}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DTS.Common.Service", "..\..\Common\DTS.Common.Service\DTS.Common.Service.csproj", "{52CF5CEF-F8BB-4AE8-A394-730E4A30B1A7}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DTS.Common.DBSyncService", "..\..\Common\DTS.Common.DBSyncService\DTS.Common.DBSyncService.csproj", "{12AAE562-4E17-46F0-83CD-541C018AD9E4}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DTS.Common.ServiceLibrary", "..\..\Common\DTS.Common.ServiceLibrary\DTS.Common.ServiceLibrary.csproj", "{9DF8847B-73BA-4D1E-8FA6-F490384D6FD9}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DTS.Viewer.Test", "..\DTS.Viewer.Test\DTS.Viewer.Test.csproj", "{09B882CC-AFBF-4DB2-881A-BEBDB4690893}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Debug+Log|Any CPU = Debug+Log|Any CPU
Release|Any CPU = Release|Any CPU
Release+Log|Any CPU = Release+Log|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{0325A955-D63C-4900-93E7-2FE49CFB1CAB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{0325A955-D63C-4900-93E7-2FE49CFB1CAB}.Debug|Any CPU.Build.0 = Debug|Any CPU
{0325A955-D63C-4900-93E7-2FE49CFB1CAB}.Debug+Log|Any CPU.ActiveCfg = Debug|Any CPU
{0325A955-D63C-4900-93E7-2FE49CFB1CAB}.Debug+Log|Any CPU.Build.0 = Debug|Any CPU
{0325A955-D63C-4900-93E7-2FE49CFB1CAB}.Release|Any CPU.ActiveCfg = Release|Any CPU
{0325A955-D63C-4900-93E7-2FE49CFB1CAB}.Release|Any CPU.Build.0 = Release|Any CPU
{0325A955-D63C-4900-93E7-2FE49CFB1CAB}.Release+Log|Any CPU.ActiveCfg = Release|Any CPU
{0325A955-D63C-4900-93E7-2FE49CFB1CAB}.Release+Log|Any CPU.Build.0 = Release|Any CPU
{F1AEA231-F29E-4EAB-9EA9-5355EBDECD6E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{F1AEA231-F29E-4EAB-9EA9-5355EBDECD6E}.Debug|Any CPU.Build.0 = Debug|Any CPU
{F1AEA231-F29E-4EAB-9EA9-5355EBDECD6E}.Debug+Log|Any CPU.ActiveCfg = Debug|Any CPU
{F1AEA231-F29E-4EAB-9EA9-5355EBDECD6E}.Debug+Log|Any CPU.Build.0 = Debug|Any CPU
{F1AEA231-F29E-4EAB-9EA9-5355EBDECD6E}.Release|Any CPU.ActiveCfg = Release|Any CPU
{F1AEA231-F29E-4EAB-9EA9-5355EBDECD6E}.Release|Any CPU.Build.0 = Release|Any CPU
{F1AEA231-F29E-4EAB-9EA9-5355EBDECD6E}.Release+Log|Any CPU.ActiveCfg = Release|Any CPU
{F1AEA231-F29E-4EAB-9EA9-5355EBDECD6E}.Release+Log|Any CPU.Build.0 = Release|Any CPU
{C4821193-52FF-4636-8C91-8FD850C2D3ED}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{C4821193-52FF-4636-8C91-8FD850C2D3ED}.Debug|Any CPU.Build.0 = Debug|Any CPU
{C4821193-52FF-4636-8C91-8FD850C2D3ED}.Debug+Log|Any CPU.ActiveCfg = Debug|Any CPU
{C4821193-52FF-4636-8C91-8FD850C2D3ED}.Debug+Log|Any CPU.Build.0 = Debug|Any CPU
{C4821193-52FF-4636-8C91-8FD850C2D3ED}.Release|Any CPU.ActiveCfg = Release|Any CPU
{C4821193-52FF-4636-8C91-8FD850C2D3ED}.Release|Any CPU.Build.0 = Release|Any CPU
{C4821193-52FF-4636-8C91-8FD850C2D3ED}.Release+Log|Any CPU.ActiveCfg = Release|Any CPU
{C4821193-52FF-4636-8C91-8FD850C2D3ED}.Release+Log|Any CPU.Build.0 = Release|Any CPU
{4C930AD2-E6EB-466C-BB92-9AAF7BEF8B08}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{4C930AD2-E6EB-466C-BB92-9AAF7BEF8B08}.Debug|Any CPU.Build.0 = Debug|Any CPU
{4C930AD2-E6EB-466C-BB92-9AAF7BEF8B08}.Debug+Log|Any CPU.ActiveCfg = Debug|Any CPU
{4C930AD2-E6EB-466C-BB92-9AAF7BEF8B08}.Debug+Log|Any CPU.Build.0 = Debug|Any CPU
{4C930AD2-E6EB-466C-BB92-9AAF7BEF8B08}.Release|Any CPU.ActiveCfg = Release|Any CPU
{4C930AD2-E6EB-466C-BB92-9AAF7BEF8B08}.Release|Any CPU.Build.0 = Release|Any CPU
{4C930AD2-E6EB-466C-BB92-9AAF7BEF8B08}.Release+Log|Any CPU.ActiveCfg = Release|Any CPU
{4C930AD2-E6EB-466C-BB92-9AAF7BEF8B08}.Release+Log|Any CPU.Build.0 = Release|Any CPU
{F7A0804F-61A4-40AE-83D0-F1137622B592}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{F7A0804F-61A4-40AE-83D0-F1137622B592}.Debug|Any CPU.Build.0 = Debug|Any CPU
{F7A0804F-61A4-40AE-83D0-F1137622B592}.Debug+Log|Any CPU.ActiveCfg = Debug|Any CPU
{F7A0804F-61A4-40AE-83D0-F1137622B592}.Debug+Log|Any CPU.Build.0 = Debug|Any CPU
{F7A0804F-61A4-40AE-83D0-F1137622B592}.Release|Any CPU.ActiveCfg = Release|Any CPU
{F7A0804F-61A4-40AE-83D0-F1137622B592}.Release|Any CPU.Build.0 = Release|Any CPU
{F7A0804F-61A4-40AE-83D0-F1137622B592}.Release+Log|Any CPU.ActiveCfg = Release|Any CPU
{F7A0804F-61A4-40AE-83D0-F1137622B592}.Release+Log|Any CPU.Build.0 = Release|Any CPU
{FAB1F470-1574-4301-B56E-D3364AA93679}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{FAB1F470-1574-4301-B56E-D3364AA93679}.Debug|Any CPU.Build.0 = Debug|Any CPU
{FAB1F470-1574-4301-B56E-D3364AA93679}.Debug+Log|Any CPU.ActiveCfg = Debug|Any CPU
{FAB1F470-1574-4301-B56E-D3364AA93679}.Debug+Log|Any CPU.Build.0 = Debug|Any CPU
{FAB1F470-1574-4301-B56E-D3364AA93679}.Release|Any CPU.ActiveCfg = Release|Any CPU
{FAB1F470-1574-4301-B56E-D3364AA93679}.Release|Any CPU.Build.0 = Release|Any CPU
{FAB1F470-1574-4301-B56E-D3364AA93679}.Release+Log|Any CPU.ActiveCfg = Release|Any CPU
{FAB1F470-1574-4301-B56E-D3364AA93679}.Release+Log|Any CPU.Build.0 = Release|Any CPU
{53D908E1-8F00-4F7A-A313-EE0B6D98BE91}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{53D908E1-8F00-4F7A-A313-EE0B6D98BE91}.Debug|Any CPU.Build.0 = Debug|Any CPU
{53D908E1-8F00-4F7A-A313-EE0B6D98BE91}.Debug+Log|Any CPU.ActiveCfg = Debug|Any CPU
{53D908E1-8F00-4F7A-A313-EE0B6D98BE91}.Debug+Log|Any CPU.Build.0 = Debug|Any CPU
{53D908E1-8F00-4F7A-A313-EE0B6D98BE91}.Release|Any CPU.ActiveCfg = Release|Any CPU
{53D908E1-8F00-4F7A-A313-EE0B6D98BE91}.Release|Any CPU.Build.0 = Release|Any CPU
{53D908E1-8F00-4F7A-A313-EE0B6D98BE91}.Release+Log|Any CPU.ActiveCfg = Release|Any CPU
{53D908E1-8F00-4F7A-A313-EE0B6D98BE91}.Release+Log|Any CPU.Build.0 = Release|Any CPU
{761A8290-184D-4610-967C-25B08D27A1A9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{761A8290-184D-4610-967C-25B08D27A1A9}.Debug|Any CPU.Build.0 = Debug|Any CPU
{761A8290-184D-4610-967C-25B08D27A1A9}.Debug+Log|Any CPU.ActiveCfg = Debug|Any CPU
{761A8290-184D-4610-967C-25B08D27A1A9}.Debug+Log|Any CPU.Build.0 = Debug|Any CPU
{761A8290-184D-4610-967C-25B08D27A1A9}.Release|Any CPU.ActiveCfg = Release|Any CPU
{761A8290-184D-4610-967C-25B08D27A1A9}.Release|Any CPU.Build.0 = Release|Any CPU
{761A8290-184D-4610-967C-25B08D27A1A9}.Release+Log|Any CPU.ActiveCfg = Release|Any CPU
{761A8290-184D-4610-967C-25B08D27A1A9}.Release+Log|Any CPU.Build.0 = Release|Any CPU
{52CF5CEF-F8BB-4AE8-A394-730E4A30B1A7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{52CF5CEF-F8BB-4AE8-A394-730E4A30B1A7}.Debug|Any CPU.Build.0 = Debug|Any CPU
{52CF5CEF-F8BB-4AE8-A394-730E4A30B1A7}.Debug+Log|Any CPU.ActiveCfg = Debug|Any CPU
{52CF5CEF-F8BB-4AE8-A394-730E4A30B1A7}.Debug+Log|Any CPU.Build.0 = Debug|Any CPU
{52CF5CEF-F8BB-4AE8-A394-730E4A30B1A7}.Release|Any CPU.ActiveCfg = Release|Any CPU
{52CF5CEF-F8BB-4AE8-A394-730E4A30B1A7}.Release|Any CPU.Build.0 = Release|Any CPU
{52CF5CEF-F8BB-4AE8-A394-730E4A30B1A7}.Release+Log|Any CPU.ActiveCfg = Release|Any CPU
{52CF5CEF-F8BB-4AE8-A394-730E4A30B1A7}.Release+Log|Any CPU.Build.0 = Release|Any CPU
{12AAE562-4E17-46F0-83CD-541C018AD9E4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{12AAE562-4E17-46F0-83CD-541C018AD9E4}.Debug|Any CPU.Build.0 = Debug|Any CPU
{12AAE562-4E17-46F0-83CD-541C018AD9E4}.Debug+Log|Any CPU.ActiveCfg = Debug|Any CPU
{12AAE562-4E17-46F0-83CD-541C018AD9E4}.Debug+Log|Any CPU.Build.0 = Debug|Any CPU
{12AAE562-4E17-46F0-83CD-541C018AD9E4}.Release|Any CPU.ActiveCfg = Release|Any CPU
{12AAE562-4E17-46F0-83CD-541C018AD9E4}.Release|Any CPU.Build.0 = Release|Any CPU
{12AAE562-4E17-46F0-83CD-541C018AD9E4}.Release+Log|Any CPU.ActiveCfg = Release|Any CPU
{12AAE562-4E17-46F0-83CD-541C018AD9E4}.Release+Log|Any CPU.Build.0 = Release|Any CPU
{9DF8847B-73BA-4D1E-8FA6-F490384D6FD9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{9DF8847B-73BA-4D1E-8FA6-F490384D6FD9}.Debug|Any CPU.Build.0 = Debug|Any CPU
{9DF8847B-73BA-4D1E-8FA6-F490384D6FD9}.Debug+Log|Any CPU.ActiveCfg = Debug|Any CPU
{9DF8847B-73BA-4D1E-8FA6-F490384D6FD9}.Debug+Log|Any CPU.Build.0 = Debug|Any CPU
{9DF8847B-73BA-4D1E-8FA6-F490384D6FD9}.Release|Any CPU.ActiveCfg = Release|Any CPU
{9DF8847B-73BA-4D1E-8FA6-F490384D6FD9}.Release|Any CPU.Build.0 = Release|Any CPU
{9DF8847B-73BA-4D1E-8FA6-F490384D6FD9}.Release+Log|Any CPU.ActiveCfg = Release|Any CPU
{9DF8847B-73BA-4D1E-8FA6-F490384D6FD9}.Release+Log|Any CPU.Build.0 = Release|Any CPU
{09B882CC-AFBF-4DB2-881A-BEBDB4690893}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{09B882CC-AFBF-4DB2-881A-BEBDB4690893}.Debug|Any CPU.Build.0 = Debug|Any CPU
{09B882CC-AFBF-4DB2-881A-BEBDB4690893}.Debug+Log|Any CPU.ActiveCfg = Debug|Any CPU
{09B882CC-AFBF-4DB2-881A-BEBDB4690893}.Debug+Log|Any CPU.Build.0 = Debug|Any CPU
{09B882CC-AFBF-4DB2-881A-BEBDB4690893}.Release|Any CPU.ActiveCfg = Release|Any CPU
{09B882CC-AFBF-4DB2-881A-BEBDB4690893}.Release|Any CPU.Build.0 = Release|Any CPU
{09B882CC-AFBF-4DB2-881A-BEBDB4690893}.Release+Log|Any CPU.ActiveCfg = Release|Any CPU
{09B882CC-AFBF-4DB2-881A-BEBDB4690893}.Release+Log|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
{F1AEA231-F29E-4EAB-9EA9-5355EBDECD6E} = {03A31AE8-B06B-4E7F-8690-CDF69FD8231B}
{C335A828-A4E1-489C-8E2D-0B3A072B477E} = {37F41B75-3A35-447A-A46E-C4EFD7655193}
{C4821193-52FF-4636-8C91-8FD850C2D3ED} = {C335A828-A4E1-489C-8E2D-0B3A072B477E}
{18C9C157-F61C-460D-8EE9-AD7892C2C09C} = {37F41B75-3A35-447A-A46E-C4EFD7655193}
{4C930AD2-E6EB-466C-BB92-9AAF7BEF8B08} = {18C9C157-F61C-460D-8EE9-AD7892C2C09C}
{F7A0804F-61A4-40AE-83D0-F1137622B592} = {0AD8A06F-DDFB-4856-8A33-9BC53EC8D3B2}
{FAB1F470-1574-4301-B56E-D3364AA93679} = {0AD8A06F-DDFB-4856-8A33-9BC53EC8D3B2}
{53D908E1-8F00-4F7A-A313-EE0B6D98BE91} = {0AD8A06F-DDFB-4856-8A33-9BC53EC8D3B2}
{761A8290-184D-4610-967C-25B08D27A1A9} = {0AD8A06F-DDFB-4856-8A33-9BC53EC8D3B2}
{52CF5CEF-F8BB-4AE8-A394-730E4A30B1A7} = {0AD8A06F-DDFB-4856-8A33-9BC53EC8D3B2}
{12AAE562-4E17-46F0-83CD-541C018AD9E4} = {0AD8A06F-DDFB-4856-8A33-9BC53EC8D3B2}
{9DF8847B-73BA-4D1E-8FA6-F490384D6FD9} = {0AD8A06F-DDFB-4856-8A33-9BC53EC8D3B2}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {0D5286D6-1596-466B-9C67-369AB6E1C60D}
EndGlobalSection
EndGlobal

View File

@@ -0,0 +1,188 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.ComponentModel.Composition;
using System.Threading.Tasks;
using System.Windows;
using DTS.Common.Events;
using DTS.Common.Interface;
using Microsoft.Practices.Prism.Events;
using Microsoft.Practices.Prism.Interactivity.InteractionRequest;
using Microsoft.Practices.Unity;
using DTS.Common.Utils;
using Microsoft.Practices.Prism.Regions;
using Microsoft.Practices.Prism.ViewModel;
using DTS.Common.Base;
namespace DTS.Viewer.Loader
{
[Export(typeof(IShellView))]
[PartCreationPolicy(CreationPolicy.Shared)]
public class ShellViewModel : IShellViewModel
{
//BaseViewModel<ShellViewModel>,
public IShellView View { get; private set; }
private IEventAggregator _eventAggregator { get; set; }
private IRegionManager _regionManager;
private IUnityContainer _unityContainer { get; set; }
public InteractionRequest<Notification> NotificationRequest { get; private set; }
public InteractionRequest<Confirmation> ConfirmationRequest { get; private set; }
/// <summary>
/// Creates a new instance of the TechnologyDomainEditViewModel.
/// </summary>
/// <param name="view">The ShellView View.</param>
/// <param name="regionManager">The logical placeholder defined within the application's UI (in the shell or within views) into which views are displayed.</param>
/// <param name="eventAggregator">The EventAggregator which allows different components to publish/subscribe to events without being coupled to each other.</param>
/// <param name="unityContainer">The unityContainer.</param>
public ShellViewModel(IShellView view, IRegionManager regionManager, IEventAggregator eventAggregator, IUnityContainer unityContainer)
//: base(regionManager, eventAggregator, unityContainer)
{
View = view;
View.DataContext = this;
NotificationRequest = new InteractionRequest<Notification>();
ConfirmationRequest = new InteractionRequest<Confirmation>();
_eventAggregator = eventAggregator;
_unityContainer = unityContainer;
_regionManager = regionManager;
_eventAggregator.GetEvent<RaiseNotification>().Subscribe(OnRaiseNotification);
//LoadViewer();
}
#region Methods
public void Initialize()
{
}
public void Initialize(object parameter)
{
}
public void Activated()
{
}
/// <summary>
/// Private Event handler for RaiseNotification event.
/// </summary>
private void OnRaiseNotification(NotificationContentEventArgs eventArgsWithTitle)
{
// The NotificationRequest.Raise triggers the Invoke() method of the .Infrastructure.PopupWindowAction object to show the .Infrastructure.NotificationWindow window
// Notification object expects a NotificationContentEventArgsWithoutTitle object and a Title string.
var eventArgsWithoutTitle = new NotificationContentEventArgs(eventArgsWithTitle.Message, eventArgsWithTitle.MessageDetails, eventArgsWithTitle.Image);
NotificationRequest.Raise(new Notification { Content = eventArgsWithoutTitle, Title = eventArgsWithTitle.Title });
}
private void LoadViewer()
{
var viewerView = _unityContainer.Resolve<IViewerShellView>();
var viewerViewModel = _unityContainer.Resolve<IViewerShellViewModel>();
viewerView.DataContext = viewerViewModel;
((ShellView)viewerView).Visibility = Visibility.Visible;
}
public void Cleanup()
{
throw new NotImplementedException();
}
public Task CleanupAsync()
{
throw new NotImplementedException();
}
public Task InitializeAsync()
{
throw new NotImplementedException();
}
public Task InitializeAsync(object parameter)
{
throw new NotImplementedException();
}
#endregion
#region ContextRegion
/// <summary>
/// Returns all regions in the main grid
/// </summary>
/// <returns></returns>
public List<FrameworkElement> GetRegions()
{
var items = new List<FrameworkElement>();
Utils.GetChildrenByName(((ShellView)View).MainShell, "Region", ref items);
return items;
}
public Object ContextMainRegion
{
get { return ((ShellView)View).MainRegion.Content; }
set { ((ShellView)View).MainRegion.Content = value; OnPropertyChanged("ContextMainRegion"); }
}
#endregion
#region Properties
private double _width;
public double Width { get { return _width; } set { _width = value; }}
private double _height;
public double Height { get { return _height; } set { _height = value; } }
private bool _isMenuIncluded = false;
public bool IsMenuIncluded
{
get { return _isMenuIncluded; }
set
{
_isMenuIncluded = value;
OnPropertyChanged("IsMenuIncluded");
}
}
private bool _isNavigationIncluded = false;
public bool IsNavigationIncluded
{
get { return _isNavigationIncluded; }
set
{
_isNavigationIncluded = value;
OnPropertyChanged("IsNavigationIncluded");
}
}
/// <summary>
/// Gets the HeaderInfo.
/// </summary>
public string HeaderInfo { get { return "MainRegion"; } }
public bool IsBusy { get; set; }
public bool IsDirty { get; }
///<summary>
///Occurs when a property value changes.
///</summary>
public event PropertyChangedEventHandler PropertyChanged;
private void OnPropertyChanged(string propertyName)
{
var eventHandler = PropertyChanged;
if (eventHandler != null)
{
eventHandler(this, new PropertyChangedEventArgs(propertyName));
}
}
#endregion Properties
}
}

Binary file not shown.

View File

@@ -0,0 +1,27 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<section name="DTS.Common.Core.PluginLib.Config" type="DTS.Common.Core.PluginLib.PluginConfigSectionHandler, DTS.Common.Core"/>
<sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<section name="DTS.Viewer.Loader.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false"/>
</sectionGroup>
</configSections>
<DTS.Common.Core.PluginLib.Config>
<PluginFolders>
<add key="viewerPlugins" value="..//..//..//RunTimeModules"/>
<add key="DTSViewerPlugins" value="..//..//..//..//RunTimeModules//DTSViewerModules"/>
</PluginFolders>
</DTS.Common.Core.PluginLib.Config>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2"/>
</startup>
<applicationSettings>
<DTS.Viewer.Loader.Properties.Settings>
<setting name="PluginFolder" serializeAs="String">
<value>../../../../RunTimeModules</value>
</setting>
</DTS.Viewer.Loader.Properties.Settings>
</applicationSettings>
</configuration>

View File

@@ -0,0 +1,8 @@
<Application x:Class="DTS.Viewer.Loader.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Startup="App_OnStartup">
<Application.Resources>
</Application.Resources>
</Application>

View File

@@ -0,0 +1,24 @@
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Threading.Tasks;
using System.Windows;
namespace DTS.Viewer.Loader
{
/// <summary>
/// Interaction logic for App.xaml
/// </summary>
public partial class App : Application
{
private void App_OnStartup(object sender, StartupEventArgs e)
{
var session = new ViewerLoaderSession();
session.CreateSession();
}
}
}

View File

@@ -0,0 +1,117 @@
using System;
using System.Windows;
using DTS.Common;
using DTS.Common.Interface;
using DTS.Common.Core.PluginLib;
using Microsoft.Practices.Prism.Events;
using Microsoft.Practices.Prism.Modularity;
using Microsoft.Practices.Prism.Regions;
using Microsoft.Practices.Prism.UnityExtensions;
using Microsoft.Practices.ServiceLocation;
using Microsoft.Practices.Unity;
// ReSharper disable InconsistentNaming
namespace DTS.Viewer.Loader
{
/// <summary>
/// https://msdn.microsoft.com/en-us/library/ff921075(v=pandp.20).aspx
/// </summary>
public class Bootstrapper : UnityBootstrapper
{
public IServiceLocator _serviceLocator { get; private set; }
public IEventAggregator _EventAggregator { get; private set; }
protected override void ConfigureContainer()
{
Container.RegisterType<IShellView, ShellView>();
Container.RegisterType<IShellViewModel, ShellViewModel>(new ContainerControlledLifetimeManager());
try
{
base.ConfigureContainer();
}
catch (System.Threading.SynchronizationLockException e)
{
}
}
/// <summary>
/// Returns null - not to interfere with Viewer app RegionAdapterMappings
/// </summary>
/// <returns></returns>
protected override RegionAdapterMappings ConfigureRegionAdapterMappings()
{
return null;
//var regionAdapterMappings = base.ConfigureRegionAdapterMappings();
//regionAdapterMappings.RegisterMapping(typeof(StackPanel), ServiceLocator.Current.GetInstance<StackPanelRegionAdapter>());
//return regionAdapterMappings;
}
/// <summary>
/// The CreateShell method allows a developer to specify the top-level window for a Prism application.
/// The shell is usually the MainWindow or MainPage. Implement this method by returning an instance of
/// your application's shell class. In a Prism application, you can create the shell object, or resolve
/// it from the container, depending on your application's requirements.
/// </summary>
/// <returns></returns>
protected override DependencyObject CreateShell()
{
Container = ServiceLocator.Current.GetInstance<IUnityContainer>();
_EventAggregator = Container.Resolve<IEventAggregator>();
_serviceLocator = Container.Resolve<IServiceLocator>();
var viewmodel = Container.TryResolve<IShellViewModel>();
if (viewmodel == null) return new DependencyObject();
var view = viewmodel.View;
viewmodel.Initialize(this);
((ShellView)view).Visibility = Visibility.Visible;
((ShellView)view).Closing += Bootstrapper_Closing;
view.DataContext = viewmodel;
return ServiceLocator.Current.GetInstance<ShellView>();
}
/// <summary>
/// Shutdown the application
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
void Bootstrapper_Closing(object sender, System.ComponentModel.CancelEventArgs e)
{
Application.Current.Shutdown(1);
}
/// <summary>
/// Returns the module catalog that will be used to initialize the modules.
/// </summary>
/// <returns>
/// An instance of <see cref="IModuleCatalog"/> that will be used to initialize the modules.
/// </returns>
protected override IModuleCatalog CreateModuleCatalog()
{
// The module catalog is used by the ModuleManager and ModuleLoader components, which are responsible for downloading the modules.
return new AggregateModuleCatalog();
}
/// <summary>
/// Modules are packages of functionality that can be independently developed, tested, and (optionally) deployed.
/// In a composite application, modules must be discovered and loaded at run time by the host application.
/// The module catalog is used by the ModuleManager and ModuleLoader components, which are responsible for downloading the modules.
/// Modules are copied to a directory as part of a post-build step. These modules are not referenced in the project and are discovered by inspecting a directory.
/// Module projects have a post-build step to copy themselves into that directory.
/// </summary>
protected override void ConfigureModuleCatalog()
{
var directoryCatalog = new DirectoryModuleCatalog { ModulePath = Properties.Settings.Default.PluginFolder };
((AggregateModuleCatalog)ModuleCatalog).AddCatalog(directoryCatalog);
}
protected override void InitializeModules()
{
// Register the DataProRegionManager with Unity dependency injection container as a singleton.
Container.RegisterType<IDTSRegionManager, DTSRegionManager>(new ContainerControlledLifetimeManager(), new InjectionMember[] { });
base.InitializeModules();
}
}
}

View File

@@ -0,0 +1,149 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{0325A955-D63C-4900-93E7-2FE49CFB1CAB}</ProjectGuid>
<OutputType>WinExe</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>DTS.Viewer.Loader</RootNamespace>
<AssemblyName>DTS.Viewer.Loader</AssemblyName>
<TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
<WarningLevel>4</WarningLevel>
<SccProjectName>SAK</SccProjectName>
<SccLocalPath>SAK</SccLocalPath>
<SccAuxPath>SAK</SccAuxPath>
<SccProvider>SAK</SccProvider>
<TargetFrameworkProfile />
</PropertyGroup>
<ItemGroup>
<Reference Include="Microsoft.Expression.Interactions, Version=4.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\Common\DTS.Common\lib\PrismLibrary\Microsoft.Expression.Interactions.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Practices.Prism, Version=4.0.0.0, Culture=neutral, PublicKeyToken=c8fa4079b73712d6, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\Common\DTS.Common\lib\PrismLibrary\Microsoft.Practices.Prism.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Practices.Prism.Interactivity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=c8fa4079b73712d6, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\Common\DTS.Common\lib\PrismLibrary\Microsoft.Practices.Prism.Interactivity.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Practices.Prism.UnityExtensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=c8fa4079b73712d6, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\Common\DTS.Common\lib\PrismLibrary\Microsoft.Practices.Prism.UnityExtensions.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Practices.ServiceLocation, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\Common\DTS.Common\lib\PrismLibrary\Microsoft.Practices.ServiceLocation.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Practices.Unity, Version=1.2.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\Common\DTS.Common\lib\PrismLibrary\Microsoft.Practices.Unity.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Practices.Unity.Interception, Version=2.1.505.0, Culture=neutral, PublicKeyToken=6ccbc87945fa0721, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\Common\DTS.Common\lib\PrismLibrary\Microsoft.Practices.Unity.Interception.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.ComponentModel.Composition" />
<Reference Include="System.Data" />
<Reference Include="System.EnterpriseServices" />
<Reference Include="System.Windows.Interactivity, Version=4.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\Common\DTS.Common\lib\System.Windows.Interactivity.dll</HintPath>
</Reference>
<Reference Include="System.Xml" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Core" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="System.Xaml">
<RequiredTargetFramework>4.0</RequiredTargetFramework>
</Reference>
<Reference Include="WindowsBase" />
<Reference Include="PresentationCore" />
<Reference Include="PresentationFramework" />
</ItemGroup>
<ItemGroup>
<ApplicationDefinition Include="App.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</ApplicationDefinition>
<Compile Include="ViewerLoaderSession.cs" />
<Compile Include="ViewModel\ShellViewModel.cs" />
<Compile Include="View\ShellView.xaml.cs">
<DependentUpon>ShellView.xaml</DependentUpon>
</Compile>
<Compile Include="App.xaml.cs">
<DependentUpon>App.xaml</DependentUpon>
<SubType>Code</SubType>
</Compile>
<Compile Include="Bootstrapper.cs" />
<Page Include="View\ShellView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
</ItemGroup>
<ItemGroup>
<Compile Include="Properties\AssemblyInfo.cs">
<SubType>Code</SubType>
</Compile>
<Compile Include="Properties\Resources.Designer.cs">
<AutoGen>True</AutoGen>
<DesignTime>True</DesignTime>
<DependentUpon>Resources.resx</DependentUpon>
</Compile>
<Compile Include="Properties\Settings.Designer.cs">
<AutoGen>True</AutoGen>
<DependentUpon>Settings.settings</DependentUpon>
<DesignTimeSharedInput>True</DesignTimeSharedInput>
</Compile>
<EmbeddedResource Include="Properties\Resources.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
</EmbeddedResource>
<None Include="Properties\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator>
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
</None>
<AppDesigner Include="Properties\" />
</ItemGroup>
<ItemGroup>
<None Include="App.config">
<SubType>Designer</SubType>
</None>
</ItemGroup>
<ItemGroup>
<Folder Include="Classes\" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\Common\DTS.Common.Core\DTS.Common.Core.csproj">
<Project>{fab1f470-1574-4301-b56e-d3364aa93679}</Project>
<Name>DTS.Common.Core</Name>
</ProjectReference>
<ProjectReference Include="..\..\Common\DTS.Common.Serialization\DTS.Common.Serialization.csproj">
<Project>{b7d50b14-fa61-4fe4-bff7-b257902b55b0}</Project>
<Name>DTS.Common.Serialization</Name>
</ProjectReference>
<ProjectReference Include="..\..\Common\DTS.Common.Utilities\DTS.Common.Utilities.csproj">
<Project>{03eace47-ea59-44ac-b49d-956e4dc4d618}</Project>
<Name>DTS.Common.Utilities</Name>
</ProjectReference>
<ProjectReference Include="..\..\Common\DTS.Common\DTS.Common.csproj">
<Project>{114edc77-f3b5-4576-a91b-40818d503b55}</Project>
<Name>DTS.Common</Name>
</ProjectReference>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
</Project>

View File

@@ -0,0 +1,165 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 15
VisualStudioVersion = 15.0.26403.7
MinimumVisualStudioVersion = 10.0.40219.1
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Common", "Common", "{0AD8A06F-DDFB-4856-8A33-9BC53EC8D3B2}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "DTS.Viewer.Modules", "DTS.Viewer.Modules", "{37F41B75-3A35-447A-A46E-C4EFD7655193}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DTS.Viewer.Loader", "DTS.Viewer.Loader.csproj", "{0325A955-D63C-4900-93E7-2FE49CFB1CAB}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "DTS.Viewer", "DTS.Viewer", "{03A31AE8-B06B-4E7F-8690-CDF69FD8231B}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DTS.Viewer", "..\DTS.Viewer\DTS.Viewer.csproj", "{F1AEA231-F29E-4EAB-9EA9-5355EBDECD6E}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "DTS.Viewer.Graph", "DTS.Viewer.Graph", "{C335A828-A4E1-489C-8E2D-0B3A072B477E}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DTS.Viewer.Graph", "..\DTS.Viewer.Modules\DTS.Viewer.Graph\DTS.Viewer.Graph.csproj", "{C4821193-52FF-4636-8C91-8FD850C2D3ED}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "DTS.Viewer.Navigation", "DTS.Viewer.Navigation", "{18C9C157-F61C-460D-8EE9-AD7892C2C09C}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DTS.Viewer.Navigation", "..\DTS.Viewer.Modules\DTS.Viewer.Navigation\DTS.Viewer.Navigation.csproj", "{4C930AD2-E6EB-466C-BB92-9AAF7BEF8B08}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DTS.Common", "..\..\Common\DTS.Common\DTS.Common.csproj", "{F7A0804F-61A4-40AE-83D0-F1137622B592}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DTS.Common.Core", "..\..\Common\DTS.Common.Core\DTS.Common.Core.csproj", "{FAB1F470-1574-4301-B56E-D3364AA93679}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DTS.Common.Property", "..\..\Common\DTS.Common.Property\DTS.Common.Property.csproj", "{53D908E1-8F00-4F7A-A313-EE0B6D98BE91}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DTS.Common.CPU", "..\..\Common\DTS.Common.CPU\DTS.Common.CPU.csproj", "{761A8290-184D-4610-967C-25B08D27A1A9}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DTS.Common.Service", "..\..\Common\DTS.Common.Service\DTS.Common.Service.csproj", "{52CF5CEF-F8BB-4AE8-A394-730E4A30B1A7}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DTS.Common.DBSyncService", "..\..\Common\DTS.Common.DBSyncService\DTS.Common.DBSyncService.csproj", "{12AAE562-4E17-46F0-83CD-541C018AD9E4}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DTS.Common.ServiceLibrary", "..\..\Common\DTS.Common.ServiceLibrary\DTS.Common.ServiceLibrary.csproj", "{9DF8847B-73BA-4D1E-8FA6-F490384D6FD9}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DTS.Viewer.Test", "..\DTS.Viewer.Test\DTS.Viewer.Test.csproj", "{09B882CC-AFBF-4DB2-881A-BEBDB4690893}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Debug+Log|Any CPU = Debug+Log|Any CPU
Release|Any CPU = Release|Any CPU
Release+Log|Any CPU = Release+Log|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{0325A955-D63C-4900-93E7-2FE49CFB1CAB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{0325A955-D63C-4900-93E7-2FE49CFB1CAB}.Debug|Any CPU.Build.0 = Debug|Any CPU
{0325A955-D63C-4900-93E7-2FE49CFB1CAB}.Debug+Log|Any CPU.ActiveCfg = Debug|Any CPU
{0325A955-D63C-4900-93E7-2FE49CFB1CAB}.Debug+Log|Any CPU.Build.0 = Debug|Any CPU
{0325A955-D63C-4900-93E7-2FE49CFB1CAB}.Release|Any CPU.ActiveCfg = Release|Any CPU
{0325A955-D63C-4900-93E7-2FE49CFB1CAB}.Release|Any CPU.Build.0 = Release|Any CPU
{0325A955-D63C-4900-93E7-2FE49CFB1CAB}.Release+Log|Any CPU.ActiveCfg = Release|Any CPU
{0325A955-D63C-4900-93E7-2FE49CFB1CAB}.Release+Log|Any CPU.Build.0 = Release|Any CPU
{F1AEA231-F29E-4EAB-9EA9-5355EBDECD6E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{F1AEA231-F29E-4EAB-9EA9-5355EBDECD6E}.Debug|Any CPU.Build.0 = Debug|Any CPU
{F1AEA231-F29E-4EAB-9EA9-5355EBDECD6E}.Debug+Log|Any CPU.ActiveCfg = Debug|Any CPU
{F1AEA231-F29E-4EAB-9EA9-5355EBDECD6E}.Debug+Log|Any CPU.Build.0 = Debug|Any CPU
{F1AEA231-F29E-4EAB-9EA9-5355EBDECD6E}.Release|Any CPU.ActiveCfg = Release|Any CPU
{F1AEA231-F29E-4EAB-9EA9-5355EBDECD6E}.Release|Any CPU.Build.0 = Release|Any CPU
{F1AEA231-F29E-4EAB-9EA9-5355EBDECD6E}.Release+Log|Any CPU.ActiveCfg = Release|Any CPU
{F1AEA231-F29E-4EAB-9EA9-5355EBDECD6E}.Release+Log|Any CPU.Build.0 = Release|Any CPU
{C4821193-52FF-4636-8C91-8FD850C2D3ED}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{C4821193-52FF-4636-8C91-8FD850C2D3ED}.Debug|Any CPU.Build.0 = Debug|Any CPU
{C4821193-52FF-4636-8C91-8FD850C2D3ED}.Debug+Log|Any CPU.ActiveCfg = Debug|Any CPU
{C4821193-52FF-4636-8C91-8FD850C2D3ED}.Debug+Log|Any CPU.Build.0 = Debug|Any CPU
{C4821193-52FF-4636-8C91-8FD850C2D3ED}.Release|Any CPU.ActiveCfg = Release|Any CPU
{C4821193-52FF-4636-8C91-8FD850C2D3ED}.Release|Any CPU.Build.0 = Release|Any CPU
{C4821193-52FF-4636-8C91-8FD850C2D3ED}.Release+Log|Any CPU.ActiveCfg = Release|Any CPU
{C4821193-52FF-4636-8C91-8FD850C2D3ED}.Release+Log|Any CPU.Build.0 = Release|Any CPU
{4C930AD2-E6EB-466C-BB92-9AAF7BEF8B08}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{4C930AD2-E6EB-466C-BB92-9AAF7BEF8B08}.Debug|Any CPU.Build.0 = Debug|Any CPU
{4C930AD2-E6EB-466C-BB92-9AAF7BEF8B08}.Debug+Log|Any CPU.ActiveCfg = Debug|Any CPU
{4C930AD2-E6EB-466C-BB92-9AAF7BEF8B08}.Debug+Log|Any CPU.Build.0 = Debug|Any CPU
{4C930AD2-E6EB-466C-BB92-9AAF7BEF8B08}.Release|Any CPU.ActiveCfg = Release|Any CPU
{4C930AD2-E6EB-466C-BB92-9AAF7BEF8B08}.Release|Any CPU.Build.0 = Release|Any CPU
{4C930AD2-E6EB-466C-BB92-9AAF7BEF8B08}.Release+Log|Any CPU.ActiveCfg = Release|Any CPU
{4C930AD2-E6EB-466C-BB92-9AAF7BEF8B08}.Release+Log|Any CPU.Build.0 = Release|Any CPU
{F7A0804F-61A4-40AE-83D0-F1137622B592}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{F7A0804F-61A4-40AE-83D0-F1137622B592}.Debug|Any CPU.Build.0 = Debug|Any CPU
{F7A0804F-61A4-40AE-83D0-F1137622B592}.Debug+Log|Any CPU.ActiveCfg = Debug|Any CPU
{F7A0804F-61A4-40AE-83D0-F1137622B592}.Debug+Log|Any CPU.Build.0 = Debug|Any CPU
{F7A0804F-61A4-40AE-83D0-F1137622B592}.Release|Any CPU.ActiveCfg = Release|Any CPU
{F7A0804F-61A4-40AE-83D0-F1137622B592}.Release|Any CPU.Build.0 = Release|Any CPU
{F7A0804F-61A4-40AE-83D0-F1137622B592}.Release+Log|Any CPU.ActiveCfg = Release|Any CPU
{F7A0804F-61A4-40AE-83D0-F1137622B592}.Release+Log|Any CPU.Build.0 = Release|Any CPU
{FAB1F470-1574-4301-B56E-D3364AA93679}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{FAB1F470-1574-4301-B56E-D3364AA93679}.Debug|Any CPU.Build.0 = Debug|Any CPU
{FAB1F470-1574-4301-B56E-D3364AA93679}.Debug+Log|Any CPU.ActiveCfg = Debug|Any CPU
{FAB1F470-1574-4301-B56E-D3364AA93679}.Debug+Log|Any CPU.Build.0 = Debug|Any CPU
{FAB1F470-1574-4301-B56E-D3364AA93679}.Release|Any CPU.ActiveCfg = Release|Any CPU
{FAB1F470-1574-4301-B56E-D3364AA93679}.Release|Any CPU.Build.0 = Release|Any CPU
{FAB1F470-1574-4301-B56E-D3364AA93679}.Release+Log|Any CPU.ActiveCfg = Release|Any CPU
{FAB1F470-1574-4301-B56E-D3364AA93679}.Release+Log|Any CPU.Build.0 = Release|Any CPU
{53D908E1-8F00-4F7A-A313-EE0B6D98BE91}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{53D908E1-8F00-4F7A-A313-EE0B6D98BE91}.Debug|Any CPU.Build.0 = Debug|Any CPU
{53D908E1-8F00-4F7A-A313-EE0B6D98BE91}.Debug+Log|Any CPU.ActiveCfg = Debug|Any CPU
{53D908E1-8F00-4F7A-A313-EE0B6D98BE91}.Debug+Log|Any CPU.Build.0 = Debug|Any CPU
{53D908E1-8F00-4F7A-A313-EE0B6D98BE91}.Release|Any CPU.ActiveCfg = Release|Any CPU
{53D908E1-8F00-4F7A-A313-EE0B6D98BE91}.Release|Any CPU.Build.0 = Release|Any CPU
{53D908E1-8F00-4F7A-A313-EE0B6D98BE91}.Release+Log|Any CPU.ActiveCfg = Release|Any CPU
{53D908E1-8F00-4F7A-A313-EE0B6D98BE91}.Release+Log|Any CPU.Build.0 = Release|Any CPU
{761A8290-184D-4610-967C-25B08D27A1A9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{761A8290-184D-4610-967C-25B08D27A1A9}.Debug|Any CPU.Build.0 = Debug|Any CPU
{761A8290-184D-4610-967C-25B08D27A1A9}.Debug+Log|Any CPU.ActiveCfg = Debug|Any CPU
{761A8290-184D-4610-967C-25B08D27A1A9}.Debug+Log|Any CPU.Build.0 = Debug|Any CPU
{761A8290-184D-4610-967C-25B08D27A1A9}.Release|Any CPU.ActiveCfg = Release|Any CPU
{761A8290-184D-4610-967C-25B08D27A1A9}.Release|Any CPU.Build.0 = Release|Any CPU
{761A8290-184D-4610-967C-25B08D27A1A9}.Release+Log|Any CPU.ActiveCfg = Release|Any CPU
{761A8290-184D-4610-967C-25B08D27A1A9}.Release+Log|Any CPU.Build.0 = Release|Any CPU
{52CF5CEF-F8BB-4AE8-A394-730E4A30B1A7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{52CF5CEF-F8BB-4AE8-A394-730E4A30B1A7}.Debug|Any CPU.Build.0 = Debug|Any CPU
{52CF5CEF-F8BB-4AE8-A394-730E4A30B1A7}.Debug+Log|Any CPU.ActiveCfg = Debug|Any CPU
{52CF5CEF-F8BB-4AE8-A394-730E4A30B1A7}.Debug+Log|Any CPU.Build.0 = Debug|Any CPU
{52CF5CEF-F8BB-4AE8-A394-730E4A30B1A7}.Release|Any CPU.ActiveCfg = Release|Any CPU
{52CF5CEF-F8BB-4AE8-A394-730E4A30B1A7}.Release|Any CPU.Build.0 = Release|Any CPU
{52CF5CEF-F8BB-4AE8-A394-730E4A30B1A7}.Release+Log|Any CPU.ActiveCfg = Release|Any CPU
{52CF5CEF-F8BB-4AE8-A394-730E4A30B1A7}.Release+Log|Any CPU.Build.0 = Release|Any CPU
{12AAE562-4E17-46F0-83CD-541C018AD9E4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{12AAE562-4E17-46F0-83CD-541C018AD9E4}.Debug|Any CPU.Build.0 = Debug|Any CPU
{12AAE562-4E17-46F0-83CD-541C018AD9E4}.Debug+Log|Any CPU.ActiveCfg = Debug|Any CPU
{12AAE562-4E17-46F0-83CD-541C018AD9E4}.Debug+Log|Any CPU.Build.0 = Debug|Any CPU
{12AAE562-4E17-46F0-83CD-541C018AD9E4}.Release|Any CPU.ActiveCfg = Release|Any CPU
{12AAE562-4E17-46F0-83CD-541C018AD9E4}.Release|Any CPU.Build.0 = Release|Any CPU
{12AAE562-4E17-46F0-83CD-541C018AD9E4}.Release+Log|Any CPU.ActiveCfg = Release|Any CPU
{12AAE562-4E17-46F0-83CD-541C018AD9E4}.Release+Log|Any CPU.Build.0 = Release|Any CPU
{9DF8847B-73BA-4D1E-8FA6-F490384D6FD9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{9DF8847B-73BA-4D1E-8FA6-F490384D6FD9}.Debug|Any CPU.Build.0 = Debug|Any CPU
{9DF8847B-73BA-4D1E-8FA6-F490384D6FD9}.Debug+Log|Any CPU.ActiveCfg = Debug|Any CPU
{9DF8847B-73BA-4D1E-8FA6-F490384D6FD9}.Debug+Log|Any CPU.Build.0 = Debug|Any CPU
{9DF8847B-73BA-4D1E-8FA6-F490384D6FD9}.Release|Any CPU.ActiveCfg = Release|Any CPU
{9DF8847B-73BA-4D1E-8FA6-F490384D6FD9}.Release|Any CPU.Build.0 = Release|Any CPU
{9DF8847B-73BA-4D1E-8FA6-F490384D6FD9}.Release+Log|Any CPU.ActiveCfg = Release|Any CPU
{9DF8847B-73BA-4D1E-8FA6-F490384D6FD9}.Release+Log|Any CPU.Build.0 = Release|Any CPU
{09B882CC-AFBF-4DB2-881A-BEBDB4690893}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{09B882CC-AFBF-4DB2-881A-BEBDB4690893}.Debug|Any CPU.Build.0 = Debug|Any CPU
{09B882CC-AFBF-4DB2-881A-BEBDB4690893}.Debug+Log|Any CPU.ActiveCfg = Debug|Any CPU
{09B882CC-AFBF-4DB2-881A-BEBDB4690893}.Debug+Log|Any CPU.Build.0 = Debug|Any CPU
{09B882CC-AFBF-4DB2-881A-BEBDB4690893}.Release|Any CPU.ActiveCfg = Release|Any CPU
{09B882CC-AFBF-4DB2-881A-BEBDB4690893}.Release|Any CPU.Build.0 = Release|Any CPU
{09B882CC-AFBF-4DB2-881A-BEBDB4690893}.Release+Log|Any CPU.ActiveCfg = Release|Any CPU
{09B882CC-AFBF-4DB2-881A-BEBDB4690893}.Release+Log|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
{F1AEA231-F29E-4EAB-9EA9-5355EBDECD6E} = {03A31AE8-B06B-4E7F-8690-CDF69FD8231B}
{C335A828-A4E1-489C-8E2D-0B3A072B477E} = {37F41B75-3A35-447A-A46E-C4EFD7655193}
{C4821193-52FF-4636-8C91-8FD850C2D3ED} = {C335A828-A4E1-489C-8E2D-0B3A072B477E}
{18C9C157-F61C-460D-8EE9-AD7892C2C09C} = {37F41B75-3A35-447A-A46E-C4EFD7655193}
{4C930AD2-E6EB-466C-BB92-9AAF7BEF8B08} = {18C9C157-F61C-460D-8EE9-AD7892C2C09C}
{F7A0804F-61A4-40AE-83D0-F1137622B592} = {0AD8A06F-DDFB-4856-8A33-9BC53EC8D3B2}
{FAB1F470-1574-4301-B56E-D3364AA93679} = {0AD8A06F-DDFB-4856-8A33-9BC53EC8D3B2}
{53D908E1-8F00-4F7A-A313-EE0B6D98BE91} = {0AD8A06F-DDFB-4856-8A33-9BC53EC8D3B2}
{761A8290-184D-4610-967C-25B08D27A1A9} = {0AD8A06F-DDFB-4856-8A33-9BC53EC8D3B2}
{52CF5CEF-F8BB-4AE8-A394-730E4A30B1A7} = {0AD8A06F-DDFB-4856-8A33-9BC53EC8D3B2}
{12AAE562-4E17-46F0-83CD-541C018AD9E4} = {0AD8A06F-DDFB-4856-8A33-9BC53EC8D3B2}
{9DF8847B-73BA-4D1E-8FA6-F490384D6FD9} = {0AD8A06F-DDFB-4856-8A33-9BC53EC8D3B2}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {0D5286D6-1596-466B-9C67-369AB6E1C60D}
EndGlobalSection
EndGlobal

View File

@@ -0,0 +1,8 @@
<Window x:Class="DTS.Viewer.Loader.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Grid>
</Grid>
</Window>

View File

@@ -0,0 +1,28 @@
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.Navigation;
using System.Windows.Shapes;
namespace DTS.Viewer.Loader
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
}
}

View File

@@ -0,0 +1,55 @@
using System.Reflection;
using System.Resources;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Windows;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("DTS.Viewer.Loader")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("Diversified Technical Systems, Inc. (DTS)")]
[assembly: AssemblyProduct("DTS.Viewer.Loader")]
[assembly: AssemblyCopyright("Copyright © 2017")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]
//In order to begin building localizable applications, set
//<UICulture>CultureYouAreCodingWith</UICulture> in your .csproj file
//inside a <PropertyGroup>. For example, if you are using US english
//in your source files, set the <UICulture> to en-US. Then uncomment
//the NeutralResourceLanguage attribute below. Update the "en-US" in
//the line below to match the UICulture setting in the project file.
//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)]
[assembly: ThemeInfo(
ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located
//(used if a resource is not found in the page,
// or application resource dictionaries)
ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located
//(used if a resource is not found in the page,
// app, or any theme specific resource dictionaries)
)]
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]

View File

@@ -0,0 +1,63 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.42000
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace DTS.Viewer.Loader.Properties {
using System;
/// <summary>
/// A strongly-typed resource class, for looking up localized strings, etc.
/// </summary>
// This class was auto-generated by the StronglyTypedResourceBuilder
// class via a tool like ResGen or Visual Studio.
// To add or remove a member, edit your .ResX file then rerun ResGen
// with the /str option, or rebuild your VS project.
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
internal class Resources {
private static global::System.Resources.ResourceManager resourceMan;
private static global::System.Globalization.CultureInfo resourceCulture;
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
internal Resources() {
}
/// <summary>
/// Returns the cached ResourceManager instance used by this class.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Resources.ResourceManager ResourceManager {
get {
if (object.ReferenceEquals(resourceMan, null)) {
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("DTS.Viewer.Loader.Properties.Resources", typeof(Resources).Assembly);
resourceMan = temp;
}
return resourceMan;
}
}
/// <summary>
/// Overrides the current thread's CurrentUICulture property for all
/// resource lookups using this strongly typed resource class.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Globalization.CultureInfo Culture {
get {
return resourceCulture;
}
set {
resourceCulture = value;
}
}
}
}

View File

@@ -0,0 +1,117 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>

View File

@@ -0,0 +1,35 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.42000
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace DTS.Viewer.Loader.Properties {
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "15.1.0.0")]
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
public static Settings Default {
get {
return defaultInstance;
}
}
[global::System.Configuration.ApplicationScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("../../../../RunTimeModules")]
public string PluginFolder {
get {
return ((string)(this["PluginFolder"]));
}
}
}
}

View File

@@ -0,0 +1,9 @@
<?xml version='1.0' encoding='utf-8'?>
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" GeneratedClassNamespace="DTS.Viewer.Loader.Properties" GeneratedClassName="Settings">
<Profiles />
<Settings>
<Setting Name="PluginFolder" Type="System.String" Scope="Application">
<Value Profile="(Default)">../../../../RunTimeModules</Value>
</Setting>
</Settings>
</SettingsFile>

View File

@@ -0,0 +1,23 @@
<base:BaseWindow x:Class="DTS.Viewer.Loader.ShellView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:base="clr-namespace:DTS.Common.Base;assembly=DTS.Common"
Background="Silver"
VerticalAlignment="Stretch" HorizontalAlignment="Stretch"
VerticalContentAlignment="Stretch" HorizontalContentAlignment="Stretch"
Height="Auto" Width="Auto" SizeToContent="WidthAndHeight" >
<Grid x:Name="MainShell" VerticalAlignment="Stretch" HorizontalAlignment="Stretch">
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<ContentControl Grid.Row="0" x:Name="MainRegion" Content="{Binding ContextMainRegion}" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" >
<ContentControl.Template>
<ControlTemplate TargetType="ContentControl">
<ContentPresenter Content="{TemplateBinding Content}" />
</ControlTemplate>
</ContentControl.Template>
</ContentControl>
</Grid>
</base:BaseWindow>

View File

@@ -0,0 +1,21 @@
using System.Windows;
using DTS.Common.Interface;
namespace DTS.Viewer.Loader
{
/// <summary>
/// Interaction logic for ShellView.xaml
/// </summary>
public partial class ShellView : IShellView
{
public ShellView()
{
InitializeComponent();
this.WindowState = WindowState.Maximized;
//this.StateChanged += (s, e) =>
//{
// ResizeMode = WindowState == WindowState.Maximized ? ResizeMode.NoResize : ResizeMode.CanResize;
//};
}
}
}

View File

@@ -0,0 +1,188 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.ComponentModel.Composition;
using System.Threading.Tasks;
using System.Windows;
using DTS.Common.Events;
using DTS.Common.Interface;
using Microsoft.Practices.Prism.Events;
using Microsoft.Practices.Prism.Interactivity.InteractionRequest;
using Microsoft.Practices.Unity;
using DTS.Common.Utils;
using Microsoft.Practices.Prism.Regions;
using Microsoft.Practices.Prism.ViewModel;
using DTS.Common.Base;
namespace DTS.Viewer.Loader
{
[Export(typeof(IShellView))]
[PartCreationPolicy(CreationPolicy.Shared)]
public class ShellViewModel : IShellViewModel
{
//BaseViewModel<ShellViewModel>,
public IShellView View { get; private set; }
private IEventAggregator _eventAggregator { get; set; }
private IRegionManager _regionManager;
private IUnityContainer _unityContainer { get; set; }
public InteractionRequest<Notification> NotificationRequest { get; private set; }
public InteractionRequest<Confirmation> ConfirmationRequest { get; private set; }
/// <summary>
/// Creates a new instance of the TechnologyDomainEditViewModel.
/// </summary>
/// <param name="view">The ShellView View.</param>
/// <param name="regionManager">The logical placeholder defined within the application's UI (in the shell or within views) into which views are displayed.</param>
/// <param name="eventAggregator">The EventAggregator which allows different components to publish/subscribe to events without being coupled to each other.</param>
/// <param name="unityContainer">The unityContainer.</param>
public ShellViewModel(IShellView view, IRegionManager regionManager, IEventAggregator eventAggregator, IUnityContainer unityContainer)
//: base(regionManager, eventAggregator, unityContainer)
{
View = view;
View.DataContext = this;
NotificationRequest = new InteractionRequest<Notification>();
ConfirmationRequest = new InteractionRequest<Confirmation>();
_eventAggregator = eventAggregator;
_unityContainer = unityContainer;
_regionManager = regionManager;
_eventAggregator.GetEvent<RaiseNotification>().Subscribe(OnRaiseNotification);
//LoadViewer();
}
#region Methods
public void Initialize()
{
}
public void Initialize(object parameter)
{
}
public void Activated()
{
}
/// <summary>
/// Private Event handler for RaiseNotification event.
/// </summary>
private void OnRaiseNotification(NotificationContentEventArgs eventArgsWithTitle)
{
// The NotificationRequest.Raise triggers the Invoke() method of the .Infrastructure.PopupWindowAction object to show the .Infrastructure.NotificationWindow window
// Notification object expects a NotificationContentEventArgsWithoutTitle object and a Title string.
var eventArgsWithoutTitle = new NotificationContentEventArgs(eventArgsWithTitle.Message, eventArgsWithTitle.MessageDetails, eventArgsWithTitle.Image);
NotificationRequest.Raise(new Notification { Content = eventArgsWithoutTitle, Title = eventArgsWithTitle.Title });
}
private void LoadViewer()
{
var viewerView = _unityContainer.Resolve<IViewerShellView>();
var viewerViewModel = _unityContainer.Resolve<IViewerShellViewModel>();
viewerView.DataContext = viewerViewModel;
((ShellView)viewerView).Visibility = Visibility.Visible;
}
public void Cleanup()
{
throw new NotImplementedException();
}
public Task CleanupAsync()
{
throw new NotImplementedException();
}
public Task InitializeAsync()
{
throw new NotImplementedException();
}
public Task InitializeAsync(object parameter)
{
throw new NotImplementedException();
}
#endregion
#region ContextRegion
/// <summary>
/// Returns all regions in the main grid
/// </summary>
/// <returns></returns>
public List<FrameworkElement> GetRegions()
{
var items = new List<FrameworkElement>();
Utils.GetChildrenByName(((ShellView)View).MainShell, "Region", ref items);
return items;
}
public Object ContextMainRegion
{
get { return ((ShellView)View).MainRegion.Content; }
set { ((ShellView)View).MainRegion.Content = value; OnPropertyChanged("ContextMainRegion"); }
}
#endregion
#region Properties
private double _width;
public double Width { get { return _width; } set { _width = value; }}
private double _height;
public double Height { get { return _height; } set { _height = value; } }
private bool _isMenuIncluded = false;
public bool IsMenuIncluded
{
get { return _isMenuIncluded; }
set
{
_isMenuIncluded = value;
OnPropertyChanged("IsMenuIncluded");
}
}
private bool _isNavigationIncluded = false;
public bool IsNavigationIncluded
{
get { return _isNavigationIncluded; }
set
{
_isNavigationIncluded = value;
OnPropertyChanged("IsNavigationIncluded");
}
}
/// <summary>
/// Gets the HeaderInfo.
/// </summary>
public string HeaderInfo { get { return "MainRegion"; } }
public bool IsBusy { get; set; }
public bool IsDirty { get; }
///<summary>
///Occurs when a property value changes.
///</summary>
public event PropertyChangedEventHandler PropertyChanged;
private void OnPropertyChanged(string propertyName)
{
var eventHandler = PropertyChanged;
if (eventHandler != null)
{
eventHandler(this, new PropertyChangedEventArgs(propertyName));
}
}
#endregion Properties
}
}

View File

@@ -0,0 +1,132 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using DTS.Common;
using DTS.Common.Base;
using DTS.Common.Classes;
using DTS.Common.Core.PluginLib;
using DTS.Common.Interface;
using Microsoft.Practices.Prism.Events;
using Microsoft.Practices.Prism.Modularity;
using Microsoft.Practices.Prism.Regions;
using Microsoft.Practices.ServiceLocation;
using Microsoft.Practices.Unity;
using System.IO;
namespace DTS.Viewer.Loader
{
/// <summary>
/// I think we need it...
/// </summary>
public class ViewerLoaderSession
{
/// <summary>
/// Custom Bootstrapper
/// </summary>
///<remarks>
/// Do not try to re-create the bootstrapper. Once modules are loaded, they will be be loaded into the DirectoryModuleCatalog and each
/// Module initialization will not be called (thus no registered types).
/// It appears that the current bootstrapper loads around 40 MB into memory.
/// To completely unload the bootstrapper would take same research and effort.
/// </remarks>
private Bootstrapper _bootstrapper;
public IUnityContainer _unityContainer { get; private set; }
public IServiceLocator ServiceLocator { get; private set; }
public IEventAggregator EventAggregator { get; private set; }
public IRegionManager RegionManager { get; private set; }
public ViewerLoaderSession()
{
}
public void CreateSession()
{
CreateBootstrapper();
if (_bootstrapper == null) return;
_unityContainer = _bootstrapper.Container;
EventAggregator = _unityContainer.Resolve<IEventAggregator>();
ServiceLocator = _unityContainer.Resolve<IServiceLocator>();
RegionManager = _unityContainer.Resolve<IRegionManager>();
var shellVviewmodel = _unityContainer.Resolve<IShellViewModel>();
var viewerModule = _unityContainer.Resolve<IViewerModule>();
viewerModule.StartSession(true, @"C:\devDTS\RunTimeModules\DTS.Viewer.dll.config");
var viewModel = _unityContainer.Resolve<IViewerMainViewModel>();
shellVviewmodel.ContextMainRegion = viewModel.View;
//var assemblyList = LoadPlugins();
//if (assemblyList.Count == 1)
//{
// var assembly = assemblyList[0];
// if (assembly.ManifestModule.Name.StartsWith("DTS.Viewer"))
// {
// }
//}
//var viewDefinition = new ViewDefinition(RegionNames.MainRegion, typeof(IMainView), typeof(IMainViewModel));
//var viewModel = (IBaseViewModel)Container.Resolve(viewDefinition.ViewModelInterfaceType);
//var view = (IBaseView)Container.Resolve(viewDefinition.ViewInterfaceType);
//view.DataContext = viewModel;
//RegionManager.Regions[RegionNames.MainRegion].Add(view);
//RegionManager.ActivateViewIfExists(viewDefinition.RegionName, viewDefinition.ViewInterfaceType);
}
/// <summary>
/// Return type of View/ViewModel registered with Unity Container
/// </summary>
/// <param name="name">Name of the selected assembly (plug-in)</param>
/// <returns>interface type</returns>
private Type GetRegisteredViewType(string name)
{
return (from v in _unityContainer.Registrations where v.RegisteredType.Name.EndsWith(name) select v.RegisteredType).FirstOrDefault();
}
private List<Assembly> LoadPlugins()
{
var pluginManager = PluginManager.GetPluginManager(Path.Combine(Environment.CurrentDirectory, @"DTS.Viewer.Loader.exe.config"));
return pluginManager.GetPluginList<IModule>();
}
/// <summary>
/// Create bootstrapper for prism-based modules and views.
/// </summary>
/// <remarks>
/// Currently, there is no course of action for destroying the bootstrapper.
/// </remarks>
private void CreateBootstrapper()
{
if (_bootstrapper == null)
{
try
{
_bootstrapper = new Bootstrapper();
_bootstrapper.Run();
}
catch (ApplicationException ex)
{
throw new Exception("Failed to create bootstrapper ", ex);
}
}
if (_bootstrapper == null)
{
throw new Exception("Failed to create Bootstrapper!");
}
}
/// <summary>
/// The Terminate method is called only when JMPS is in the process of shutting down.
/// If a component is just being closed, only the class destructor will be called.
/// Part of IComponent implementation.
/// </summary>
public void Terminate()
{
}
}
}