aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio
diff options
context:
space:
mode:
authorRoy Ben-Shabat <Roy@Twine-s.com>2018-02-21 20:21:57 +0200
committerRoy Ben-Shabat <Roy@Twine-s.com>2018-02-21 20:21:57 +0200
commit956f9ea033553136ebf199fff30f288dc26fbeb0 (patch)
tree3780e906d8d4f12c5be3836e1704d93d8d4966bd /Software/Visual_Studio
parent808ce20dbd74862a75499ee0d4e87247ee4479b4 (diff)
downloadTango-956f9ea033553136ebf199fff30f288dc26fbeb0.tar.gz
Tango-956f9ea033553136ebf199fff30f288dc26fbeb0.zip
Working on machine studio update center..
Diffstat (limited to 'Software/Visual_Studio')
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Navigation/NavigationView.cs1
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/StudioApplication/IStudioApplicationManager.cs5
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Tango.MachineStudio.Common.csproj7
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Update/CheckForUpdatesRequest.cs22
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Update/CheckForUpdatesResponse.cs31
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Update/IMachineStudioUpdateService.cs17
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Update/UpdateServiceHelper.cs29
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/App.config4
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Images/new-version.pngbin0 -> 1932 bytes
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Images/update.pngbin0 -> 5289 bytes
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/MainWindow.xaml3
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/StudioApplication/DefaultStudioApplicationManager.cs11
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Tango.MachineStudio.UI.csproj15
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModelLocator.cs9
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/LoadingViewVM.cs6
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/MainViewVM.cs32
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/UpdateViewVM.cs175
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/LoadingView.xaml4
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/MainView.xaml4
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/UpdateView.xaml188
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/UpdateView.xaml.cs42
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UpdateService/MachineStudioUpdateService.svc1
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UpdateService/MachineStudioUpdateService.svc.cs62
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UpdateService/Properties/AssemblyInfo.cs36
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UpdateService/Tango.MachineStudio.UpdateService.csproj142
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UpdateService/Web.Debug.config30
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UpdateService/Web.Release.config31
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UpdateService/Web.config55
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UpdateService/packages.config4
-rw-r--r--Software/Visual_Studio/SideChains/RealTimeGraphEx/RealTimeGraphEx.csproj5
-rw-r--r--Software/Visual_Studio/Tango.DAL.Remote/DB/MACHINE_STUDIO_VERSIONS.cs27
-rw-r--r--Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.Context.cs1
-rw-r--r--Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx73
-rw-r--r--Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx.diagram112
-rw-r--r--Software/Visual_Studio/Tango.DAL.Remote/DB/USER.cs3
-rw-r--r--Software/Visual_Studio/Tango.DAL.Remote/Tango.DAL.Remote.csproj3
-rw-r--r--Software/Visual_Studio/Tango.Integration/Observables/Entities/MachineStudioVersion.cs126
-rw-r--r--Software/Visual_Studio/Tango.Integration/Observables/Entities/User.cs21
-rw-r--r--Software/Visual_Studio/Tango.Integration/Observables/ObservablesContext.cs15
-rw-r--r--Software/Visual_Studio/Tango.Integration/Observables/ObservablesEntitiesAdapterExtension.cs38
-rw-r--r--Software/Visual_Studio/Tango.Integration/Tango.Integration.csproj1
-rw-r--r--Software/Visual_Studio/Tango.PMR/Common/MessageType.cs87
-rw-r--r--Software/Visual_Studio/Tango.PMR/Tango.PMR.csproj4
-rw-r--r--Software/Visual_Studio/Tango.Settings/MachineStudioSettings/MachineStudio.cs6
-rw-r--r--Software/Visual_Studio/Tango.Video/Tango.Video.csproj8
-rw-r--r--Software/Visual_Studio/Tango.sln33
46 files changed, 1436 insertions, 93 deletions
diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Navigation/NavigationView.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Navigation/NavigationView.cs
index db0f0471f..7e324c996 100644
--- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Navigation/NavigationView.cs
+++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Navigation/NavigationView.cs
@@ -15,5 +15,6 @@ namespace Tango.MachineStudio.Common.Navigation
MainView,
LoginView,
ShutdownView,
+ UpdateView,
}
}
diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/StudioApplication/IStudioApplicationManager.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/StudioApplication/IStudioApplicationManager.cs
index c67c34044..9a5f39a96 100644
--- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/StudioApplication/IStudioApplicationManager.cs
+++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/StudioApplication/IStudioApplicationManager.cs
@@ -48,5 +48,10 @@ namespace Tango.MachineStudio.Common.StudioApplication
/// <param name="moduleName">Name of the module.</param>
/// <param name="args">The arguments.</param>
void RequestModule(String moduleName, Object args);
+
+ /// <summary>
+ /// Gets the machine studio application version.
+ /// </summary>
+ String Version { get; }
}
}
diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Tango.MachineStudio.Common.csproj b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Tango.MachineStudio.Common.csproj
index cd4fc1aeb..a363ffc44 100644
--- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Tango.MachineStudio.Common.csproj
+++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Tango.MachineStudio.Common.csproj
@@ -54,6 +54,8 @@
</Reference>
<Reference Include="System" />
<Reference Include="System.Data" />
+ <Reference Include="System.Runtime.Serialization" />
+ <Reference Include="System.ServiceModel" />
<Reference Include="System.Windows.Interactivity, Version=4.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\..\packages\MahApps.Metro.1.5.0\lib\net45\System.Windows.Interactivity.dll</HintPath>
</Reference>
@@ -96,6 +98,10 @@
<Compile Include="Messages\IStudioMessage.cs" />
<Compile Include="Notifications\TaskItem.cs" />
<Compile Include="StudioModuleBase.cs" />
+ <Compile Include="Update\CheckForUpdatesResponse.cs" />
+ <Compile Include="Update\CheckForUpdatesRequest.cs" />
+ <Compile Include="Update\IMachineStudioUpdateService.cs" />
+ <Compile Include="Update\UpdateServiceHelper.cs" />
<Compile Include="ValidationRules\Required.cs" />
<Compile Include="Video\DefaultVideoCaptureProvider.cs" />
<Compile Include="Video\IVideoCaptureProvider.cs" />
@@ -218,5 +224,6 @@
<Name>Tango.Video</Name>
</ProjectReference>
</ItemGroup>
+ <ItemGroup />
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project> \ No newline at end of file
diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Update/CheckForUpdatesRequest.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Update/CheckForUpdatesRequest.cs
new file mode 100644
index 000000000..f76e714a2
--- /dev/null
+++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Update/CheckForUpdatesRequest.cs
@@ -0,0 +1,22 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Runtime.Serialization;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Tango.MachineStudio.Common.Update
+{
+ [DataContract]
+ public class CheckForUpdatesRequest
+ {
+ [DataMember]
+ public String Email { get; set; }
+
+ [DataMember]
+ public String Password { get; set; }
+
+ [DataMember]
+ public String Version { get; set; }
+ }
+}
diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Update/CheckForUpdatesResponse.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Update/CheckForUpdatesResponse.cs
new file mode 100644
index 000000000..440e162a3
--- /dev/null
+++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Update/CheckForUpdatesResponse.cs
@@ -0,0 +1,31 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Runtime.Serialization;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Tango.MachineStudio.Common.Update
+{
+ [DataContract]
+ public class CheckForUpdatesResponse
+ {
+ [DataMember]
+ public bool IsUpdateAvailable { get; set; }
+
+ [DataMember]
+ public String Version { get; set; }
+
+ [DataMember]
+ public String FtpHost { get; set; }
+
+ [DataMember]
+ public String FilePath { get; set; }
+
+ [DataMember]
+ public String UserName { get; set; }
+
+ [DataMember]
+ public String Password { get; set; }
+ }
+}
diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Update/IMachineStudioUpdateService.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Update/IMachineStudioUpdateService.cs
new file mode 100644
index 000000000..7b7269d23
--- /dev/null
+++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Update/IMachineStudioUpdateService.cs
@@ -0,0 +1,17 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Runtime.Serialization;
+using System.ServiceModel;
+using System.Text;
+using Tango.MachineStudio.Common.Update;
+
+namespace Tango.MachineStudio.Common.Update
+{
+ [ServiceContract]
+ public interface IMachineStudioUpdateService
+ {
+ [OperationContract]
+ CheckForUpdatesResponse CheckForUpdates(CheckForUpdatesRequest request);
+ }
+}
diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Update/UpdateServiceHelper.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Update/UpdateServiceHelper.cs
new file mode 100644
index 000000000..87b974b99
--- /dev/null
+++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Update/UpdateServiceHelper.cs
@@ -0,0 +1,29 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.ServiceModel;
+using System.Text;
+using System.Threading.Tasks;
+using Tango.Settings;
+
+namespace Tango.MachineStudio.Common.Update
+{
+ public static class UpdateServiceHelper
+ {
+ public static ChannelFactory<IMachineStudioUpdateService> GetUpdateServiceChannel()
+ {
+ BasicHttpBinding binding = new BasicHttpBinding(BasicHttpSecurityMode.None);
+ binding.ReceiveTimeout = TimeSpan.FromSeconds(20);
+ binding.SendTimeout = TimeSpan.FromSeconds(20);
+ binding.MaxBufferPoolSize = 6553600;
+ binding.MaxBufferSize = 6553600;
+ binding.MaxReceivedMessageSize = 6553600;
+ binding.ReaderQuotas.MaxDepth = 6553600;
+ binding.ReaderQuotas.MaxStringContentLength = 6553600;
+ binding.ReaderQuotas.MaxArrayLength = 6553600;
+ binding.ReaderQuotas.MaxBytesPerRead = 6553600;
+
+ return new ChannelFactory<IMachineStudioUpdateService>(binding, SettingsManager.Default.MachineStudio.UpdateServiceAddress);
+ }
+ }
+}
diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/App.config b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/App.config
index 9d1c60022..0bd51a469 100644
--- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/App.config
+++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/App.config
@@ -6,8 +6,10 @@
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6" />
</startup>
+
+
<entityFramework>
- <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" />
+ <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" />
<providers>
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
<provider invariantName="System.Data.SQLite.EF6" type="System.Data.SQLite.EF6.SQLiteProviderServices, System.Data.SQLite.EF6" />
diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Images/new-version.png b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Images/new-version.png
new file mode 100644
index 000000000..eab60ef03
--- /dev/null
+++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Images/new-version.png
Binary files differ
diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Images/update.png b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Images/update.png
new file mode 100644
index 000000000..a82777414
--- /dev/null
+++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Images/update.png
Binary files differ
diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/MainWindow.xaml b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/MainWindow.xaml
index e0f0b1f4f..63b2b3f6a 100644
--- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/MainWindow.xaml
+++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/MainWindow.xaml
@@ -31,6 +31,9 @@
<ContentControl Tag="ShutdownView">
<views:ShutdownView></views:ShutdownView>
</ContentControl>
+ <ContentControl Tag="UpdateView">
+ <views:UpdateView></views:UpdateView>
+ </ContentControl>
</sharedControls:MultiTransitionControl.Controls>
</sharedControls:MultiTransitionControl>
diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/StudioApplication/DefaultStudioApplicationManager.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/StudioApplication/DefaultStudioApplicationManager.cs
index ee1724435..9538c59af 100644
--- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/StudioApplication/DefaultStudioApplicationManager.cs
+++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/StudioApplication/DefaultStudioApplicationManager.cs
@@ -112,6 +112,17 @@ namespace Tango.MachineStudio.UI.StudioApplication
}
/// <summary>
+ /// Gets the machine studio application version.
+ /// </summary>
+ public string Version
+ {
+ get
+ {
+ return typeof(DefaultStudioApplicationManager).Assembly.GetName().Version.ToString();
+ }
+ }
+
+ /// <summary>
/// Shutdown the application.
/// </summary>
public async void ShutDown()
diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Tango.MachineStudio.UI.csproj b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Tango.MachineStudio.UI.csproj
index 7c8600594..0ad97907b 100644
--- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Tango.MachineStudio.UI.csproj
+++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Tango.MachineStudio.UI.csproj
@@ -110,6 +110,7 @@
<Reference Include="System.Reactive.Windows.Threading, Version=3.0.1000.0, Culture=neutral, PublicKeyToken=94bc3704cddfc263, processorArchitecture=MSIL">
<HintPath>..\..\packages\System.Reactive.Windows.Threading.3.1.1\lib\net45\System.Reactive.Windows.Threading.dll</HintPath>
</Reference>
+ <Reference Include="System.ServiceModel" />
<Reference Include="System.Windows" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Windows.Interactivity, Version=4.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
@@ -153,6 +154,7 @@
<Compile Include="ViewModelLocator.cs" />
<Compile Include="ViewModels\ModuleWindowVM.cs" />
<Compile Include="ViewModels\ShutdownViewVM.cs" />
+ <Compile Include="ViewModels\UpdateViewVM.cs" />
<Compile Include="Views\LoadingView.xaml.cs">
<DependentUpon>LoadingView.xaml</DependentUpon>
</Compile>
@@ -174,6 +176,9 @@
<Compile Include="Views\ShutdownView.xaml.cs">
<DependentUpon>ShutdownView.xaml</DependentUpon>
</Compile>
+ <Compile Include="Views\UpdateView.xaml.cs">
+ <DependentUpon>UpdateView.xaml</DependentUpon>
+ </Compile>
<Compile Include="Windows\ExceptionResolutions.cs" />
<Compile Include="Windows\ExceptionWindow.xaml.cs">
<DependentUpon>ExceptionWindow.xaml</DependentUpon>
@@ -236,6 +241,10 @@
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
+ <Page Include="Views\UpdateView.xaml">
+ <SubType>Designer</SubType>
+ <Generator>MSBuild:Compile</Generator>
+ </Page>
<Page Include="Windows\ExceptionWindow.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
@@ -365,6 +374,12 @@
<ItemGroup>
<Resource Include="Images\exception.png" />
</ItemGroup>
+ <ItemGroup>
+ <Resource Include="Images\update.png" />
+ </ItemGroup>
+ <ItemGroup>
+ <Resource Include="Images\new-version.png" />
+ </ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<PropertyGroup>
<PostBuildEvent>$(TargetDir)linkgen.exe -s "$(TargetPath)" -d "$(TargetDir)Utilities\Machine Studio.lnk"
diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModelLocator.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModelLocator.cs
index 1907074c0..330bcd6eb 100644
--- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModelLocator.cs
+++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModelLocator.cs
@@ -71,6 +71,7 @@ namespace Tango.MachineStudio.UI
SimpleIoc.Default.Register<LoginViewVM>();
SimpleIoc.Default.Register<MachineConnectionViewVM>();
SimpleIoc.Default.Register<MachineLoginViewVM>();
+ SimpleIoc.Default.Register<UpdateViewVM>();
//Register View (Supervising Controller Pattern).
if (!ViewModelBase.IsInDesignModeStatic)
@@ -127,5 +128,13 @@ namespace Tango.MachineStudio.UI
return ServiceLocator.Current.GetInstance<MachineLoginViewVM>();
}
}
+
+ public UpdateViewVM UpdateViewVM
+ {
+ get
+ {
+ return ServiceLocator.Current.GetInstance<UpdateViewVM>();
+ }
+ }
}
} \ No newline at end of file
diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/LoadingViewVM.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/LoadingViewVM.cs
index 7ea7c6fa9..9acf26afd 100644
--- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/LoadingViewVM.cs
+++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/LoadingViewVM.cs
@@ -10,6 +10,7 @@ using Tango.Logging;
using Tango.MachineStudio.Common.Modules;
using Tango.MachineStudio.Common.Navigation;
using Tango.MachineStudio.Common.Notifications;
+using Tango.MachineStudio.Common.StudioApplication;
using Tango.SharedUI;
namespace Tango.MachineStudio.UI.ViewModels
@@ -24,14 +25,17 @@ namespace Tango.MachineStudio.UI.ViewModels
private INavigationManager _navigationManager;
private IStudioModuleLoader _studioModuleLoader;
+ public IStudioApplicationManager ApplicationManager { get; set; }
+
/// <summary>
/// Initializes a new instance of the <see cref="LoadingViewVM"/> class.
/// </summary>
/// <param name="navigationManager">The navigation manager.</param>
/// <param name="studioModuleLoader">The studio module loader.</param>
/// <param name="notificationProvider">The notification provider.</param>
- public LoadingViewVM(INavigationManager navigationManager, IStudioModuleLoader studioModuleLoader, INotificationProvider notificationProvider)
+ public LoadingViewVM(IStudioApplicationManager applicationManager, INavigationManager navigationManager, IStudioModuleLoader studioModuleLoader, INotificationProvider notificationProvider)
{
+ ApplicationManager = applicationManager;
_navigationManager = navigationManager;
_studioModuleLoader = studioModuleLoader;
_notificationProvider = notificationProvider;
diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/MainViewVM.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/MainViewVM.cs
index da73e8eae..acd9e7925 100644
--- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/MainViewVM.cs
+++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/MainViewVM.cs
@@ -99,6 +99,16 @@ namespace Tango.MachineStudio.UI.ViewModels
/// </summary>
public RelayCommand SignoutCommand { get; set; }
+ /// <summary>
+ /// Gets or sets the exit command.
+ /// </summary>
+ public RelayCommand ExitCommand { get; set; }
+
+ /// <summary>
+ /// Gets or sets the update center command.
+ /// </summary>
+ public RelayCommand UpdateCenterCommand { get; set; }
+
private IAuthenticationProvider _authenticationProvider;
/// <summary>
/// Gets or sets the authentication provider.
@@ -169,6 +179,8 @@ namespace Tango.MachineStudio.UI.ViewModels
SignoutCommand = new RelayCommand(SignOut);
DisconnectCommand = new RelayCommand(DisconnectFromMachine, (x) => ApplicationManager.IsMachineConnected && !_isDisconnecting);
OpenModuleInWindowCommand = new RelayCommand<IStudioModule>(OpenModuleInWindow);
+ ExitCommand = new RelayCommand(ExitApplication);
+ UpdateCenterCommand = new RelayCommand(NavigateToUpdateCenter);
}
/// <summary>
@@ -315,6 +327,10 @@ namespace Tango.MachineStudio.UI.ViewModels
base.OnViewAttached();
}
+ /// <summary>
+ /// Opens the module in a new window.
+ /// </summary>
+ /// <param name="module">The module.</param>
private void OpenModuleInWindow(IStudioModule module)
{
if (module == null) return;
@@ -351,5 +367,21 @@ namespace Tango.MachineStudio.UI.ViewModels
_notificationProvider.ShowError("Error popping out module " + module.Name);
}
}
+
+ /// <summary>
+ /// Navigates to update center.
+ /// </summary>
+ private void NavigateToUpdateCenter()
+ {
+ _navigation.NavigateTo(NavigationView.UpdateView);
+ }
+
+ /// <summary>
+ /// Exits the application.
+ /// </summary>
+ private void ExitApplication()
+ {
+ _applicationManager.ShutDown();
+ }
}
}
diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/UpdateViewVM.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/UpdateViewVM.cs
new file mode 100644
index 000000000..014aecdb6
--- /dev/null
+++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/UpdateViewVM.cs
@@ -0,0 +1,175 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Runtime.CompilerServices;
+using System.Text;
+using System.Threading;
+using System.Threading.Tasks;
+using Tango.Core.Commands;
+using Tango.MachineStudio.Common.Authentication;
+using Tango.MachineStudio.Common.Navigation;
+using Tango.MachineStudio.Common.Notifications;
+using Tango.MachineStudio.Common.StudioApplication;
+using Tango.MachineStudio.Common.Update;
+using Tango.SharedUI;
+
+namespace Tango.MachineStudio.UI.ViewModels
+{
+ public enum UpdateStatus
+ {
+ None,
+ CheckingForUpdate,
+ UpToDate,
+ UpdateAvailable,
+ Downloading,
+ Updating,
+ UpdateCompleted,
+ Error,
+ }
+
+ public class UpdateViewVM : ViewModel
+ {
+ private INotificationProvider _notification;
+ private INavigationManager _navigation;
+ private IStudioApplicationManager _application;
+ private IAuthenticationProvider _authentication;
+
+ private UpdateStatus _status;
+ public UpdateStatus Status
+ {
+ get { return _status; }
+ set { _status = value; RaisePropertyChangedAuto(); }
+ }
+
+ private String _latestVersion;
+ public String LatestVersion
+ {
+ get { return _latestVersion; }
+ set { _latestVersion = value; RaisePropertyChangedAuto(); }
+ }
+
+ private double _downloadProgress;
+
+ public double DownloadProgress
+ {
+ get { return _downloadProgress; }
+ set { _downloadProgress = value; RaisePropertyChangedAuto(); }
+ }
+
+ private double _updateProgress;
+
+ public double UpdateProgress
+ {
+ get { return _updateProgress; }
+ set { _updateProgress = value; RaisePropertyChangedAuto(); }
+ }
+
+ public RelayCommand UpdateCommand { get; set; }
+
+ public RelayCommand BackCommand { get; set; }
+
+ public RelayCommand RestartCommand { get; set; }
+
+ public RelayCommand TryAgainCommand { get; set; }
+
+ public UpdateViewVM(INotificationProvider notification, IAuthenticationProvider authentication, INavigationManager navigation, IStudioApplicationManager application)
+ {
+ _notification = notification;
+ _navigation = navigation;
+ _application = application;
+ _authentication = authentication;
+
+ LatestVersion = "1.0.0.2";
+ Status = UpdateStatus.CheckingForUpdate;
+ UpdateCommand = new RelayCommand(StartUpdate, () => Status == UpdateStatus.UpdateAvailable);
+ BackCommand = new RelayCommand(BackToApplication, () => Status != UpdateStatus.Updating);
+ RestartCommand = new RelayCommand(RestartApplication, () => Status == UpdateStatus.UpdateCompleted);
+ TryAgainCommand = new RelayCommand(TryAgain, () => Status == UpdateStatus.CheckingForUpdate);
+ }
+
+ public void OnNavigatedInto()
+ {
+ CheckForUpdates();
+ }
+
+ private void CheckForUpdates()
+ {
+ Status = UpdateStatus.CheckingForUpdate;
+
+ Task.Factory.StartNew(() =>
+ {
+ var service = UpdateServiceHelper.GetUpdateServiceChannel();
+ var client = service.CreateChannel();
+
+ CheckForUpdatesResponse response = client.CheckForUpdates(new CheckForUpdatesRequest()
+ {
+ Email = _authentication.CurrentUser.Email,
+ Password = _authentication.CurrentUser.Password,
+ Version = _application.Version,
+ });
+
+ var a = response;
+
+ Thread.Sleep(5000);
+ Status = UpdateStatus.UpdateAvailable;
+ });
+ }
+
+ private void BackToApplication()
+ {
+ if (Status == UpdateStatus.Downloading)
+ {
+ if (!_notification.ShowQuestion("This will abort all update operations. Are you sure?"))
+ {
+ return;
+ }
+ }
+
+ _navigation.NavigateTo(NavigationView.MainView);
+ Status = UpdateStatus.None;
+ }
+
+ private void StartUpdate()
+ {
+ DownloadProgress = 0;
+ UpdateProgress = 0;
+
+ Status = UpdateStatus.Downloading;
+
+ Task.Factory.StartNew(() =>
+ {
+ for (int i = 0; i < 100; i++)
+ {
+ DownloadProgress++;
+ Thread.Sleep(30);
+ }
+
+ Status = UpdateStatus.Updating;
+
+ for (int i = 0; i < 100; i++)
+ {
+ UpdateProgress++;
+ Thread.Sleep(30);
+ }
+
+ Status = UpdateStatus.UpdateCompleted;
+ });
+ }
+
+ private void TryAgain()
+ {
+ CheckForUpdates();
+ }
+
+ private void RestartApplication()
+ {
+ _application.ShutDown();
+ }
+
+ protected override void RaisePropertyChangedAuto([CallerMemberName] string caller = null)
+ {
+ base.RaisePropertyChangedAuto(caller);
+ InvalidateRelayCommands();
+ }
+ }
+}
diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/LoadingView.xaml b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/LoadingView.xaml
index 2478c1155..aaf4accd4 100644
--- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/LoadingView.xaml
+++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/LoadingView.xaml
@@ -13,6 +13,10 @@
<Image Source="/Images/machine-trans.png" RenderOptions.BitmapScalingMode="Fant" Width="100"></Image>
<StackPanel Orientation="Horizontal">
<TextBlock FontSize="70" Foreground="{StaticResource AccentColorBrush}">Machine Studio</TextBlock>
+ <TextBlock Foreground="Gray" VerticalAlignment="Bottom" Margin="10 0 0 5" FontSize="16" FontWeight="SemiBold" FontStyle="Italic">
+ <Run>v</Run>
+ <Run Text="{Binding ApplicationManager.Version,Mode=OneWay}"></Run>
+ </TextBlock>
</StackPanel>
<TextBlock HorizontalAlignment="Right" FontSize="18" Margin="0 0 -50 0" Foreground="{StaticResource AccentColorBrush}">Twine Solutions</TextBlock>
<mahapps:ProgressRing Margin="20 60 20 40" Width="80" Height="80"></mahapps:ProgressRing>
diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/MainView.xaml b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/MainView.xaml
index 9a2cc37a4..355bdc1fd 100644
--- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/MainView.xaml
+++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/MainView.xaml
@@ -126,7 +126,9 @@
<Separator/>
<Button Content="Open Module In New Window" IsEnabled="{Binding IsModuleLoaded}" Command="{Binding OpenModuleInWindowCommand}" CommandParameter="{Binding CurrentModule}" />
<Separator/>
- <Button Content="Exit" />
+ <Button Content="Update Center" Command="{Binding UpdateCenterCommand}" />
+ <Separator/>
+ <Button Content="Exit" Command="{Binding ExitCommand}" />
</StackPanel>
</materialDesign:PopupBox>
<Grid>
diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/UpdateView.xaml b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/UpdateView.xaml
new file mode 100644
index 000000000..5b09d3381
--- /dev/null
+++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/UpdateView.xaml
@@ -0,0 +1,188 @@
+<UserControl x:Class="Tango.MachineStudio.UI.Views.UpdateView"
+ xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
+ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+ xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
+ xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
+ xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes"
+ xmlns:vm="clr-namespace:Tango.MachineStudio.UI.ViewModels"
+ xmlns:mahApps="http://metro.mahapps.com/winfx/xaml/controls"
+ xmlns:local="clr-namespace:Tango.MachineStudio.UI.Views"
+ mc:Ignorable="d"
+ d:DesignHeight="1080" d:DesignWidth="1920" DataContext="{Binding UpdateViewVM, Source={StaticResource Locator}}" Background="White" FontSize="20">
+ <Grid>
+ <Grid.Background>
+ <ImageBrush ImageSource="/Images/White-Abstract.png" />
+ </Grid.Background>
+ <Grid MaxWidth="1200" MaxHeight="700">
+ <DockPanel>
+ <Grid DockPanel.Dock="Top" HorizontalAlignment="Center">
+ <Grid.Effect>
+ <DropShadowEffect BlurRadius="100" ShadowDepth="0" Opacity="0.7" />
+ </Grid.Effect>
+ <StackPanel Orientation="Horizontal">
+ <Image Source="/Images/update.png" Width="100" />
+ <TextBlock Margin="10 0 0 0" VerticalAlignment="Center" FontSize="70">Update Center</TextBlock>
+ </StackPanel>
+ </Grid>
+
+ <Grid DockPanel.Dock="Bottom">
+ <StackPanel Orientation="Horizontal" HorizontalAlignment="Right">
+ <Button MinWidth="140" Height="40" Style="{StaticResource MaterialDesignFlatButton}" Command="{Binding BackCommand}">
+ <StackPanel Orientation="Horizontal">
+ <materialDesign:PackIcon Kind="KeyboardBackspace" Width="24" Height="24" />
+ <TextBlock Margin="5 0 0 0" VerticalAlignment="Center">BACK TO APPLICATION</TextBlock>
+ </StackPanel>
+ </Button>
+ </StackPanel>
+ </Grid>
+
+ <Grid>
+ <Border Margin="0 10 0 10" BorderThickness="0 0 0 2" BorderBrush="DimGray">
+ <ContentControl>
+ <ContentControl.Style>
+ <Style TargetType="ContentControl">
+ <Setter Property="Content">
+ <Setter.Value>
+ <Grid>
+
+ </Grid>
+ </Setter.Value>
+ </Setter>
+ <Style.Triggers>
+ <DataTrigger Binding="{Binding Status}" Value="{x:Static vm:UpdateStatus.CheckingForUpdate}">
+ <Setter Property="Content">
+ <Setter.Value>
+ <Grid>
+ <StackPanel VerticalAlignment="Center">
+ <mahApps:ProgressRing Width="120" Height="120" Foreground="DimGray" />
+ <TextBlock HorizontalAlignment="Center" Margin="0 30 0 0">Checking for updates...</TextBlock>
+ </StackPanel>
+ </Grid>
+ </Setter.Value>
+ </Setter>
+ </DataTrigger>
+ <DataTrigger Binding="{Binding Status}" Value="{x:Static vm:UpdateStatus.UpdateAvailable}">
+ <Setter Property="Content">
+ <Setter.Value>
+ <Grid>
+ <StackPanel HorizontalAlignment="Center" VerticalAlignment="Center">
+ <Image Source="/Images/new-version.png" Width="64"></Image>
+ <StackPanel Orientation="Horizontal" HorizontalAlignment="Center">
+ <TextBlock VerticalAlignment="Center" Margin="0 20 0 0">New version is available!</TextBlock>
+ </StackPanel>
+ <TextBlock FontSize="12" TextAlignment="Center" Padding="20" Margin="0 0 0 40">
+ <Run>A new version of Machine Studio is available to download</Run>
+ <LineBreak/>
+ <Run>Click 'Update' to start the update process.</Run>
+ </TextBlock>
+ <Button MinWidth="140" Height="40" Margin="0 0 0 0" Width="200" Command="{Binding UpdateCommand}">
+ <StackPanel Orientation="Horizontal">
+ <materialDesign:PackIcon Kind="Download" Width="24" Height="24" />
+ <TextBlock Margin="5 0 0 0" VerticalAlignment="Center">UPDATE</TextBlock>
+ </StackPanel>
+ </Button>
+ </StackPanel>
+ </Grid>
+ </Setter.Value>
+ </Setter>
+ </DataTrigger>
+ <DataTrigger Binding="{Binding Status}" Value="{x:Static vm:UpdateStatus.Downloading}">
+ <Setter Property="Content">
+ <Setter.Value>
+ <Grid>
+ <StackPanel HorizontalAlignment="Center" VerticalAlignment="Center">
+ <TextBlock HorizontalAlignment="Center">
+ <Run>Downloading version</Run>
+ <Run Text="{Binding LatestVersion,FallbackValue='0.0.0.0'}"></Run>
+ <Run>, please wait...</Run>
+ </TextBlock>
+ <ProgressBar Height="10" Foreground="DimGray" Margin="0 20 0 0" Maximum="100" Value="{Binding DownloadProgress}"></ProgressBar>
+ </StackPanel>
+ </Grid>
+ </Setter.Value>
+ </Setter>
+ </DataTrigger>
+ <DataTrigger Binding="{Binding Status}" Value="{x:Static vm:UpdateStatus.Updating}">
+ <Setter Property="Content">
+ <Setter.Value>
+ <Grid>
+ <StackPanel HorizontalAlignment="Center" VerticalAlignment="Center">
+ <TextBlock HorizontalAlignment="Center">
+ <Run>Updating Machine Studio, please wait...</Run>
+ </TextBlock>
+ <ProgressBar Height="10" Foreground="DimGray" Margin="0 20 0 0" Maximum="100" Value="{Binding DownloadProgress}"></ProgressBar>
+ </StackPanel>
+ </Grid>
+ </Setter.Value>
+ </Setter>
+ </DataTrigger>
+ <DataTrigger Binding="{Binding Status}" Value="{x:Static vm:UpdateStatus.UpdateCompleted}">
+ <Setter Property="Content">
+ <Setter.Value>
+ <Grid>
+ <StackPanel HorizontalAlignment="Center" VerticalAlignment="Center">
+ <materialDesign:PackIcon Kind="Check" Width="100" Height="100" Foreground="#1CBB1C" HorizontalAlignment="Center" />
+ <StackPanel Orientation="Horizontal">
+ <TextBlock VerticalAlignment="Center" Margin="0 20 0 0">Your version of Machine Studio is up to date!</TextBlock>
+ </StackPanel>
+
+ <TextBlock HorizontalAlignment="Center" Margin="0 10 0 0" FontSize="12">Please restart Machine Studio in order to apply the changes.</TextBlock>
+
+ <Button MinWidth="140" Height="40" Margin="0 50 0 0" Width="200" Command="{Binding RestartCommand}">
+ <StackPanel Orientation="Horizontal">
+ <materialDesign:PackIcon Kind="BackupRestore" Width="24" Height="24" />
+ <TextBlock Margin="5 0 0 0" VerticalAlignment="Center">RESTART</TextBlock>
+ </StackPanel>
+ </Button>
+ </StackPanel>
+ </Grid>
+ </Setter.Value>
+ </Setter>
+ </DataTrigger>
+ <DataTrigger Binding="{Binding Status}" Value="{x:Static vm:UpdateStatus.UpToDate}">
+ <Setter Property="Content">
+ <Setter.Value>
+ <Grid>
+ <StackPanel HorizontalAlignment="Center" VerticalAlignment="Center">
+ <materialDesign:PackIcon Kind="Check" Width="100" Height="100" Foreground="#1CBB1C" HorizontalAlignment="Center" />
+ <StackPanel Orientation="Horizontal">
+ <TextBlock VerticalAlignment="Center" Margin="0 20 0 0">Your version of Machine Studio is up to date!</TextBlock>
+ </StackPanel>
+ </StackPanel>
+ </Grid>
+ </Setter.Value>
+ </Setter>
+ </DataTrigger>
+ <DataTrigger Binding="{Binding Status}" Value="{x:Static vm:UpdateStatus.Error}">
+ <Setter Property="Content">
+ <Setter.Value>
+ <Grid>
+ <StackPanel HorizontalAlignment="Center" VerticalAlignment="Center">
+ <materialDesign:PackIcon Kind="Alert" Width="100" Height="100" Foreground="#FF5F5F" HorizontalAlignment="Center" />
+ <TextBlock VerticalAlignment="Center" Margin="0 20 0 0" HorizontalAlignment="Center">Error updating machine studio</TextBlock>
+ <TextBlock HorizontalAlignment="Center" Margin="0 10 0 0" FontSize="12" TextAlignment="Center">
+ <Run>An error occurred while updating your software.</Run>
+ <LineBreak/>
+ <Run>press 'Try Again' to give it another try.</Run>
+ </TextBlock>
+ <Button MinWidth="140" Height="40" Margin="0 50 0 0" Width="200" Command="{Binding TryAgainCommand}">
+ <StackPanel Orientation="Horizontal">
+ <materialDesign:PackIcon Kind="BackupRestore" Width="24" Height="24" />
+ <TextBlock Margin="5 0 0 0" VerticalAlignment="Center">TRY AGAIN</TextBlock>
+ </StackPanel>
+ </Button>
+ </StackPanel>
+ </Grid>
+ </Setter.Value>
+ </Setter>
+ </DataTrigger>
+ </Style.Triggers>
+ </Style>
+ </ContentControl.Style>
+ </ContentControl>
+ </Border>
+ </Grid>
+ </DockPanel>
+ </Grid>
+ </Grid>
+</UserControl>
diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/UpdateView.xaml.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/UpdateView.xaml.cs
new file mode 100644
index 000000000..75b74f65d
--- /dev/null
+++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/UpdateView.xaml.cs
@@ -0,0 +1,42 @@
+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;
+using Tango.MachineStudio.UI.ViewModels;
+using static Tango.SharedUI.Controls.MultiTransitionControl;
+
+namespace Tango.MachineStudio.UI.Views
+{
+ /// <summary>
+ /// Interaction logic for UpdateView.xaml
+ /// </summary>
+ public partial class UpdateView : UserControl, ITransitionView
+ {
+ private UpdateViewVM _vm;
+
+ public UpdateView()
+ {
+ InitializeComponent();
+
+ this.Loaded += (x, y) =>
+ {
+ _vm = DataContext as UpdateViewVM;
+ };
+ }
+
+ public void OnTransitionCompleted()
+ {
+ _vm.OnNavigatedInto();
+ }
+ }
+}
diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UpdateService/MachineStudioUpdateService.svc b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UpdateService/MachineStudioUpdateService.svc
new file mode 100644
index 000000000..bad3e4fcd
--- /dev/null
+++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UpdateService/MachineStudioUpdateService.svc
@@ -0,0 +1 @@
+<%@ ServiceHost Language="C#" Debug="true" Service="Tango.MachineStudio.UpdateService.MachineStudioUpdateService" CodeBehind="MachineStudioUpdateService.svc.cs" %> \ No newline at end of file
diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UpdateService/MachineStudioUpdateService.svc.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UpdateService/MachineStudioUpdateService.svc.cs
new file mode 100644
index 000000000..4cfea1b8a
--- /dev/null
+++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UpdateService/MachineStudioUpdateService.svc.cs
@@ -0,0 +1,62 @@
+using System;
+using System.Collections.Generic;
+using System.Configuration;
+using System.Linq;
+using System.Runtime.Serialization;
+using System.ServiceModel;
+using System.ServiceModel.Web;
+using System.Text;
+using Tango.Integration.Observables;
+using Tango.Logging;
+using Tango.MachineStudio.Common.Update;
+
+namespace Tango.MachineStudio.UpdateService
+{
+ public class MachineStudioUpdateService : IMachineStudioUpdateService
+ {
+ public CheckForUpdatesResponse CheckForUpdates(CheckForUpdatesRequest request)
+ {
+ LogManager.Log("Request received...");
+
+ try
+ {
+ CheckForUpdatesResponse response = new CheckForUpdatesResponse();
+
+ using (ObservablesContext db = ObservablesContext.CreateDefaultForWeb())
+ {
+ db.Configuration.LazyLoadingEnabled = false;
+
+ var user = db.Users.SingleOrDefault(x => x.Email.ToLower() == request.Email.ToLower() && x.Password == request.Password);
+
+ if (user != null)
+ {
+ var latestVersion = db.MachineStudioVersions.FirstOrDefault();
+ Version currentVersionNumber = Version.Parse(request.Version);
+
+ if (latestVersion != null && Version.Parse(latestVersion.Version) > currentVersionNumber)
+ {
+ response.IsUpdateAvailable = true;
+
+ response.FtpHost = ConfigurationManager.AppSettings["FtpHost"].ToString();
+ response.UserName = ConfigurationManager.AppSettings["UserName"].ToString();
+ response.Password = ConfigurationManager.AppSettings["Password"].ToString();
+ response.FilePath = latestVersion.FtpFilePath;
+ response.Version = latestVersion.Version;
+ }
+ }
+ else
+ {
+ throw new FaultException("Invalid user credentials.");
+ }
+ }
+
+ return response;
+ }
+ catch (Exception ex)
+ {
+ LogManager.Log(ex);
+ throw new FaultException(ex.ToString());
+ }
+ }
+ }
+}
diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UpdateService/Properties/AssemblyInfo.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UpdateService/Properties/AssemblyInfo.cs
new file mode 100644
index 000000000..6b9387721
--- /dev/null
+++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UpdateService/Properties/AssemblyInfo.cs
@@ -0,0 +1,36 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// 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("Tango.MachineStudio.UpdateService")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("Tango.MachineStudio.UpdateService")]
+[assembly: AssemblyCopyright("Copyright © 2018")]
+[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)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("cc6d62e9-c300-42f3-b452-79966e902b10")]
+
+// 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 Revision and Build Numbers
+// by using the '*' as shown below:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UpdateService/Tango.MachineStudio.UpdateService.csproj b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UpdateService/Tango.MachineStudio.UpdateService.csproj
new file mode 100644
index 000000000..c9400b2d1
--- /dev/null
+++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UpdateService/Tango.MachineStudio.UpdateService.csproj
@@ -0,0 +1,142 @@
+<Project ToolsVersion="15.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>
+ <ProductVersion>
+ </ProductVersion>
+ <SchemaVersion>2.0</SchemaVersion>
+ <ProjectGuid>{CC6D62E9-C300-42F3-B452-79966E902B10}</ProjectGuid>
+ <ProjectTypeGuids>{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}</ProjectTypeGuids>
+ <OutputType>Library</OutputType>
+ <AppDesignerFolder>Properties</AppDesignerFolder>
+ <RootNamespace>Tango.MachineStudio.UpdateService</RootNamespace>
+ <AssemblyName>Tango.MachineStudio.UpdateService</AssemblyName>
+ <TargetFrameworkVersion>v4.6</TargetFrameworkVersion>
+ <WcfConfigValidationEnabled>True</WcfConfigValidationEnabled>
+ <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
+ <UseIISExpress>true</UseIISExpress>
+ <IISExpressSSLPort />
+ <IISExpressAnonymousAuthentication />
+ <IISExpressWindowsAuthentication />
+ <IISExpressUseClassicPipelineMode />
+ <UseGlobalApplicationHostFile />
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+ <DebugSymbols>true</DebugSymbols>
+ <DebugType>full</DebugType>
+ <Optimize>false</Optimize>
+ <OutputPath>..\..\Build\Debug\Web\Machine Studio Update Service\</OutputPath>
+ <DefineConstants>DEBUG;TRACE</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+ <DebugType>pdbonly</DebugType>
+ <Optimize>true</Optimize>
+ <OutputPath>bin\</OutputPath>
+ <DefineConstants>TRACE</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ </PropertyGroup>
+ <ItemGroup>
+ <Reference Include="EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
+ <HintPath>..\..\packages\EntityFramework.6.0.0\lib\net45\EntityFramework.dll</HintPath>
+ </Reference>
+ <Reference Include="EntityFramework.SqlServer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
+ <HintPath>..\..\packages\EntityFramework.6.0.0\lib\net45\EntityFramework.SqlServer.dll</HintPath>
+ </Reference>
+ <Reference Include="Microsoft.CSharp" />
+ <Reference Include="System.ComponentModel.DataAnnotations" />
+ <Reference Include="System.Web.DynamicData" />
+ <Reference Include="System.Web.Entity" />
+ <Reference Include="System.Web.ApplicationServices" />
+ <Reference Include="System" />
+ <Reference Include="System.Configuration" />
+ <Reference Include="System.Core" />
+ <Reference Include="System.Data" />
+ <Reference Include="System.Drawing" />
+ <Reference Include="System.EnterpriseServices" />
+ <Reference Include="System.Runtime.Serialization" />
+ <Reference Include="System.ServiceModel" />
+ <Reference Include="System.ServiceModel.Web" />
+ <Reference Include="System.Web" />
+ <Reference Include="System.Web.Extensions" />
+ <Reference Include="System.Web.Services" />
+ <Reference Include="System.Xml" />
+ <Reference Include="System.Xml.Linq" />
+ </ItemGroup>
+ <ItemGroup>
+ <Content Include="MachineStudioUpdateService.svc" />
+ <Content Include="Web.config" />
+ </ItemGroup>
+ <ItemGroup>
+ <Compile Include="MachineStudioUpdateService.svc.cs">
+ <DependentUpon>MachineStudioUpdateService.svc</DependentUpon>
+ </Compile>
+ <Compile Include="Properties\AssemblyInfo.cs" />
+ </ItemGroup>
+ <ItemGroup>
+ <Folder Include="App_Data\" />
+ </ItemGroup>
+ <ItemGroup>
+ <Content Include="packages.config" />
+ <None Include="Properties\PublishProfiles\FolderProfile.pubxml" />
+ <None Include="Web.Debug.config">
+ <DependentUpon>Web.config</DependentUpon>
+ </None>
+ <None Include="Web.Release.config">
+ <DependentUpon>Web.config</DependentUpon>
+ </None>
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="..\..\Tango.Core\Tango.Core.csproj">
+ <Project>{a34ee0f0-649d-41c8-8489-b6f1cc6924ee}</Project>
+ <Name>Tango.Core</Name>
+ </ProjectReference>
+ <ProjectReference Include="..\..\Tango.Integration\Tango.Integration.csproj">
+ <Project>{4206ac58-3b57-4699-8835-90bf6db01a61}</Project>
+ <Name>Tango.Integration</Name>
+ </ProjectReference>
+ <ProjectReference Include="..\..\Tango.Logging\Tango.Logging.csproj">
+ <Project>{bc932dbd-7cdb-488c-99e4-f02cf441f55e}</Project>
+ <Name>Tango.Logging</Name>
+ </ProjectReference>
+ <ProjectReference Include="..\Tango.MachineStudio.Common\Tango.MachineStudio.Common.csproj">
+ <Project>{cb0b0aa2-bb24-4bca-a720-45e397684e12}</Project>
+ <Name>Tango.MachineStudio.Common</Name>
+ </ProjectReference>
+ </ItemGroup>
+ <PropertyGroup>
+ <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
+ <VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
+ </PropertyGroup>
+ <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
+ <Import Project="$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets" Condition="'$(VSToolsPath)' != ''" />
+ <Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" Condition="false" />
+ <ProjectExtensions>
+ <VisualStudio>
+ <FlavorProperties GUID="{349c5851-65df-11da-9384-00065b846f21}">
+ <WebProjectProperties>
+ <UseIIS>True</UseIIS>
+ <AutoAssignPort>True</AutoAssignPort>
+ <DevelopmentServerPort>65206</DevelopmentServerPort>
+ <DevelopmentServerVPath>/</DevelopmentServerVPath>
+ <IISUrl>http://localhost:53044/</IISUrl>
+ <NTLMAuthentication>False</NTLMAuthentication>
+ <UseCustomServer>False</UseCustomServer>
+ <CustomServerUrl>
+ </CustomServerUrl>
+ <SaveServerSettingsInUserFile>False</SaveServerSettingsInUserFile>
+ </WebProjectProperties>
+ </FlavorProperties>
+ </VisualStudio>
+ </ProjectExtensions>
+ <!-- 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> \ No newline at end of file
diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UpdateService/Web.Debug.config b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UpdateService/Web.Debug.config
new file mode 100644
index 000000000..fae9cfefa
--- /dev/null
+++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UpdateService/Web.Debug.config
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<!-- For more information on using web.config transformation visit https://go.microsoft.com/fwlink/?LinkId=125889 -->
+
+<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
+ <!--
+ In the example below, the "SetAttributes" transform will change the value of
+ "connectionString" to use "ReleaseSQLServer" only when the "Match" locator
+ finds an attribute "name" that has a value of "MyDB".
+
+ <connectionStrings>
+ <add name="MyDB"
+ connectionString="Data Source=ReleaseSQLServer;Initial Catalog=MyReleaseDB;Integrated Security=True"
+ xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/>
+ </connectionStrings>
+ -->
+ <system.web>
+ <!--
+ In the example below, the "Replace" transform will replace the entire
+ <customErrors> section of your web.config file.
+ Note that because there is only one customErrors section under the
+ <system.web> node, there is no need to use the "xdt:Locator" attribute.
+
+ <customErrors defaultRedirect="GenericError.htm"
+ mode="RemoteOnly" xdt:Transform="Replace">
+ <error statusCode="500" redirect="InternalError.htm"/>
+ </customErrors>
+ -->
+ </system.web>
+</configuration> \ No newline at end of file
diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UpdateService/Web.Release.config b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UpdateService/Web.Release.config
new file mode 100644
index 000000000..da6e960b8
--- /dev/null
+++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UpdateService/Web.Release.config
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<!-- For more information on using web.config transformation visit https://go.microsoft.com/fwlink/?LinkId=125889 -->
+
+<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
+ <!--
+ In the example below, the "SetAttributes" transform will change the value of
+ "connectionString" to use "ReleaseSQLServer" only when the "Match" locator
+ finds an attribute "name" that has a value of "MyDB".
+
+ <connectionStrings>
+ <add name="MyDB"
+ connectionString="Data Source=ReleaseSQLServer;Initial Catalog=MyReleaseDB;Integrated Security=True"
+ xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/>
+ </connectionStrings>
+ -->
+ <system.web>
+ <compilation xdt:Transform="RemoveAttributes(debug)" />
+ <!--
+ In the example below, the "Replace" transform will replace the entire
+ <customErrors> section of your web.config file.
+ Note that because there is only one customErrors section under the
+ <system.web> node, there is no need to use the "xdt:Locator" attribute.
+
+ <customErrors defaultRedirect="GenericError.htm"
+ mode="RemoteOnly" xdt:Transform="Replace">
+ <error statusCode="500" redirect="InternalError.htm"/>
+ </customErrors>
+ -->
+ </system.web>
+</configuration> \ No newline at end of file
diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UpdateService/Web.config b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UpdateService/Web.config
new file mode 100644
index 000000000..b0d2452f0
--- /dev/null
+++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UpdateService/Web.config
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="utf-8"?>
+<configuration>
+ <configSections>
+ <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
+ <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
+ </configSections>
+ <appSettings>
+ <add key="aspnet:UseTaskFriendlySynchronizationContext" value="true" />
+ <add key="FtpHost" value="localhost" />
+ <add key="UserName" value="Tango" />
+ <add key="Password" value="Aa123456" />
+ </appSettings>
+ <system.web>
+ <compilation debug="true" targetFramework="4.6" />
+ <httpRuntime targetFramework="4.6" />
+ </system.web>
+ <system.serviceModel>
+ <behaviors>
+ <serviceBehaviors>
+ <behavior>
+ <!-- To avoid disclosing metadata information, set the values below to false before deployment -->
+ <serviceMetadata httpGetEnabled="true" httpsGetEnabled="true" />
+ <!-- To receive exception details in faults for debugging purposes, set the value below to true. Set to false before deployment to avoid disclosing exception information -->
+ <serviceDebug includeExceptionDetailInFaults="false" />
+ </behavior>
+ </serviceBehaviors>
+ </behaviors>
+ <protocolMapping>
+ <add binding="basicHttpsBinding" scheme="https" />
+ </protocolMapping>
+ <serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true" />
+ </system.serviceModel>
+ <system.webServer>
+ <modules runAllManagedModulesForAllRequests="false" />
+ <!--
+ To browse web app root directory during debugging, set the value below to true.
+ Set to false before deployment to avoid disclosing web app folder information.
+ -->
+ <directoryBrowse enabled="true" />
+ </system.webServer>
+ <entityFramework>
+ <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" />
+ <providers>
+ <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
+ </providers>
+ </entityFramework>
+ <runtime>
+ <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
+ <dependentAssembly>
+ <assemblyIdentity name="System.Reactive.Core" publicKeyToken="94bc3704cddfc263" culture="neutral" />
+ <bindingRedirect oldVersion="0.0.0.0-3.0.3000.0" newVersion="3.0.3000.0" />
+ </dependentAssembly>
+ </assemblyBinding>
+ </runtime>
+</configuration> \ No newline at end of file
diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UpdateService/packages.config b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UpdateService/packages.config
new file mode 100644
index 000000000..9256e1591
--- /dev/null
+++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UpdateService/packages.config
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<packages>
+ <package id="EntityFramework" version="6.0.0" targetFramework="net46" />
+</packages> \ No newline at end of file
diff --git a/Software/Visual_Studio/SideChains/RealTimeGraphEx/RealTimeGraphEx.csproj b/Software/Visual_Studio/SideChains/RealTimeGraphEx/RealTimeGraphEx.csproj
index dd332943a..cc8eda5a4 100644
--- a/Software/Visual_Studio/SideChains/RealTimeGraphEx/RealTimeGraphEx.csproj
+++ b/Software/Visual_Studio/SideChains/RealTimeGraphEx/RealTimeGraphEx.csproj
@@ -34,11 +34,12 @@
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
- <Optimize>true</Optimize>
+ <Optimize>false</Optimize>
<OutputPath>bin\Release\</OutputPath>
- <DefineConstants>TRACE</DefineConstants>
+ <DefineConstants>TRACE;WPF</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
+ <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
</PropertyGroup>
<ItemGroup>
<Reference Include="Costura, Version=1.6.2.0, Culture=neutral, PublicKeyToken=9919ef960d84173d, processorArchitecture=MSIL">
diff --git a/Software/Visual_Studio/Tango.DAL.Remote/DB/MACHINE_STUDIO_VERSIONS.cs b/Software/Visual_Studio/Tango.DAL.Remote/DB/MACHINE_STUDIO_VERSIONS.cs
new file mode 100644
index 000000000..9d0fa2365
--- /dev/null
+++ b/Software/Visual_Studio/Tango.DAL.Remote/DB/MACHINE_STUDIO_VERSIONS.cs
@@ -0,0 +1,27 @@
+//------------------------------------------------------------------------------
+// <auto-generated>
+// This code was generated from a template.
+//
+// Manual changes to this file may cause unexpected behavior in your application.
+// Manual changes to this file will be overwritten if the code is regenerated.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+namespace Tango.DAL.Remote.DB
+{
+ using System;
+ using System.Collections.Generic;
+
+ public partial class MACHINE_STUDIO_VERSIONS
+ {
+ public int ID { get; set; }
+ public string GUID { get; set; }
+ public System.DateTime LAST_UPDATED { get; set; }
+ public string VERSION { get; set; }
+ public string FTP_FILE_PATH { get; set; }
+ public string COMMENTS { get; set; }
+ public string USER_GUID { get; set; }
+
+ public virtual USER USER { get; set; }
+ }
+}
diff --git a/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.Context.cs b/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.Context.cs
index ebec02eab..660f660b3 100644
--- a/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.Context.cs
+++ b/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.Context.cs
@@ -54,6 +54,7 @@ namespace Tango.DAL.Remote.DB
public virtual DbSet<LINEAR_MASS_DENSITY_UNITS> LINEAR_MASS_DENSITY_UNITS { get; set; }
public virtual DbSet<LIQUID_TYPES> LIQUID_TYPES { get; set; }
public virtual DbSet<LIQUID_TYPES_RMLS> LIQUID_TYPES_RMLS { get; set; }
+ public virtual DbSet<MACHINE_STUDIO_VERSIONS> MACHINE_STUDIO_VERSIONS { get; set; }
public virtual DbSet<MACHINE_VERSIONS> MACHINE_VERSIONS { get; set; }
public virtual DbSet<MACHINE> MACHINES { get; set; }
public virtual DbSet<MACHINES_CONFIGURATIONS> MACHINES_CONFIGURATIONS { get; set; }
diff --git a/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx b/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx
index 3f935c70f..a711bbd9e 100644
--- a/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx
+++ b/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx
@@ -391,6 +391,18 @@
<Property Name="RML_GUID" Type="varchar" MaxLength="36" Nullable="false" />
<Property Name="MAX_NL_PER_CM" Type="float" Nullable="false" />
</EntityType>
+ <EntityType Name="MACHINE_STUDIO_VERSIONS">
+ <Key>
+ <PropertyRef Name="ID" />
+ </Key>
+ <Property Name="ID" Type="int" StoreGeneratedPattern="Identity" Nullable="false" />
+ <Property Name="GUID" Type="varchar" MaxLength="36" Nullable="false" />
+ <Property Name="LAST_UPDATED" Type="datetime2" Precision="3" Nullable="false" />
+ <Property Name="VERSION" Type="varchar" MaxLength="50" Nullable="false" />
+ <Property Name="FTP_FILE_PATH" Type="varchar" MaxLength="200" Nullable="false" />
+ <Property Name="COMMENTS" Type="nvarchar(max)" Nullable="false" />
+ <Property Name="USER_GUID" Type="varchar" MaxLength="36" Nullable="false" />
+ </EntityType>
<EntityType Name="MACHINE_VERSIONS">
<Key>
<PropertyRef Name="GUID" />
@@ -1078,6 +1090,18 @@
</Dependent>
</ReferentialConstraint>
</Association>
+ <Association Name="FK_MACHINE_STUDIO_VERSIONS_USERS">
+ <End Role="USERS" Type="Self.USERS" Multiplicity="1" />
+ <End Role="MACHINE_STUDIO_VERSIONS" Type="Self.MACHINE_STUDIO_VERSIONS" Multiplicity="*" />
+ <ReferentialConstraint>
+ <Principal Role="USERS">
+ <PropertyRef Name="GUID" />
+ </Principal>
+ <Dependent Role="MACHINE_STUDIO_VERSIONS">
+ <PropertyRef Name="USER_GUID" />
+ </Dependent>
+ </ReferentialConstraint>
+ </Association>
<Association Name="FK_MACHINE_VERSIONS_CONFIGURATIONS">
<End Role="CONFIGURATIONS" Type="Self.CONFIGURATIONS" Multiplicity="1" />
<End Role="MACHINE_VERSIONS" Type="Self.MACHINE_VERSIONS" Multiplicity="*" />
@@ -1460,6 +1484,7 @@
<EntitySet Name="LINEAR_MASS_DENSITY_UNITS" EntityType="Self.LINEAR_MASS_DENSITY_UNITS" Schema="dbo" store:Type="Tables" />
<EntitySet Name="LIQUID_TYPES" EntityType="Self.LIQUID_TYPES" Schema="dbo" store:Type="Tables" />
<EntitySet Name="LIQUID_TYPES_RMLS" EntityType="Self.LIQUID_TYPES_RMLS" Schema="dbo" store:Type="Tables" />
+ <EntitySet Name="MACHINE_STUDIO_VERSIONS" EntityType="Self.MACHINE_STUDIO_VERSIONS" Schema="dbo" store:Type="Tables" />
<EntitySet Name="MACHINE_VERSIONS" EntityType="Self.MACHINE_VERSIONS" Schema="dbo" store:Type="Tables" />
<EntitySet Name="MACHINES" EntityType="Self.MACHINES" Schema="dbo" store:Type="Tables" />
<EntitySet Name="MACHINES_CONFIGURATIONS" EntityType="Self.MACHINES_CONFIGURATIONS" Schema="dbo" store:Type="Tables" />
@@ -1602,6 +1627,10 @@
<End Role="RMLS" EntitySet="RMLS" />
<End Role="LIQUID_TYPES_RMLS" EntitySet="LIQUID_TYPES_RMLS" />
</AssociationSet>
+ <AssociationSet Name="FK_MACHINE_STUDIO_VERSIONS_USERS" Association="Self.FK_MACHINE_STUDIO_VERSIONS_USERS">
+ <End Role="USERS" EntitySet="USERS" />
+ <End Role="MACHINE_STUDIO_VERSIONS" EntitySet="MACHINE_STUDIO_VERSIONS" />
+ </AssociationSet>
<AssociationSet Name="FK_MACHINE_VERSIONS_CONFIGURATIONS" Association="Self.FK_MACHINE_VERSIONS_CONFIGURATIONS">
<End Role="CONFIGURATIONS" EntitySet="CONFIGURATIONS" />
<End Role="MACHINE_VERSIONS" EntitySet="MACHINE_VERSIONS" />
@@ -1749,6 +1778,7 @@
<EntitySet Name="LINEAR_MASS_DENSITY_UNITS" EntityType="RemoteModel.LINEAR_MASS_DENSITY_UNITS" />
<EntitySet Name="LIQUID_TYPES" EntityType="RemoteModel.LIQUID_TYPES" />
<EntitySet Name="LIQUID_TYPES_RMLS" EntityType="RemoteModel.LIQUID_TYPES_RMLS" />
+ <EntitySet Name="MACHINE_STUDIO_VERSIONS" EntityType="RemoteModel.MACHINE_STUDIO_VERSIONS" />
<EntitySet Name="MACHINE_VERSIONS" EntityType="RemoteModel.MACHINE_VERSIONS" />
<EntitySet Name="MACHINES" EntityType="RemoteModel.MACHINE" />
<EntitySet Name="MACHINES_CONFIGURATIONS" EntityType="RemoteModel.MACHINES_CONFIGURATIONS" />
@@ -1939,6 +1969,10 @@
<End Role="RML" EntitySet="RMLS" />
<End Role="LIQUID_TYPES_RMLS" EntitySet="LIQUID_TYPES_RMLS" />
</AssociationSet>
+ <AssociationSet Name="FK_MACHINE_STUDIO_VERSIONS_USERS" Association="RemoteModel.FK_MACHINE_STUDIO_VERSIONS_USERS">
+ <End Role="USER" EntitySet="USERS" />
+ <End Role="MACHINE_STUDIO_VERSIONS" EntitySet="MACHINE_STUDIO_VERSIONS" />
+ </AssociationSet>
<AssociationSet Name="FK_MACHINES_MACHINE_VERSIONS" Association="RemoteModel.FK_MACHINES_MACHINE_VERSIONS">
<End Role="MACHINE_VERSIONS" EntitySet="MACHINE_VERSIONS" />
<End Role="MACHINE" EntitySet="MACHINES" />
@@ -2451,6 +2485,19 @@
<NavigationProperty Name="LIQUID_TYPES" Relationship="RemoteModel.FK_LIQUID_TYPES_RMLS_LIQUID_TYPES" FromRole="LIQUID_TYPES_RMLS" ToRole="LIQUID_TYPES" />
<NavigationProperty Name="RML" Relationship="RemoteModel.FK_LIQUID_TYPES_RMLS_RMLS" FromRole="LIQUID_TYPES_RMLS" ToRole="RML" />
</EntityType>
+ <EntityType Name="MACHINE_STUDIO_VERSIONS">
+ <Key>
+ <PropertyRef Name="ID" />
+ </Key>
+ <Property Name="ID" Type="Int32" Nullable="false" annotation:StoreGeneratedPattern="Identity" />
+ <Property Name="GUID" Type="String" Nullable="false" MaxLength="36" FixedLength="false" Unicode="false" />
+ <Property Name="LAST_UPDATED" Type="DateTime" Nullable="false" Precision="3" />
+ <Property Name="VERSION" Type="String" Nullable="false" MaxLength="50" FixedLength="false" Unicode="false" />
+ <Property Name="FTP_FILE_PATH" Type="String" Nullable="false" MaxLength="200" FixedLength="false" Unicode="false" />
+ <Property Name="COMMENTS" Type="String" Nullable="false" MaxLength="Max" FixedLength="false" Unicode="true" />
+ <Property Name="USER_GUID" Type="String" Nullable="false" MaxLength="36" FixedLength="false" Unicode="false" />
+ <NavigationProperty Name="USER" Relationship="RemoteModel.FK_MACHINE_STUDIO_VERSIONS_USERS" FromRole="MACHINE_STUDIO_VERSIONS" ToRole="USER" />
+ </EntityType>
<EntityType Name="MACHINE_VERSIONS">
<Key>
<PropertyRef Name="GUID" />
@@ -2804,6 +2851,7 @@
<NavigationProperty Name="ADDRESS" Relationship="RemoteModel.FK_USERS_ADDRESSES" FromRole="USER" ToRole="ADDRESS" />
<NavigationProperty Name="CONTACT" Relationship="RemoteModel.FK_USERS_CONTACTS" FromRole="USER" ToRole="CONTACT" />
<NavigationProperty Name="JOBS" Relationship="RemoteModel.FK_JOBS_USERS" FromRole="USER" ToRole="JOB" />
+ <NavigationProperty Name="MACHINE_STUDIO_VERSIONS" Relationship="RemoteModel.FK_MACHINE_STUDIO_VERSIONS_USERS" FromRole="USER" ToRole="MACHINE_STUDIO_VERSIONS" />
<NavigationProperty Name="MACHINES_EVENTS" Relationship="RemoteModel.FK_MACHINES_EVENTS_USERS" FromRole="USER" ToRole="MACHINES_EVENTS" />
<NavigationProperty Name="ORGANIZATION" Relationship="RemoteModel.FK_USERS_ORGANIZATIONS" FromRole="USER" ToRole="ORGANIZATION" />
<NavigationProperty Name="USERS_ROLES" Relationship="RemoteModel.FK_USERS_ROLES_USERS" FromRole="USER" ToRole="USERS_ROLES" />
@@ -3341,6 +3389,18 @@
</Dependent>
</ReferentialConstraint>
</Association>
+ <Association Name="FK_MACHINE_STUDIO_VERSIONS_USERS">
+ <End Type="RemoteModel.USER" Role="USER" Multiplicity="1" />
+ <End Type="RemoteModel.MACHINE_STUDIO_VERSIONS" Role="MACHINE_STUDIO_VERSIONS" Multiplicity="*" />
+ <ReferentialConstraint>
+ <Principal Role="USER">
+ <PropertyRef Name="GUID" />
+ </Principal>
+ <Dependent Role="MACHINE_STUDIO_VERSIONS">
+ <PropertyRef Name="USER_GUID" />
+ </Dependent>
+ </ReferentialConstraint>
+ </Association>
<Association Name="FK_MACHINES_MACHINE_VERSIONS">
<End Type="RemoteModel.MACHINE_VERSIONS" Role="MACHINE_VERSIONS" Multiplicity="1" />
<End Type="RemoteModel.MACHINE" Role="MACHINE" Multiplicity="*" />
@@ -3964,6 +4024,19 @@
</MappingFragment>
</EntityTypeMapping>
</EntitySetMapping>
+ <EntitySetMapping Name="MACHINE_STUDIO_VERSIONS">
+ <EntityTypeMapping TypeName="RemoteModel.MACHINE_STUDIO_VERSIONS">
+ <MappingFragment StoreEntitySet="MACHINE_STUDIO_VERSIONS">
+ <ScalarProperty Name="USER_GUID" ColumnName="USER_GUID" />
+ <ScalarProperty Name="COMMENTS" ColumnName="COMMENTS" />
+ <ScalarProperty Name="FTP_FILE_PATH" ColumnName="FTP_FILE_PATH" />
+ <ScalarProperty Name="VERSION" ColumnName="VERSION" />
+ <ScalarProperty Name="LAST_UPDATED" ColumnName="LAST_UPDATED" />
+ <ScalarProperty Name="GUID" ColumnName="GUID" />
+ <ScalarProperty Name="ID" ColumnName="ID" />
+ </MappingFragment>
+ </EntityTypeMapping>
+ </EntitySetMapping>
<EntitySetMapping Name="MACHINE_VERSIONS">
<EntityTypeMapping TypeName="RemoteModel.MACHINE_VERSIONS">
<MappingFragment StoreEntitySet="MACHINE_VERSIONS">
diff --git a/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx.diagram b/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx.diagram
index b2b732414..96cebcca5 100644
--- a/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx.diagram
+++ b/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx.diagram
@@ -5,61 +5,62 @@
<!-- Diagram content (shape and connector positions) -->
<edmx:Diagrams>
<Diagram DiagramId="f9ae01d708754bbd997add25a4bacc79" Name="Diagram1">
- <EntityTypeShape EntityType="RemoteModel.ACTION_TYPES" Width="1.5" PointX="7" PointY="62.25" />
- <EntityTypeShape EntityType="RemoteModel.ADDRESS" Width="1.5" PointX="1.5" PointY="63.25" />
- <EntityTypeShape EntityType="RemoteModel.APPLICATION_DISPLAY_PANEL_VERSIONS" Width="1.5" PointX="1.5" PointY="44.125" />
- <EntityTypeShape EntityType="RemoteModel.APPLICATION_FIRMWARE_VERSIONS" Width="1.5" PointX="1.5" PointY="35.375" />
- <EntityTypeShape EntityType="RemoteModel.APPLICATION_OS_VERSIONS" Width="1.5" PointX="1.5" PointY="41.25" />
- <EntityTypeShape EntityType="RemoteModel.APPLICATION_VERSIONS" Width="1.5" PointX="1.5" PointY="47.125" />
- <EntityTypeShape EntityType="RemoteModel.BRUSH_STOPS" Width="1.5" PointX="12.75" PointY="9.375" />
- <EntityTypeShape EntityType="RemoteModel.CARTRIDGE_TYPES" Width="1.5" PointX="6.75" PointY="42.625" />
- <EntityTypeShape EntityType="RemoteModel.CAT" Width="1.5" PointX="5.25" PointY="10.75" />
- <EntityTypeShape EntityType="RemoteModel.CCT" Width="1.5" PointX="5.25" PointY="14.75" />
- <EntityTypeShape EntityType="RemoteModel.COLOR_CATALOGS" Width="1.5" PointX="10.5" PointY="0.75" />
- <EntityTypeShape EntityType="RemoteModel.COLOR_SPACES" Width="1.5" PointX="8.25" PointY="2.5" />
- <EntityTypeShape EntityType="RemoteModel.CONFIGURATION" Width="1.5" PointX="3.75" PointY="42.5" />
- <EntityTypeShape EntityType="RemoteModel.CONTACT" Width="1.5" PointX="1.5" PointY="59.125" />
- <EntityTypeShape EntityType="RemoteModel.DISPENSER_TYPES" Width="1.5" PointX="6.75" PointY="36" />
- <EntityTypeShape EntityType="RemoteModel.EMBEDDED_FIRMWARE_VERSIONS" Width="1.5" PointX="1.5" PointY="50" />
- <EntityTypeShape EntityType="RemoteModel.EMBEDDED_SOFTWARE_VERSIONS" Width="1.5" PointX="1.5" PointY="53" />
- <EntityTypeShape EntityType="RemoteModel.EVENT_TYPES" Width="1.5" PointX="7" PointY="58.125" />
- <EntityTypeShape EntityType="RemoteModel.EVENT_TYPES_ACTIONS" Width="1.5" PointX="9.25" PointY="58.25" />
- <EntityTypeShape EntityType="RemoteModel.FIBER_SHAPES" Width="1.5" PointX="0.75" PointY="18.625" />
- <EntityTypeShape EntityType="RemoteModel.FIBER_SYNTHS" Width="1.5" PointX="0.75" PointY="15" />
- <EntityTypeShape EntityType="RemoteModel.HARDWARE_VERSIONS" Width="1.5" PointX="1.5" PointY="38.375" />
- <EntityTypeShape EntityType="RemoteModel.IDS_PACK_FORMULAS" Width="1.5" PointX="6.75" PointY="39.25" />
- <EntityTypeShape EntityType="RemoteModel.IDS_PACKS" Width="1.5" PointX="9" PointY="23.625" />
- <EntityTypeShape EntityType="RemoteModel.JOB_RUNS" Width="1.5" PointX="10.5" PointY="8.125" />
- <EntityTypeShape EntityType="RemoteModel.JOB" Width="1.5" PointX="8.25" PointY="8.5" />
- <EntityTypeShape EntityType="RemoteModel.LINEAR_MASS_DENSITY_UNITS" Width="1.5" PointX="0.75" PointY="7.75" />
- <EntityTypeShape EntityType="RemoteModel.LIQUID_TYPES" Width="1.5" PointX="3" PointY="7.625" />
- <EntityTypeShape EntityType="RemoteModel.LIQUID_TYPES_RMLS" Width="1.5" PointX="8.25" PointY="14.875" />
- <EntityTypeShape EntityType="RemoteModel.MACHINE_VERSIONS" Width="1.5" PointX="3.75" PointY="55.875" />
- <EntityTypeShape EntityType="RemoteModel.MACHINE" Width="1.5" PointX="6" PointY="49.125" />
- <EntityTypeShape EntityType="RemoteModel.MACHINES_CONFIGURATIONS" Width="1.5" PointX="8.25" PointY="46.625" />
- <EntityTypeShape EntityType="RemoteModel.MACHINES_EVENTS" Width="1.5" PointX="9.25" PointY="35.875" />
- <EntityTypeShape EntityType="RemoteModel.MEDIA_COLORS" Width="1.5" PointX="0.75" PointY="27.375" />
- <EntityTypeShape EntityType="RemoteModel.MEDIA_CONDITIONS" Width="1.5" PointX="0.75" PointY="10.75" />
- <EntityTypeShape EntityType="RemoteModel.MEDIA_MATERIALS" Width="1.5" PointX="0.75" PointY="21.625" />
- <EntityTypeShape EntityType="RemoteModel.MEDIA_PURPOSES" Width="1.5" PointX="0.75" PointY="24.5" />
- <EntityTypeShape EntityType="RemoteModel.MID_TANK_TYPES" Width="1.5" PointX="6.75" PointY="24.875" />
- <EntityTypeShape EntityType="RemoteModel.ORGANIZATION" Width="1.5" PointX="3.75" PointY="61.5" />
- <EntityTypeShape EntityType="RemoteModel.PERMISSION" Width="1.5" PointX="11" PointY="17.5" />
- <EntityTypeShape EntityType="RemoteModel.PROCESS_PARAMETERS_TABLES" Width="1.5" PointX="7.5" PointY="29.125" />
- <EntityTypeShape EntityType="RemoteModel.PROCESS_PARAMETERS_TABLES_GROUPS" Width="1.5" PointX="5.25" PointY="30.375" />
- <EntityTypeShape EntityType="RemoteModel.RML" Width="1.5" PointX="3" PointY="12.25" />
- <EntityTypeShape EntityType="RemoteModel.ROLE" Width="1.5" PointX="6" PointY="6.375" />
- <EntityTypeShape EntityType="RemoteModel.ROLES_PERMISSIONS" Width="1.5" PointX="13.25" PointY="5.5" />
- <EntityTypeShape EntityType="RemoteModel.SEGMENT" Width="1.5" PointX="10.5" PointY="11.375" />
- <EntityTypeShape EntityType="RemoteModel.SYNC_CONFIGURATIONS" Width="1.5" PointX="0.75" PointY="1.25" />
- <EntityTypeShape EntityType="RemoteModel.TECH_DISPENSERS" Width="1.5" PointX="2.75" PointY="1.25" />
- <EntityTypeShape EntityType="RemoteModel.TECH_IOS" Width="1.5" PointX="4.75" PointY="1.25" />
- <EntityTypeShape EntityType="RemoteModel.TECH_MONITORS" Width="1.5" PointX="12.75" PointY="1.25" />
- <EntityTypeShape EntityType="RemoteModel.TECH_MOTORS" Width="1.5" PointX="0.75" PointY="4.25" />
- <EntityTypeShape EntityType="RemoteModel.TECH_VALVES" Width="1.5" PointX="14.75" PointY="1.25" />
- <EntityTypeShape EntityType="RemoteModel.USER" Width="1.5" PointX="6" PointY="19.75" />
- <EntityTypeShape EntityType="RemoteModel.USERS_ROLES" Width="1.5" PointX="8.25" PointY="19.375" />
- <EntityTypeShape EntityType="RemoteModel.WINDING_METHODS" Width="1.5" PointX="6" PointY="54.5" />
+ <EntityTypeShape EntityType="RemoteModel.ACTION_TYPES" Width="1.5" PointX="3" PointY="64.125" />
+ <EntityTypeShape EntityType="RemoteModel.ADDRESS" Width="1.5" PointX="1.5" PointY="71.25" />
+ <EntityTypeShape EntityType="RemoteModel.APPLICATION_DISPLAY_PANEL_VERSIONS" Width="1.5" PointX="1.5" PointY="33.375" />
+ <EntityTypeShape EntityType="RemoteModel.APPLICATION_FIRMWARE_VERSIONS" Width="1.5" PointX="1.5" PointY="61" />
+ <EntityTypeShape EntityType="RemoteModel.APPLICATION_OS_VERSIONS" Width="1.5" PointX="1.5" PointY="49.375" />
+ <EntityTypeShape EntityType="RemoteModel.APPLICATION_VERSIONS" Width="1.5" PointX="1.5" PointY="55.125" />
+ <EntityTypeShape EntityType="RemoteModel.BRUSH_STOPS" Width="1.5" PointX="10.75" PointY="16.625" />
+ <EntityTypeShape EntityType="RemoteModel.CARTRIDGE_TYPES" Width="1.5" PointX="8" PointY="35.125" />
+ <EntityTypeShape EntityType="RemoteModel.CAT" Width="1.5" PointX="8.25" PointY="14.25" />
+ <EntityTypeShape EntityType="RemoteModel.CCT" Width="1.5" PointX="5.25" PointY="24.625" />
+ <EntityTypeShape EntityType="RemoteModel.COLOR_CATALOGS" Width="1.5" PointX="8.5" PointY="2" />
+ <EntityTypeShape EntityType="RemoteModel.COLOR_SPACES" Width="1.5" PointX="6.25" PointY="3.75" />
+ <EntityTypeShape EntityType="RemoteModel.CONFIGURATION" Width="1.5" PointX="0.75" PointY="37.625" />
+ <EntityTypeShape EntityType="RemoteModel.CONTACT" Width="1.5" PointX="1.5" PointY="75.5" />
+ <EntityTypeShape EntityType="RemoteModel.DISPENSER_TYPES" Width="1.5" PointX="8" PointY="41.375" />
+ <EntityTypeShape EntityType="RemoteModel.EMBEDDED_FIRMWARE_VERSIONS" Width="1.5" PointX="1.5" PointY="30.5" />
+ <EntityTypeShape EntityType="RemoteModel.EMBEDDED_SOFTWARE_VERSIONS" Width="1.5" PointX="1.5" PointY="52.25" />
+ <EntityTypeShape EntityType="RemoteModel.EVENT_TYPES" Width="1.5" PointX="3" PointY="37" />
+ <EntityTypeShape EntityType="RemoteModel.EVENT_TYPES_ACTIONS" Width="1.5" PointX="5.25" PointY="38.125" />
+ <EntityTypeShape EntityType="RemoteModel.FIBER_SHAPES" Width="1.5" PointX="0.75" PointY="24" />
+ <EntityTypeShape EntityType="RemoteModel.FIBER_SYNTHS" Width="1.5" PointX="0.75" PointY="18.125" />
+ <EntityTypeShape EntityType="RemoteModel.HARDWARE_VERSIONS" Width="1.5" PointX="1.5" PointY="58.125" />
+ <EntityTypeShape EntityType="RemoteModel.IDS_PACK_FORMULAS" Width="1.5" PointX="8" PointY="38.125" />
+ <EntityTypeShape EntityType="RemoteModel.IDS_PACKS" Width="1.5" PointX="10.25" PointY="25" />
+ <EntityTypeShape EntityType="RemoteModel.JOB_RUNS" Width="1.5" PointX="7.5" PointY="22.125" />
+ <EntityTypeShape EntityType="RemoteModel.JOB" Width="1.5" PointX="5.25" PointY="13" />
+ <EntityTypeShape EntityType="RemoteModel.LINEAR_MASS_DENSITY_UNITS" Width="1.5" PointX="0.75" PointY="10.25" />
+ <EntityTypeShape EntityType="RemoteModel.LIQUID_TYPES" Width="1.5" PointX="6" PointY="9.25" />
+ <EntityTypeShape EntityType="RemoteModel.LIQUID_TYPES_RMLS" Width="1.5" PointX="8.25" PointY="10.375" />
+ <EntityTypeShape EntityType="RemoteModel.MACHINE_STUDIO_VERSIONS" Width="1.5" PointX="5.25" PointY="21.25" />
+ <EntityTypeShape EntityType="RemoteModel.MACHINE_VERSIONS" Width="1.5" PointX="0.75" PointY="45.875" />
+ <EntityTypeShape EntityType="RemoteModel.MACHINE" Width="1.5" PointX="3" PointY="44.25" />
+ <EntityTypeShape EntityType="RemoteModel.MACHINES_CONFIGURATIONS" Width="1.5" PointX="5.25" PointY="41.625" />
+ <EntityTypeShape EntityType="RemoteModel.MACHINES_EVENTS" Width="1.5" PointX="5.25" PointY="33.75" />
+ <EntityTypeShape EntityType="RemoteModel.MEDIA_COLORS" Width="1.5" PointX="0.75" PointY="14.625" />
+ <EntityTypeShape EntityType="RemoteModel.MEDIA_CONDITIONS" Width="1.5" PointX="0.75" PointY="21" />
+ <EntityTypeShape EntityType="RemoteModel.MEDIA_MATERIALS" Width="1.5" PointX="0.75" PointY="7.25" />
+ <EntityTypeShape EntityType="RemoteModel.MEDIA_PURPOSES" Width="1.5" PointX="0.75" PointY="26.875" />
+ <EntityTypeShape EntityType="RemoteModel.MID_TANK_TYPES" Width="1.5" PointX="8" PointY="44.75" />
+ <EntityTypeShape EntityType="RemoteModel.ORGANIZATION" Width="1.5" PointX="0.75" PointY="66.5" />
+ <EntityTypeShape EntityType="RemoteModel.PERMISSION" Width="1.5" PointX="11" PointY="9.375" />
+ <EntityTypeShape EntityType="RemoteModel.PROCESS_PARAMETERS_TABLES" Width="1.5" PointX="7.5" PointY="28.75" />
+ <EntityTypeShape EntityType="RemoteModel.PROCESS_PARAMETERS_TABLES_GROUPS" Width="1.5" PointX="5.25" PointY="30" />
+ <EntityTypeShape EntityType="RemoteModel.RML" Width="1.5" PointX="3" PointY="11.75" />
+ <EntityTypeShape EntityType="RemoteModel.ROLE" Width="1.5" PointX="11" PointY="13.25" />
+ <EntityTypeShape EntityType="RemoteModel.ROLES_PERMISSIONS" Width="1.5" PointX="13.25" PointY="13.375" />
+ <EntityTypeShape EntityType="RemoteModel.SEGMENT" Width="1.5" PointX="7.5" PointY="18.625" />
+ <EntityTypeShape EntityType="RemoteModel.SYNC_CONFIGURATIONS" Width="1.5" PointX="0.75" PointY="0.75" />
+ <EntityTypeShape EntityType="RemoteModel.TECH_DISPENSERS" Width="1.5" PointX="2.75" PointY="0.75" />
+ <EntityTypeShape EntityType="RemoteModel.TECH_IOS" Width="1.5" PointX="2.75" PointY="3.75" />
+ <EntityTypeShape EntityType="RemoteModel.TECH_MONITORS" Width="1.5" PointX="10.75" PointY="0.75" />
+ <EntityTypeShape EntityType="RemoteModel.TECH_MOTORS" Width="1.5" PointX="2.75" PointY="7.75" />
+ <EntityTypeShape EntityType="RemoteModel.TECH_VALVES" Width="1.5" PointX="4.75" PointY="0.75" />
+ <EntityTypeShape EntityType="RemoteModel.USER" Width="1.5" PointX="3" PointY="20.5" />
+ <EntityTypeShape EntityType="RemoteModel.USERS_ROLES" Width="1.5" PointX="13.25" PointY="21.25" />
+ <EntityTypeShape EntityType="RemoteModel.WINDING_METHODS" Width="1.5" PointX="3" PointY="25.375" />
<AssociationConnector Association="RemoteModel.FK_EVENTS_ACTIONS_ACTIONS" />
<AssociationConnector Association="RemoteModel.FK_ORGANIZATIONS_ADDRESSES" />
<AssociationConnector Association="RemoteModel.FK_USERS_ADDRESSES" />
@@ -101,6 +102,7 @@
<AssociationConnector Association="RemoteModel.FK_RML_LINEAR_MASS_DENSITY_UNITS" />
<AssociationConnector Association="RemoteModel.FK_LIQUID_TYPES_RMLS_LIQUID_TYPES" />
<AssociationConnector Association="RemoteModel.FK_LIQUID_TYPES_RMLS_RMLS" />
+ <AssociationConnector Association="RemoteModel.FK_MACHINE_STUDIO_VERSIONS_USERS" />
<AssociationConnector Association="RemoteModel.FK_MACHINES_MACHINE_VERSIONS" />
<AssociationConnector Association="RemoteModel.FK_MACHINES_CONFIGURATIONS_MACHINES" />
<AssociationConnector Association="RemoteModel.FK_MACHINES_EVENTS_MACHINES" />
diff --git a/Software/Visual_Studio/Tango.DAL.Remote/DB/USER.cs b/Software/Visual_Studio/Tango.DAL.Remote/DB/USER.cs
index e7cfb212f..28dc2a2b8 100644
--- a/Software/Visual_Studio/Tango.DAL.Remote/DB/USER.cs
+++ b/Software/Visual_Studio/Tango.DAL.Remote/DB/USER.cs
@@ -18,6 +18,7 @@ namespace Tango.DAL.Remote.DB
public USER()
{
this.JOBS = new HashSet<JOB>();
+ this.MACHINE_STUDIO_VERSIONS = new HashSet<MACHINE_STUDIO_VERSIONS>();
this.MACHINES_EVENTS = new HashSet<MACHINES_EVENTS>();
this.USERS_ROLES = new HashSet<USERS_ROLES>();
}
@@ -37,6 +38,8 @@ namespace Tango.DAL.Remote.DB
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
public virtual ICollection<JOB> JOBS { get; set; }
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
+ public virtual ICollection<MACHINE_STUDIO_VERSIONS> MACHINE_STUDIO_VERSIONS { get; set; }
+ [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
public virtual ICollection<MACHINES_EVENTS> MACHINES_EVENTS { get; set; }
public virtual ORGANIZATION ORGANIZATION { get; set; }
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
diff --git a/Software/Visual_Studio/Tango.DAL.Remote/Tango.DAL.Remote.csproj b/Software/Visual_Studio/Tango.DAL.Remote/Tango.DAL.Remote.csproj
index 58ed81525..561cf44ff 100644
--- a/Software/Visual_Studio/Tango.DAL.Remote/Tango.DAL.Remote.csproj
+++ b/Software/Visual_Studio/Tango.DAL.Remote/Tango.DAL.Remote.csproj
@@ -161,6 +161,9 @@
<Compile Include="DB\MACHINES_EVENTS.cs">
<DependentUpon>RemoteADO.tt</DependentUpon>
</Compile>
+ <Compile Include="DB\MACHINE_STUDIO_VERSIONS.cs">
+ <DependentUpon>RemoteADO.tt</DependentUpon>
+ </Compile>
<Compile Include="DB\MACHINE_VERSIONS.cs">
<DependentUpon>RemoteADO.tt</DependentUpon>
</Compile>
diff --git a/Software/Visual_Studio/Tango.Integration/Observables/Entities/MachineStudioVersion.cs b/Software/Visual_Studio/Tango.Integration/Observables/Entities/MachineStudioVersion.cs
new file mode 100644
index 000000000..9ff07682b
--- /dev/null
+++ b/Software/Visual_Studio/Tango.Integration/Observables/Entities/MachineStudioVersion.cs
@@ -0,0 +1,126 @@
+using System;
+using System.Collections.Generic;
+using System.Collections.ObjectModel;
+using System.ComponentModel.DataAnnotations;
+using System.ComponentModel.DataAnnotations.Schema;
+using System.Xml.Serialization;
+using Newtonsoft.Json;
+using System.Linq;
+using Tango.DAL.Remote.DB;
+
+namespace Tango.Integration.Observables
+{
+ [Table("MACHINE_STUDIO_VERSIONS")]
+ public partial class MachineStudioVersion : ObservableEntity<MachineStudioVersion>
+ {
+
+ protected String _version;
+ /// <summary>
+ /// Gets or sets the machinestudioversion version.
+ /// </summary>
+ [Column("VERSION")]
+
+ public String Version
+ {
+ get
+ {
+ return _version;
+ }
+
+ set
+ {
+ _version = value; RaisePropertyChanged(nameof(Version));
+ }
+
+ }
+
+ protected String _ftpfilepath;
+ /// <summary>
+ /// Gets or sets the machinestudioversion ftp file path.
+ /// </summary>
+ [Column("FTP_FILE_PATH")]
+
+ public String FtpFilePath
+ {
+ get
+ {
+ return _ftpfilepath;
+ }
+
+ set
+ {
+ _ftpfilepath = value; RaisePropertyChanged(nameof(FtpFilePath));
+ }
+
+ }
+
+ protected String _comments;
+ /// <summary>
+ /// Gets or sets the machinestudioversion comments.
+ /// </summary>
+ [Column("COMMENTS")]
+
+ public String Comments
+ {
+ get
+ {
+ return _comments;
+ }
+
+ set
+ {
+ _comments = value; RaisePropertyChanged(nameof(Comments));
+ }
+
+ }
+
+ protected String _userguid;
+ /// <summary>
+ /// Gets or sets the machinestudioversion user guid.
+ /// </summary>
+ [Column("USER_GUID")]
+ [ForeignKey("User")]
+
+ public String UserGuid
+ {
+ get
+ {
+ return _userguid;
+ }
+
+ set
+ {
+ _userguid = value; RaisePropertyChanged(nameof(UserGuid));
+ }
+
+ }
+
+ protected User _user;
+ /// <summary>
+ /// Gets or sets the machinestudioversion user.
+ /// </summary>
+
+ [XmlIgnore]
+ [JsonIgnore]
+ public virtual User User
+ {
+ get
+ {
+ return _user;
+ }
+
+ set
+ {
+ _user = value; RaisePropertyChanged(nameof(User));
+ }
+
+ }
+
+ /// <summary>
+ /// Initializes a new instance of the <see cref="MachineStudioVersion" /> class.
+ /// </summary>
+ public MachineStudioVersion() : base()
+ {
+ }
+ }
+}
diff --git a/Software/Visual_Studio/Tango.Integration/Observables/Entities/User.cs b/Software/Visual_Studio/Tango.Integration/Observables/Entities/User.cs
index 3acfb8fb6..50ca7e775 100644
--- a/Software/Visual_Studio/Tango.Integration/Observables/Entities/User.cs
+++ b/Software/Visual_Studio/Tango.Integration/Observables/Entities/User.cs
@@ -198,6 +198,25 @@ namespace Tango.Integration.Observables
}
+ protected ObservableCollection<MachineStudioVersion> _machinestudioversions;
+ /// <summary>
+ /// Gets or sets the user machine studio versions.
+ /// </summary>
+
+ public virtual ObservableCollection<MachineStudioVersion> MachineStudioVersions
+ {
+ get
+ {
+ return _machinestudioversions;
+ }
+
+ set
+ {
+ _machinestudioversions = value; RaisePropertyChanged(nameof(MachineStudioVersions));
+ }
+
+ }
+
protected ObservableCollection<MachinesEvent> _machinesevents;
/// <summary>
/// Gets or sets the user machines events.
@@ -265,6 +284,8 @@ namespace Tango.Integration.Observables
Jobs = new ObservableCollection<Job>();
+ MachineStudioVersions = new ObservableCollection<MachineStudioVersion>();
+
MachinesEvents = new ObservableCollection<MachinesEvent>();
UsersRoles = new ObservableCollection<UsersRole>();
diff --git a/Software/Visual_Studio/Tango.Integration/Observables/ObservablesContext.cs b/Software/Visual_Studio/Tango.Integration/Observables/ObservablesContext.cs
index 6c5947306..37830081d 100644
--- a/Software/Visual_Studio/Tango.Integration/Observables/ObservablesContext.cs
+++ b/Software/Visual_Studio/Tango.Integration/Observables/ObservablesContext.cs
@@ -30,7 +30,7 @@ namespace Tango.Integration.Observables
{
if (!isFile)
{
- return String.Format("Data Source={0};Initial Catalog=Tango;Integrated Security=true", source);
+ return String.Format("Data Source={0};Initial Catalog=Tango;User Id=Developer;Password=1111;", source);
}
else
{
@@ -47,6 +47,11 @@ namespace Tango.Integration.Observables
return new ObservablesContext(SettingsManager.Default.DataBase.SQLServerAddress, false);
}
+ public static ObservablesContext CreateDefaultForWeb()
+ {
+ return new ObservablesContext("localhost\\SQLEXPRESS", false);
+ }
+
/// <summary>
/// Gets or sets the ActionTypes.
/// </summary>
@@ -280,6 +285,14 @@ namespace Tango.Integration.Observables
}
/// <summary>
+ /// Gets or sets the MachineStudioVersions.
+ /// </summary>
+ public DbSet<MachineStudioVersion> MachineStudioVersions
+ {
+ get; set;
+ }
+
+ /// <summary>
/// Gets or sets the MachineVersions.
/// </summary>
public DbSet<MachineVersion> MachineVersions
diff --git a/Software/Visual_Studio/Tango.Integration/Observables/ObservablesEntitiesAdapterExtension.cs b/Software/Visual_Studio/Tango.Integration/Observables/ObservablesEntitiesAdapterExtension.cs
index 70aad649d..b8aef34f7 100644
--- a/Software/Visual_Studio/Tango.Integration/Observables/ObservablesEntitiesAdapterExtension.cs
+++ b/Software/Visual_Studio/Tango.Integration/Observables/ObservablesEntitiesAdapterExtension.cs
@@ -1050,6 +1050,42 @@ namespace Tango.Integration.Observables
}
+ private ObservableCollection<MachineStudioVersion> _machinestudioversions;
+ /// <summary>
+ /// Gets or sets the MachineStudioVersions.
+ /// </summary>
+ public ObservableCollection<MachineStudioVersion> MachineStudioVersions
+ {
+ get
+ {
+ return _machinestudioversions;
+ }
+
+ set
+ {
+ _machinestudioversions = value; RaisePropertyChanged(nameof(MachineStudioVersions));
+ }
+
+ }
+
+ private ICollectionView _machinestudioversionsViewSource;
+ /// <summary>
+ /// Gets or sets the MachineStudioVersions View Source.
+ ///</summary>
+ public ICollectionView MachineStudioVersionsViewSource
+ {
+ get
+ {
+ return _machinestudioversionsViewSource;
+ }
+
+ set
+ {
+ _machinestudioversionsViewSource = value; RaisePropertyChanged(nameof(MachineStudioVersionsViewSource));
+ }
+
+ }
+
private ObservableCollection<MachineVersion> _machineversions;
/// <summary>
/// Gets or sets the MachineVersions.
@@ -2050,6 +2086,8 @@ namespace Tango.Integration.Observables
LiquidTypesRmlsViewSource = CreateCollectionView(LiquidTypesRmls);
+ MachineStudioVersionsViewSource = CreateCollectionView(MachineStudioVersions);
+
MachineVersionsViewSource = CreateCollectionView(MachineVersions);
MachinesViewSource = CreateCollectionView(Machines);
diff --git a/Software/Visual_Studio/Tango.Integration/Tango.Integration.csproj b/Software/Visual_Studio/Tango.Integration/Tango.Integration.csproj
index 1a053a937..3f4d2056b 100644
--- a/Software/Visual_Studio/Tango.Integration/Tango.Integration.csproj
+++ b/Software/Visual_Studio/Tango.Integration/Tango.Integration.csproj
@@ -113,6 +113,7 @@
<Compile Include="Observables\Entities\HardwareVersion.cs" />
<Compile Include="Observables\Entities\IdsPack.cs" />
<Compile Include="Observables\Entities\IdsPackFormula.cs" />
+ <Compile Include="Observables\Entities\MachineStudioVersion.cs" />
<Compile Include="Observables\Entities\TechDispenser.cs" />
<Compile Include="Observables\Entities\TechIo.cs" />
<Compile Include="Observables\Entities\TechMonitor.cs" />
diff --git a/Software/Visual_Studio/Tango.PMR/Common/MessageType.cs b/Software/Visual_Studio/Tango.PMR/Common/MessageType.cs
index 4811280d1..9ea29b24f 100644
--- a/Software/Visual_Studio/Tango.PMR/Common/MessageType.cs
+++ b/Software/Visual_Studio/Tango.PMR/Common/MessageType.cs
@@ -22,7 +22,7 @@ namespace Tango.PMR.Common {
static MessageTypeReflection() {
byte[] descriptorData = global::System.Convert.FromBase64String(
string.Concat(
- "ChFNZXNzYWdlVHlwZS5wcm90bxIQVGFuZ28uUE1SLkNvbW1vbiqREAoLTWVz",
+ "ChFNZXNzYWdlVHlwZS5wcm90bxIQVGFuZ28uUE1SLkNvbW1vbirJFAoLTWVz",
"c2FnZVR5cGUSCAoETm9uZRAAEhQKEENhbGN1bGF0ZVJlcXVlc3QQAxIVChFD",
"YWxjdWxhdGVSZXNwb25zZRAEEhMKD1Byb2dyZXNzUmVxdWVzdBAFEhQKEFBy",
"b2dyZXNzUmVzcG9uc2UQBhIcChhTdHViQ2FydHJpZGdlUmVhZFJlcXVlc3QQ",
@@ -44,32 +44,45 @@ namespace Tango.PMR.Common {
"ChBTdHViVmFsdmVSZXF1ZXN0EB8SFQoRU3R1YlZhbHZlUmVzcG9uc2UQIBIb",
"ChdTdHViRXh0Rmxhc2hSZWFkUmVxdWVzdBAhEhwKGFN0dWJFeHRGbGFzaFJl",
"YWRSZXNwb25zZRAiEhwKGFN0dWJFeHRGbGFzaFdyaXRlUmVxdWVzdBAjEh0K",
- "GVN0dWJFeHRGbGFzaFdyaXRlUmVzcG9uc2UQJBIlCiBFeHRlcm5hbEJyaWRn",
- "ZVVkcERpc2NvdmVyeVBhY2tldBDoBxIfChpFeHRlcm5hbENsaWVudExvZ2lu",
- "UmVxdWVzdBDpBxIgChtFeHRlcm5hbENsaWVudExvZ2luUmVzcG9uc2UQ6gcS",
- "IQocRGlyZWN0U3luY2hyb25pemF0aW9uUmVxdWVzdBDrBxIiCh1EaXJlY3RT",
- "eW5jaHJvbml6YXRpb25SZXNwb25zZRDsBxIcChdPdmVycmlkZURhdGFCYXNl",
- "UmVxdWVzdBDtBxIdChhPdmVycmlkZURhdGFCYXNlUmVzcG9uc2UQ7gcSFQoQ",
- "S2VlcEFsaXZlUmVxdWVzdBDvBxIWChFLZWVwQWxpdmVSZXNwb25zZRDwBxIb",
- "ChZQdXNoRGlhZ25vc3RpY3NSZXF1ZXN0ENAPEhwKF1B1c2hEaWFnbm9zdGlj",
- "c1Jlc3BvbnNlENEPEhwKF01vdG9yQWJvcnRIb21pbmdSZXF1ZXN0ENIPEh0K",
- "GE1vdG9yQWJvcnRIb21pbmdSZXNwb25zZRDTDxIXChJNb3RvckhvbWluZ1Jl",
- "cXVlc3QQ1A8SGAoTTW90b3JIb21pbmdSZXNwb25zZRDVDxIYChNNb3Rvckpv",
- "Z2dpbmdSZXF1ZXN0ENYPEhkKFE1vdG9ySm9nZ2luZ1Jlc3BvbnNlENcPEh0K",
- "GE1vdG9yQWJvcnRKb2dnaW5nUmVxdWVzdBDYDxIeChlNb3RvckFib3J0Sm9n",
- "Z2luZ1Jlc3BvbnNlENkPEiAKG0Rpc3BlbnNlckFib3J0SG9taW5nUmVxdWVz",
- "dBDaDxIhChxEaXNwZW5zZXJBYm9ydEhvbWluZ1Jlc3BvbnNlENsPEhsKFkRp",
- "c3BlbnNlckhvbWluZ1JlcXVlc3QQ3A8SHAoXRGlzcGVuc2VySG9taW5nUmVz",
- "cG9uc2UQ3Q8SHAoXRGlzcGVuc2VySm9nZ2luZ1JlcXVlc3QQ3g8SHQoYRGlz",
- "cGVuc2VySm9nZ2luZ1Jlc3BvbnNlEN8PEiEKHERpc3BlbnNlckFib3J0Sm9n",
- "Z2luZ1JlcXVlc3QQ4A8SIgodRGlzcGVuc2VyQWJvcnRKb2dnaW5nUmVzcG9u",
- "c2UQ4Q8SGQoUU2V0RGlnaXRhbE91dFJlcXVlc3QQ4g8SGgoVU2V0RGlnaXRh",
- "bE91dFJlc3BvbnNlEOMPEhkKFFRocmVhZEpvZ2dpbmdSZXF1ZXN0EOQPEhoK",
- "FVRocmVhZEpvZ2dpbmdSZXNwb25zZRDlDxIeChlUaHJlYWRBYm9ydEpvZ2dp",
- "bmdSZXF1ZXN0EOYPEh8KGlRocmVhZEFib3J0Sm9nZ2luZ1Jlc3BvbnNlEOcP",
- "Eg8KCkpvYlJlcXVlc3QQuBcSEAoLSm9iUmVzcG9uc2UQuRcSFAoPQWJvcnRK",
- "b2JSZXF1ZXN0ELoXEhUKEEFib3J0Sm9iUmVzcG9uc2UQuxdCHAoaY29tLnR3",
- "aW5lLnRhbmdvLnBtci5jb21tb25iBnByb3RvMw=="));
+ "GVN0dWJFeHRGbGFzaFdyaXRlUmVzcG9uc2UQJBIeChpTdHViRlBHQVJlYWRC",
+ "YWNrUmVnUmVxdWVzdBAlEh8KG1N0dWJGUEdBUmVhZEJhY2tSZWdSZXNwb25z",
+ "ZRAmEh4KGlN0dWJGUEdBUmVhZFZlcnNpb25SZXF1ZXN0ECcSHwobU3R1YkZQ",
+ "R0FSZWFkVmVyc2lvblJlc3BvbnNlECgSGgoWU3R1Ykw2NDcwRHJpdmVyUmVx",
+ "dWVzdBApEhsKF1N0dWJMNjQ3MERyaXZlclJlc3BvbnNlECoSGAoUU3R1Yk1v",
+ "dG9ySW5pdFJlcXVlc3QQKxIZChVTdHViTW90b3JJbml0UmVzcG9uc2UQLBIX",
+ "ChNTdHViTW90b3JSdW5SZXF1ZXN0EC0SGAoUU3R1Yk1vdG9yUnVuUmVzcG9u",
+ "c2UQLhIYChRTdHViTW90b3JTdG9wUmVxdWVzdBAvEhkKFVN0dWJNb3RvclN0",
+ "b3BSZXNwb25zZRAwEhoKFlN0dWJNb3RvclN0YXR1c1JlcXVlc3QQMRIbChdT",
+ "dHViTW90b3JTdGF0dXNSZXNwb25zZRAyEhcKE1N0dWJNb3Rvck1vdlJlcXVl",
+ "c3QQMxIYChRTdHViTW90b3JNb3ZSZXNwb25zZRA0EhkKFVN0dWJNb3RvclNw",
+ "ZWVkUmVxdWVzdBA1EhoKFlN0dWJNb3RvclNwZWVkUmVzcG9uc2UQNhIcChhT",
+ "dHViTW90b3JQb3NpdGlvblJlcXVlc3QQNxIdChlTdHViTW90b3JQb3NpdGlv",
+ "blJlc3BvbnNlEDgSJQogRXh0ZXJuYWxCcmlkZ2VVZHBEaXNjb3ZlcnlQYWNr",
+ "ZXQQ6AcSHwoaRXh0ZXJuYWxDbGllbnRMb2dpblJlcXVlc3QQ6QcSIAobRXh0",
+ "ZXJuYWxDbGllbnRMb2dpblJlc3BvbnNlEOoHEiEKHERpcmVjdFN5bmNocm9u",
+ "aXphdGlvblJlcXVlc3QQ6wcSIgodRGlyZWN0U3luY2hyb25pemF0aW9uUmVz",
+ "cG9uc2UQ7AcSHAoXT3ZlcnJpZGVEYXRhQmFzZVJlcXVlc3QQ7QcSHQoYT3Zl",
+ "cnJpZGVEYXRhQmFzZVJlc3BvbnNlEO4HEhUKEEtlZXBBbGl2ZVJlcXVlc3QQ",
+ "7wcSFgoRS2VlcEFsaXZlUmVzcG9uc2UQ8AcSGwoWUHVzaERpYWdub3N0aWNz",
+ "UmVxdWVzdBDQDxIcChdQdXNoRGlhZ25vc3RpY3NSZXNwb25zZRDRDxIcChdN",
+ "b3RvckFib3J0SG9taW5nUmVxdWVzdBDSDxIdChhNb3RvckFib3J0SG9taW5n",
+ "UmVzcG9uc2UQ0w8SFwoSTW90b3JIb21pbmdSZXF1ZXN0ENQPEhgKE01vdG9y",
+ "SG9taW5nUmVzcG9uc2UQ1Q8SGAoTTW90b3JKb2dnaW5nUmVxdWVzdBDWDxIZ",
+ "ChRNb3RvckpvZ2dpbmdSZXNwb25zZRDXDxIdChhNb3RvckFib3J0Sm9nZ2lu",
+ "Z1JlcXVlc3QQ2A8SHgoZTW90b3JBYm9ydEpvZ2dpbmdSZXNwb25zZRDZDxIg",
+ "ChtEaXNwZW5zZXJBYm9ydEhvbWluZ1JlcXVlc3QQ2g8SIQocRGlzcGVuc2Vy",
+ "QWJvcnRIb21pbmdSZXNwb25zZRDbDxIbChZEaXNwZW5zZXJIb21pbmdSZXF1",
+ "ZXN0ENwPEhwKF0Rpc3BlbnNlckhvbWluZ1Jlc3BvbnNlEN0PEhwKF0Rpc3Bl",
+ "bnNlckpvZ2dpbmdSZXF1ZXN0EN4PEh0KGERpc3BlbnNlckpvZ2dpbmdSZXNw",
+ "b25zZRDfDxIhChxEaXNwZW5zZXJBYm9ydEpvZ2dpbmdSZXF1ZXN0EOAPEiIK",
+ "HURpc3BlbnNlckFib3J0Sm9nZ2luZ1Jlc3BvbnNlEOEPEhkKFFNldERpZ2l0",
+ "YWxPdXRSZXF1ZXN0EOIPEhoKFVNldERpZ2l0YWxPdXRSZXNwb25zZRDjDxIZ",
+ "ChRUaHJlYWRKb2dnaW5nUmVxdWVzdBDkDxIaChVUaHJlYWRKb2dnaW5nUmVz",
+ "cG9uc2UQ5Q8SHgoZVGhyZWFkQWJvcnRKb2dnaW5nUmVxdWVzdBDmDxIfChpU",
+ "aHJlYWRBYm9ydEpvZ2dpbmdSZXNwb25zZRDnDxIPCgpKb2JSZXF1ZXN0ELgX",
+ "EhAKC0pvYlJlc3BvbnNlELkXEhQKD0Fib3J0Sm9iUmVxdWVzdBC6FxIVChBB",
+ "Ym9ydEpvYlJlc3BvbnNlELsXQhwKGmNvbS50d2luZS50YW5nby5wbXIuY29t",
+ "bW9uYgZwcm90bzM="));
descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
new pbr::FileDescriptor[] { },
new pbr::GeneratedClrTypeInfo(new[] {typeof(global::Tango.PMR.Common.MessageType), }, null));
@@ -120,6 +133,26 @@ namespace Tango.PMR.Common {
[pbr::OriginalName("StubExtFlashReadResponse")] StubExtFlashReadResponse = 34,
[pbr::OriginalName("StubExtFlashWriteRequest")] StubExtFlashWriteRequest = 35,
[pbr::OriginalName("StubExtFlashWriteResponse")] StubExtFlashWriteResponse = 36,
+ [pbr::OriginalName("StubFPGAReadBackRegRequest")] StubFpgareadBackRegRequest = 37,
+ [pbr::OriginalName("StubFPGAReadBackRegResponse")] StubFpgareadBackRegResponse = 38,
+ [pbr::OriginalName("StubFPGAReadVersionRequest")] StubFpgareadVersionRequest = 39,
+ [pbr::OriginalName("StubFPGAReadVersionResponse")] StubFpgareadVersionResponse = 40,
+ [pbr::OriginalName("StubL6470DriverRequest")] StubL6470DriverRequest = 41,
+ [pbr::OriginalName("StubL6470DriverResponse")] StubL6470DriverResponse = 42,
+ [pbr::OriginalName("StubMotorInitRequest")] StubMotorInitRequest = 43,
+ [pbr::OriginalName("StubMotorInitResponse")] StubMotorInitResponse = 44,
+ [pbr::OriginalName("StubMotorRunRequest")] StubMotorRunRequest = 45,
+ [pbr::OriginalName("StubMotorRunResponse")] StubMotorRunResponse = 46,
+ [pbr::OriginalName("StubMotorStopRequest")] StubMotorStopRequest = 47,
+ [pbr::OriginalName("StubMotorStopResponse")] StubMotorStopResponse = 48,
+ [pbr::OriginalName("StubMotorStatusRequest")] StubMotorStatusRequest = 49,
+ [pbr::OriginalName("StubMotorStatusResponse")] StubMotorStatusResponse = 50,
+ [pbr::OriginalName("StubMotorMovRequest")] StubMotorMovRequest = 51,
+ [pbr::OriginalName("StubMotorMovResponse")] StubMotorMovResponse = 52,
+ [pbr::OriginalName("StubMotorSpeedRequest")] StubMotorSpeedRequest = 53,
+ [pbr::OriginalName("StubMotorSpeedResponse")] StubMotorSpeedResponse = 54,
+ [pbr::OriginalName("StubMotorPositionRequest")] StubMotorPositionRequest = 55,
+ [pbr::OriginalName("StubMotorPositionResponse")] StubMotorPositionResponse = 56,
/// <summary>
///Integration
/// </summary>
diff --git a/Software/Visual_Studio/Tango.PMR/Tango.PMR.csproj b/Software/Visual_Studio/Tango.PMR/Tango.PMR.csproj
index 3674c3e73..9e1f2dd76 100644
--- a/Software/Visual_Studio/Tango.PMR/Tango.PMR.csproj
+++ b/Software/Visual_Studio/Tango.PMR/Tango.PMR.csproj
@@ -24,8 +24,8 @@
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
- <Optimize>true</Optimize>
- <OutputPath>bin\Release\</OutputPath>
+ <Optimize>false</Optimize>
+ <OutputPath>..\Build\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
diff --git a/Software/Visual_Studio/Tango.Settings/MachineStudioSettings/MachineStudio.cs b/Software/Visual_Studio/Tango.Settings/MachineStudioSettings/MachineStudio.cs
index 0cb35199f..111c959f7 100644
--- a/Software/Visual_Studio/Tango.Settings/MachineStudioSettings/MachineStudio.cs
+++ b/Software/Visual_Studio/Tango.Settings/MachineStudioSettings/MachineStudio.cs
@@ -29,6 +29,11 @@ namespace Tango.Settings.MachineStudioSettings
public bool RememberMe { get; set; }
/// <summary>
+ /// Gets or sets the update service address.
+ /// </summary>
+ public String UpdateServiceAddress { get; set; }
+
+ /// <summary>
/// Gets or sets the logging categories.
/// </summary>
public List<LogCategory> LoggingCategories { get; set; }
@@ -69,6 +74,7 @@ namespace Tango.Settings.MachineStudioSettings
StubsModule = new StubsModule();
TechnicianModule = new TechnicianModule();
DeveloperModule = new DeveloperModule();
+ UpdateServiceAddress = "http://localhost/MachineStudioUpdateService/MachineStudioUpdateService.svc";
}
}
}
diff --git a/Software/Visual_Studio/Tango.Video/Tango.Video.csproj b/Software/Visual_Studio/Tango.Video/Tango.Video.csproj
index f24d3a625..cb08ec0f9 100644
--- a/Software/Visual_Studio/Tango.Video/Tango.Video.csproj
+++ b/Software/Visual_Studio/Tango.Video/Tango.Video.csproj
@@ -24,18 +24,20 @@
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
- <PlatformTarget>x86</PlatformTarget>
+ <PlatformTarget>AnyCPU</PlatformTarget>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
<DocumentationFile>
</DocumentationFile>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
- <Optimize>true</Optimize>
- <OutputPath>bin\Release\</OutputPath>
+ <Optimize>false</Optimize>
+ <OutputPath>..\Build\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
+ <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
+ <PlatformTarget>x86</PlatformTarget>
</PropertyGroup>
<ItemGroup>
<Reference Include="Costura, Version=1.6.2.0, Culture=neutral, PublicKeyToken=9919ef960d84173d, processorArchitecture=MSIL">
diff --git a/Software/Visual_Studio/Tango.sln b/Software/Visual_Studio/Tango.sln
index f5fe8c1c0..ec84fa212 100644
--- a/Software/Visual_Studio/Tango.sln
+++ b/Software/Visual_Studio/Tango.sln
@@ -127,6 +127,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.Visuals", "Tango.Visu
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.MachineStudio.DataCapture", "MachineStudio\Modules\Tango.MachineStudio.DataCapture\Tango.MachineStudio.DataCapture.csproj", "{FC337A7F-1214-41D8-9992-78092A3B961E}"
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.MachineStudio.UpdateService", "MachineStudio\Tango.MachineStudio.UpdateService\Tango.MachineStudio.UpdateService.csproj", "{CC6D62E9-C300-42F3-B452-79966E902B10}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -1657,6 +1659,36 @@ Global
{FC337A7F-1214-41D8-9992-78092A3B961E}.Release|x64.Build.0 = Release|Any CPU
{FC337A7F-1214-41D8-9992-78092A3B961E}.Release|x86.ActiveCfg = Release|Any CPU
{FC337A7F-1214-41D8-9992-78092A3B961E}.Release|x86.Build.0 = Release|Any CPU
+ {CC6D62E9-C300-42F3-B452-79966E902B10}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {CC6D62E9-C300-42F3-B452-79966E902B10}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {CC6D62E9-C300-42F3-B452-79966E902B10}.Debug|ARM.ActiveCfg = Debug|Any CPU
+ {CC6D62E9-C300-42F3-B452-79966E902B10}.Debug|ARM.Build.0 = Debug|Any CPU
+ {CC6D62E9-C300-42F3-B452-79966E902B10}.Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {CC6D62E9-C300-42F3-B452-79966E902B10}.Debug|ARM64.Build.0 = Debug|Any CPU
+ {CC6D62E9-C300-42F3-B452-79966E902B10}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {CC6D62E9-C300-42F3-B452-79966E902B10}.Debug|x64.Build.0 = Debug|Any CPU
+ {CC6D62E9-C300-42F3-B452-79966E902B10}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {CC6D62E9-C300-42F3-B452-79966E902B10}.Debug|x86.Build.0 = Debug|Any CPU
+ {CC6D62E9-C300-42F3-B452-79966E902B10}.DefaultBuild|Any CPU.ActiveCfg = Debug|Any CPU
+ {CC6D62E9-C300-42F3-B452-79966E902B10}.DefaultBuild|Any CPU.Build.0 = Debug|Any CPU
+ {CC6D62E9-C300-42F3-B452-79966E902B10}.DefaultBuild|ARM.ActiveCfg = Debug|Any CPU
+ {CC6D62E9-C300-42F3-B452-79966E902B10}.DefaultBuild|ARM.Build.0 = Debug|Any CPU
+ {CC6D62E9-C300-42F3-B452-79966E902B10}.DefaultBuild|ARM64.ActiveCfg = Debug|Any CPU
+ {CC6D62E9-C300-42F3-B452-79966E902B10}.DefaultBuild|ARM64.Build.0 = Debug|Any CPU
+ {CC6D62E9-C300-42F3-B452-79966E902B10}.DefaultBuild|x64.ActiveCfg = Debug|Any CPU
+ {CC6D62E9-C300-42F3-B452-79966E902B10}.DefaultBuild|x64.Build.0 = Debug|Any CPU
+ {CC6D62E9-C300-42F3-B452-79966E902B10}.DefaultBuild|x86.ActiveCfg = Debug|Any CPU
+ {CC6D62E9-C300-42F3-B452-79966E902B10}.DefaultBuild|x86.Build.0 = Debug|Any CPU
+ {CC6D62E9-C300-42F3-B452-79966E902B10}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {CC6D62E9-C300-42F3-B452-79966E902B10}.Release|Any CPU.Build.0 = Release|Any CPU
+ {CC6D62E9-C300-42F3-B452-79966E902B10}.Release|ARM.ActiveCfg = Release|Any CPU
+ {CC6D62E9-C300-42F3-B452-79966E902B10}.Release|ARM.Build.0 = Release|Any CPU
+ {CC6D62E9-C300-42F3-B452-79966E902B10}.Release|ARM64.ActiveCfg = Release|Any CPU
+ {CC6D62E9-C300-42F3-B452-79966E902B10}.Release|ARM64.Build.0 = Release|Any CPU
+ {CC6D62E9-C300-42F3-B452-79966E902B10}.Release|x64.ActiveCfg = Release|Any CPU
+ {CC6D62E9-C300-42F3-B452-79966E902B10}.Release|x64.Build.0 = Release|Any CPU
+ {CC6D62E9-C300-42F3-B452-79966E902B10}.Release|x86.ActiveCfg = Release|Any CPU
+ {CC6D62E9-C300-42F3-B452-79966E902B10}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -1692,5 +1724,6 @@ Global
{37E4CEAB-B54B-451F-B535-04CF7DA9C459} = {EC62BC9C-F2FE-4333-B7E4-110E38D43958}
{5B954D98-4020-4AC6-939F-C52B5646E8E6} = {5F6BBAA8-EAD0-4B18-97E5-55B4F56DD760}
{FC337A7F-1214-41D8-9992-78092A3B961E} = {B2AF4F3F-2828-47C3-8F3E-A0EA0BD66FF8}
+ {CC6D62E9-C300-42F3-B452-79966E902B10} = {57DF2A95-5DDD-4830-A4AF-B484B59C7C2B}
EndGlobalSection
EndGlobal