diff options
| author | Roy Ben Shabat <Roy.mail.net@gmail.com> | 2020-03-30 00:56:02 +0300 |
|---|---|---|
| committer | Roy Ben Shabat <Roy.mail.net@gmail.com> | 2020-03-30 00:56:02 +0300 |
| commit | 091a4bdeb2feadb4962c6be5deb367ab56d81707 (patch) | |
| tree | 289a672287063108b851b2831d4c699dcddd26d9 /Software/Visual_Studio | |
| parent | 3d6a882cf14f36297d8b379e0fdf65376064edf7 (diff) | |
| download | Tango-091a4bdeb2feadb4962c6be5deb367ab56d81707.tar.gz Tango-091a4bdeb2feadb4962c6be5deb367ab56d81707.zip | |
Implemented PPC Updates & Packages.
Moved PPC/FSE interfaces to PPC.Shared.
Changes Generic Serialization to json.
Diffstat (limited to 'Software/Visual_Studio')
61 files changed, 1178 insertions, 140 deletions
diff --git a/Software/Visual_Studio/FSE/Modules/Tango.FSE.PPCConsole/Tango.FSE.PPCConsole.csproj b/Software/Visual_Studio/FSE/Modules/Tango.FSE.PPCConsole/Tango.FSE.PPCConsole.csproj index be14e05f1..9484930e4 100644 --- a/Software/Visual_Studio/FSE/Modules/Tango.FSE.PPCConsole/Tango.FSE.PPCConsole.csproj +++ b/Software/Visual_Studio/FSE/Modules/Tango.FSE.PPCConsole/Tango.FSE.PPCConsole.csproj @@ -112,6 +112,10 @@ <Compile Include="ViewModels\MainViewVM.cs" /> <Compile Include="ViewModels\MonitoringViewVM.cs" /> <Compile Include="ViewModels\RemoteDesktopViewVM.cs" /> + <Compile Include="ViewModels\UpdatesViewVM.cs" /> + <Compile Include="Views\UpdatesView.xaml.cs"> + <DependentUpon>UpdatesView.xaml</DependentUpon> + </Compile> <Compile Include="Views\ConsoleView.xaml.cs"> <DependentUpon>ConsoleView.xaml</DependentUpon> </Compile> @@ -158,6 +162,10 @@ </None> </ItemGroup> <ItemGroup> + <ProjectReference Include="..\..\..\PPC\Tango.PPC.Shared\Tango.PPC.Shared.csproj"> + <Project>{208C8BD8-72C6-4E3C-ACAA-351091A2ACC7}</Project> + <Name>Tango.PPC.Shared</Name> + </ProjectReference> <ProjectReference Include="..\..\..\SideChains\RealTimeGraphX-master\RealTimeGraphX.WPF\RealTimeGraphX.WPF.csproj"> <Project>{6b9774f7-960d-438e-ad81-c6b9be328d50}</Project> <Name>RealTimeGraphX.WPF</Name> @@ -236,6 +244,10 @@ <SubType>Designer</SubType> <Generator>MSBuild:Compile</Generator> </Page> + <Page Include="Views\UpdatesView.xaml"> + <Generator>MSBuild:Compile</Generator> + <SubType>Designer</SubType> + </Page> <Page Include="Views\ConsoleView.xaml"> <SubType>Designer</SubType> <Generator>MSBuild:Compile</Generator> diff --git a/Software/Visual_Studio/FSE/Modules/Tango.FSE.PPCConsole/ViewModelLocator.cs b/Software/Visual_Studio/FSE/Modules/Tango.FSE.PPCConsole/ViewModelLocator.cs index 93317651c..4faa72e8e 100644 --- a/Software/Visual_Studio/FSE/Modules/Tango.FSE.PPCConsole/ViewModelLocator.cs +++ b/Software/Visual_Studio/FSE/Modules/Tango.FSE.PPCConsole/ViewModelLocator.cs @@ -17,6 +17,7 @@ namespace Tango.FSE.PPCConsole TangoIOC.Default.Register<RemoteDesktopViewVM>(); TangoIOC.Default.Register<MonitoringViewVM>(); TangoIOC.Default.Register<FileSystemViewVM>(); + TangoIOC.Default.Register<UpdatesViewVM>(); } public static MainViewVM MainViewVM @@ -58,5 +59,13 @@ namespace Tango.FSE.PPCConsole return TangoIOC.Default.GetInstance<FileSystemViewVM>(); } } + + public static UpdatesViewVM UpdatesViewVM + { + get + { + return TangoIOC.Default.GetInstance<UpdatesViewVM>(); + } + } } } diff --git a/Software/Visual_Studio/FSE/Modules/Tango.FSE.PPCConsole/ViewModels/MainViewVM.cs b/Software/Visual_Studio/FSE/Modules/Tango.FSE.PPCConsole/ViewModels/MainViewVM.cs index 5c73f70cc..e18a75ef6 100644 --- a/Software/Visual_Studio/FSE/Modules/Tango.FSE.PPCConsole/ViewModels/MainViewVM.cs +++ b/Software/Visual_Studio/FSE/Modules/Tango.FSE.PPCConsole/ViewModels/MainViewVM.cs @@ -19,6 +19,7 @@ namespace Tango.FSE.PPCConsole.ViewModels RemoteDesktopView, MonitoringView, FileSystemView, + UpdatesView, } private NavigationView _selectedView; diff --git a/Software/Visual_Studio/FSE/Modules/Tango.FSE.PPCConsole/ViewModels/MonitoringViewVM.cs b/Software/Visual_Studio/FSE/Modules/Tango.FSE.PPCConsole/ViewModels/MonitoringViewVM.cs index 890adcf54..64c8a124e 100644 --- a/Software/Visual_Studio/FSE/Modules/Tango.FSE.PPCConsole/ViewModels/MonitoringViewVM.cs +++ b/Software/Visual_Studio/FSE/Modules/Tango.FSE.PPCConsole/ViewModels/MonitoringViewVM.cs @@ -13,7 +13,7 @@ using Tango.Core.Helpers; using Tango.FSE.Common; using Tango.FSE.Common.Graphs; using Tango.FSE.Common.Performance; -using Tango.Integration.ExternalBridge.Network.Information; +using Tango.PPC.Shared.Information; using Tango.SystemInfo; using static Tango.SharedUI.Controls.NavigationControl; diff --git a/Software/Visual_Studio/FSE/Modules/Tango.FSE.PPCConsole/ViewModels/UpdatesViewVM.cs b/Software/Visual_Studio/FSE/Modules/Tango.FSE.PPCConsole/ViewModels/UpdatesViewVM.cs new file mode 100644 index 000000000..df29a6eeb --- /dev/null +++ b/Software/Visual_Studio/FSE/Modules/Tango.FSE.PPCConsole/ViewModels/UpdatesViewVM.cs @@ -0,0 +1,138 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Diagnostics; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Data; +using Tango.BL.Entities; +using Tango.Core.Commands; +using Tango.FSE.Common; +using Tango.PPC.Shared.Updates; +using static Tango.SharedUI.Controls.NavigationControl; + +namespace Tango.FSE.PPCConsole.ViewModels +{ + public class UpdatesViewVM : FSEViewModel, INavigationViewModel + { + private bool _loaded; + private ICollectionView _updatesView; + private ICollectionView _packagesView; + + private List<TangoUpdate> _updates; + public List<TangoUpdate> Updates + { + get { return _updates; } + set { _updates = value; RaisePropertyChangedAuto(); } + } + + private List<PackageInstallation> _packages; + public List<PackageInstallation> Packages + { + get { return _packages; } + set { _packages = value; RaisePropertyChangedAuto(); } + } + + private String _filter; + public String Filter + { + get { return _filter; } + set { _filter = value; RaisePropertyChangedAuto(); OnFilterChanged(); } + } + + public RelayCommand RefreshCommand { get; set; } + public RelayCommand<TangoUpdate> UpdateDetailsCommand { get; set; } + + public UpdatesViewVM() + { + UpdateDetailsCommand = new RelayCommand<TangoUpdate>(DisplayUpdateDetails); + RefreshCommand = new RelayCommand(RefreshUpdates); + } + + private void RefreshUpdates() + { + _loaded = false; + LoadMachineUpdates(); + } + + private void DisplayUpdateDetails(TangoUpdate update) + { + Debug.WriteLine($"Update Details: {update.ApplicationVersion}"); + } + + public override void OnNavigatedTo() + { + base.OnNavigatedTo(); + LoadMachineUpdates(); + } + + public override void OnApplicationStarted() + { + base.OnApplicationStarted(); + MachineProvider.MachineConnected += MachineProvider_MachineConnected; + } + + private void MachineProvider_MachineConnected(object sender, Common.Connection.MachineConnectedEventArgs e) + { + _loaded = false; + + if (IsVisible) + { + LoadMachineUpdates(); + } + } + + private void OnFilterChanged() + { + _updatesView?.Refresh(); + _packagesView?.Refresh(); + } + + private async void LoadMachineUpdates() + { + if (!_loaded) + { + try + { + IsFree = false; + await Task.Delay(1000); + var result = await MachineUpdatesProvider.GetUpdates(); + Updates = result.Updates.ToList(); + Packages = result.Packages.ToList(); + + _filter = null; + RaisePropertyChanged(nameof(Filter)); + + _updatesView = CollectionViewSource.GetDefaultView(Updates); + _updatesView.Filter = OnUpdatesFilter; + + _packagesView = CollectionViewSource.GetDefaultView(Packages); + _packagesView.Filter = OnPackagesFilter; + + _loaded = true; + } + catch (Exception ex) + { + LogManager.Log(ex, "Error retrieving machine updates."); + } + finally + { + IsFree = true; + } + } + } + + private bool OnPackagesFilter(object obj) + { + PackageInstallation package = obj as PackageInstallation; + return String.IsNullOrWhiteSpace(Filter) || package.PackageName.ToLower().Contains(Filter.ToLower()); + } + + private bool OnUpdatesFilter(object obj) + { + TangoUpdate update = obj as TangoUpdate; + return String.IsNullOrWhiteSpace(Filter) || update.UpdateStatus.ToDescription().ToLower().Contains(Filter.ToLower()); + } + } +} diff --git a/Software/Visual_Studio/FSE/Modules/Tango.FSE.PPCConsole/Views/MainView.xaml b/Software/Visual_Studio/FSE/Modules/Tango.FSE.PPCConsole/Views/MainView.xaml index e11014515..93e1355be 100644 --- a/Software/Visual_Studio/FSE/Modules/Tango.FSE.PPCConsole/Views/MainView.xaml +++ b/Software/Visual_Studio/FSE/Modules/Tango.FSE.PPCConsole/Views/MainView.xaml @@ -34,7 +34,7 @@ <local:RemoteDesktopView Tag="REMOTE DESKTOP" /> <local:ConsoleView Tag="COMMAND PROMPT" /> <local:FileSystemView Tag="FILE SYSTEM" /> - <ContentControl Tag="UPDATES" /> + <local:UpdatesView Tag="UPDATES" /> </commonControls:FSETabControl> <TextBlock resolution:ResolutionHelper.MinWidth="1500" Margin="10 0 0 0" FontFamily="{StaticResource hand}" FontSize="{StaticResource FSE_ModuleHeaderFontSize}" Foreground="{StaticResource FSE_PrimaryAccentDarkBrush}" VerticalAlignment="Top" HorizontalAlignment="Left" Text="{Binding ElementName=tabs,Path=SelectedElement.Tag,Converter={StaticResource StringToTitleCaseConverter}}"></TextBlock> diff --git a/Software/Visual_Studio/FSE/Modules/Tango.FSE.PPCConsole/Views/UpdatesView.xaml b/Software/Visual_Studio/FSE/Modules/Tango.FSE.PPCConsole/Views/UpdatesView.xaml new file mode 100644 index 000000000..232d30893 --- /dev/null +++ b/Software/Visual_Studio/FSE/Modules/Tango.FSE.PPCConsole/Views/UpdatesView.xaml @@ -0,0 +1,123 @@ +<UserControl x:Class="Tango.FSE.PPCConsole.Views.UpdatesView" + 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:global="clr-namespace:Tango.FSE.PPCConsole" + xmlns:controls="clr-namespace:Tango.FSE.Common.Controls;assembly=Tango.FSE.Common" + xmlns:helpers="clr-namespace:Tango.SharedUI.Helpers;assembly=Tango.SharedUI" + xmlns:vm="clr-namespace:Tango.FSE.PPCConsole.ViewModels" + xmlns:local="clr-namespace:Tango.FSE.PPCConsole.Views" + xmlns:material="http://materialdesigninxaml.net/winfx/xaml/themes" + xmlns:dragablz="http://dragablz.net/winfx/xaml/dragablz" + mc:Ignorable="d" + d:DesignHeight="450" d:DesignWidth="800" d:DataContext="{d:DesignInstance Type=vm:UpdatesViewVM, IsDesignTimeCreatable=False}" DataContext="{x:Static global:ViewModelLocator.UpdatesViewVM}"> + <Grid> + <dragablz:TabablzControl FixedHeaderCount="2" Margin="0 20 0 0"> + <TabItem Header="SOFTWARE UPDATES"> + <Border Margin="0 10 0 0" BorderBrush="{StaticResource FSE_BorderBrush}" BorderThickness="1" CornerRadius="3" Padding="5" Background="{StaticResource FSE_PrimaryBackgroundDarkBrush}"> + <DataGrid Style="{StaticResource FSE_DataGrid}" CellStyle="{StaticResource FSE_DataGrid_Cell}" ItemsSource="{Binding Updates}" helpers:DataGridHelper.DoubleClickCommand="{Binding UpdateDetailsCommand}"> + <DataGrid.Columns> + <DataGridTemplateColumn Header=""> + <DataGridTemplateColumn.CellTemplate> + <DataTemplate> + <material:PackIcon Width="20" Height="20"> + <material:PackIcon.Style> + <Style TargetType="material:PackIcon"> + <Setter Property="Kind" Value="Information"></Setter> + <Style.Triggers> + <DataTrigger Binding="{Binding IsSetup}" Value="True"> + <Setter Property="Kind" Value="Settings"></Setter> + </DataTrigger> + <DataTrigger Binding="{Binding IsUpdate}" Value="True"> + <Setter Property="Kind" Value="CloudDownload"></Setter> + </DataTrigger> + <DataTrigger Binding="{Binding IsDataBase}" Value="True"> + <Setter Property="Kind" Value="Database"></Setter> + </DataTrigger> + <DataTrigger Binding="{Binding IsSynchronization}" Value="True"> + <Setter Property="Kind" Value="Sync"></Setter> + </DataTrigger> + <DataTrigger Binding="{Binding IsOfflineUpdate}" Value="True"> + <Setter Property="Kind" Value="Sd"></Setter> + </DataTrigger> + <DataTrigger Binding="{Binding IsOfflineFirmwareUpgrade}" Value="True"> + <Setter Property="Kind" Value="Chip"></Setter> + </DataTrigger> + <DataTrigger Binding="{Binding IsStarted}" Value="True"> + <Setter Property="Foreground" Value="{StaticResource FSE_OrangeBrush}"></Setter> + </DataTrigger> + <DataTrigger Binding="{Binding IsCompleted}" Value="True"> + <Setter Property="Foreground" Value="{StaticResource FSE_GreenBrush}"></Setter> + </DataTrigger> + <DataTrigger Binding="{Binding IsFailed}" Value="True"> + <Setter Property="Foreground" Value="{StaticResource FSE_RedBrush}"></Setter> + </DataTrigger> + </Style.Triggers> + </Style> + </material:PackIcon.Style> + </material:PackIcon> + </DataTemplate> + </DataGridTemplateColumn.CellTemplate> + </DataGridTemplateColumn> + <DataGridTextColumn Header="STARTED" Binding="{Binding StartDate,Converter={StaticResource DateTimeUTCToShortDateTimeConverter}}" Width="Auto" /> + <DataGridTextColumn Header="APPLICATION" Binding="{Binding ApplicationVersion}" Width="Auto" /> + <DataGridTextColumn Header="FIRMWARE" Binding="{Binding FirmwareVersion}" Width="Auto" /> + <DataGridTextColumn Header="ENDED" Binding="{Binding EndDate,TargetNullValue='Never',FallbackValue='Never',Converter={StaticResource DateTimeUTCToShortDateTimeConverter}}" Width="Auto" /> + <DataGridTextColumn Header="STATUS" Binding="{Binding UpdateStatus,Converter={StaticResource EnumToDescriptionConverter}}" Width="Auto" /> + <DataGridTextColumn Header="FAILED REASON" Binding="{Binding FailedReason,Converter={StaticResource StringToOneLineConverter},ConverterParameter='80'}" Width="*" /> + </DataGrid.Columns> + </DataGrid> + </Border> + </TabItem> + <TabItem Header="INSTALLED PACKAGES"> + <Border Margin="0 10 0 0" BorderBrush="{StaticResource FSE_BorderBrush}" BorderThickness="1" CornerRadius="3" Padding="5" Background="{StaticResource FSE_PrimaryBackgroundDarkBrush}"> + <DataGrid Style="{StaticResource FSE_DataGrid}" CellStyle="{StaticResource FSE_DataGrid_Cell}" ItemsSource="{Binding Packages}" SelectedItem="{Binding SelectedPackage}"> + <DataGrid.Columns> + <DataGridTemplateColumn Header=""> + <DataGridTemplateColumn.CellTemplate> + <DataTemplate> + <material:PackIcon Width="20" Height="20"> + <material:PackIcon.Style> + <Style TargetType="material:PackIcon"> + <Setter Property="Kind" Value="Pause"></Setter> + <Setter Property="Foreground" Value="{StaticResource FSE_PrimaryForegroundBrush}"></Setter> + <Style.Triggers> + <DataTrigger Binding="{Binding State}" Value="Failed"> + <Setter Property="Kind" Value="Alert"></Setter> + <Setter Property="Foreground" Value="{StaticResource FSE_ErrorBrush}"></Setter> + </DataTrigger> + <DataTrigger Binding="{Binding State}" Value="Installed"> + <Setter Property="Kind" Value="Check"></Setter> + <Setter Property="Foreground" Value="{StaticResource FSE_SuccessBrush}"></Setter> + </DataTrigger> + </Style.Triggers> + </Style> + </material:PackIcon.Style> + </material:PackIcon> + </DataTemplate> + </DataGridTemplateColumn.CellTemplate> + </DataGridTemplateColumn> + <DataGridTextColumn Header="Type" Width="60" Binding="{Binding Type}" /> + <DataGridTextColumn Header="Date" Width="120" Binding="{Binding InstallationDate,Converter={StaticResource DateTimeUTCToShortDateTimeConverter}}" /> + <DataGridTextColumn Header="Name" Width="*" Binding="{Binding PackageName}" /> + </DataGrid.Columns> + </DataGrid> + </Border> + </TabItem> + </dragablz:TabablzControl> + + <StackPanel Orientation="Horizontal" HorizontalAlignment="Right" VerticalAlignment="Top" Margin="0 20 20 0"> + <material:PackIcon Kind="Search" VerticalAlignment="Center" Height="Auto" Width="25" /> + <TextBox Margin="5 0 0 0" Padding="7" material:HintAssist.Hint="Filter..." VerticalContentAlignment="Center" IsEnabled="{Binding IsFree}" Style="{StaticResource FSE_Rounded_Corners_TextBox}" Width="200" Text="{Binding Filter,UpdateSourceTrigger=PropertyChanged,Delay=500}"></TextBox> + <controls:IconButton Icon="Refresh" Margin="40 0 0 0" Command="{Binding RefreshCommand}" IsEnabled="{Binding IsFree}" ToolTip="Refresh updates"></controls:IconButton> + </StackPanel> + + <Grid Margin="4 74 4 4" Background="{StaticResource FSE_SemiTransparentBrush}" Visibility="{Binding IsBusy,Converter={StaticResource BooleanToVisibilityConverter},FallbackValue=Collapsed}"> + <StackPanel HorizontalAlignment="Center" VerticalAlignment="Center"> + <ProgressBar Style="{StaticResource FSE_CircularProgressBar}" Width="100" Height="100" IsIndeterminate="True"></ProgressBar> + <TextBlock HorizontalAlignment="Center" Margin="0 20 0 0">Loading machine updates...</TextBlock> + </StackPanel> + </Grid> + </Grid> +</UserControl> diff --git a/Software/Visual_Studio/FSE/Modules/Tango.FSE.PPCConsole/Views/UpdatesView.xaml.cs b/Software/Visual_Studio/FSE/Modules/Tango.FSE.PPCConsole/Views/UpdatesView.xaml.cs new file mode 100644 index 000000000..959223f9b --- /dev/null +++ b/Software/Visual_Studio/FSE/Modules/Tango.FSE.PPCConsole/Views/UpdatesView.xaml.cs @@ -0,0 +1,28 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; + +namespace Tango.FSE.PPCConsole.Views +{ + /// <summary> + /// Interaction logic for ConsoleView.xaml + /// </summary> + public partial class UpdatesView : UserControl + { + public UpdatesView() + { + InitializeComponent(); + } + } +} diff --git a/Software/Visual_Studio/FSE/Tango.FSE.Common/FSEViewModel.cs b/Software/Visual_Studio/FSE/Tango.FSE.Common/FSEViewModel.cs index ce61f30c6..bae284bfe 100644 --- a/Software/Visual_Studio/FSE/Tango.FSE.Common/FSEViewModel.cs +++ b/Software/Visual_Studio/FSE/Tango.FSE.Common/FSEViewModel.cs @@ -23,6 +23,7 @@ using Tango.FSE.Common.Logging; using Tango.FSE.Common.Navigation; using Tango.FSE.Common.Notifications; using Tango.FSE.Common.Performance; +using Tango.FSE.Common.MachineUpdates; using Tango.FSE.Common.RemoteDesktop; using Tango.FSE.Common.Resolution; using Tango.FSE.Common.Storage; @@ -126,6 +127,12 @@ namespace Tango.FSE.Common public IStorageProvider StorageProvider { get; set; } /// <summary> + /// Gets or sets the machine updates provider. + /// </summary> + [TangoInject] + public IMachineUpdatesProvider MachineUpdatesProvider { get; set; } + + /// <summary> /// Gets or sets the FSE service. /// </summary> [TangoInject] diff --git a/Software/Visual_Studio/FSE/Tango.FSE.Common/MachineUpdates/IMachineUpdatesProvider.cs b/Software/Visual_Studio/FSE/Tango.FSE.Common/MachineUpdates/IMachineUpdatesProvider.cs new file mode 100644 index 000000000..eff9e655b --- /dev/null +++ b/Software/Visual_Studio/FSE/Tango.FSE.Common/MachineUpdates/IMachineUpdatesProvider.cs @@ -0,0 +1,13 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Tango.FSE.Common.MachineUpdates +{ + public interface IMachineUpdatesProvider + { + Task<MachineUpdatesResult> GetUpdates(); + } +} diff --git a/Software/Visual_Studio/FSE/Tango.FSE.Common/MachineUpdates/MachineUpdatesResult.cs b/Software/Visual_Studio/FSE/Tango.FSE.Common/MachineUpdates/MachineUpdatesResult.cs new file mode 100644 index 000000000..870b4b618 --- /dev/null +++ b/Software/Visual_Studio/FSE/Tango.FSE.Common/MachineUpdates/MachineUpdatesResult.cs @@ -0,0 +1,22 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Tango.BL.Entities; +using Tango.PPC.Shared.Updates; + +namespace Tango.FSE.Common.MachineUpdates +{ + public class MachineUpdatesResult + { + public List<TangoUpdate> Updates { get; set; } + public List<PackageInstallation> Packages { get; set; } + + public MachineUpdatesResult() + { + Updates = new List<TangoUpdate>(); + Packages = new List<PackageInstallation>(); + } + } +} diff --git a/Software/Visual_Studio/FSE/Tango.FSE.Common/Performance/PerformancePackageEventArgs.cs b/Software/Visual_Studio/FSE/Tango.FSE.Common/Performance/PerformancePackageEventArgs.cs index 669890a29..c177ed5a6 100644 --- a/Software/Visual_Studio/FSE/Tango.FSE.Common/Performance/PerformancePackageEventArgs.cs +++ b/Software/Visual_Studio/FSE/Tango.FSE.Common/Performance/PerformancePackageEventArgs.cs @@ -3,7 +3,7 @@ using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; -using Tango.Integration.ExternalBridge.Network.Performance; +using Tango.PPC.Shared.Performance; namespace Tango.FSE.Common.Performance { diff --git a/Software/Visual_Studio/FSE/Tango.FSE.Common/Resources/Styles.xaml b/Software/Visual_Studio/FSE/Tango.FSE.Common/Resources/Styles.xaml index 5ff141bd7..8b549f98f 100644 --- a/Software/Visual_Studio/FSE/Tango.FSE.Common/Resources/Styles.xaml +++ b/Software/Visual_Studio/FSE/Tango.FSE.Common/Resources/Styles.xaml @@ -467,19 +467,24 @@ <Setter Property="BorderBrush" Value="{StaticResource FSE_BorderBrush}"></Setter> <Setter Property="Foreground" Value="{StaticResource FSE_PrimaryForegroundBrush}"></Setter> <Setter Property="VerticalContentAlignment" Value="Center"></Setter> + <Setter Property="HorizontalContentAlignment" Value="Stretch"></Setter> + <Setter Property="KeyboardNavigation.TabNavigation" Value="None"/> + <Setter Property="FocusVisualStyle" Value="{x:Null}"/> + <Setter Property="ScrollViewer.PanningMode" Value="VerticalFirst"/> + <Setter Property="Stylus.IsFlicksEnabled" Value="False"/> <Setter Property="Padding" Value="3"></Setter> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="{x:Type TextBoxBase}"> - <Border Background="{TemplateBinding Background}" x:Name="Bd" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" CornerRadius="5"> - <material:Ripple Feedback="{StaticResource FSE_PrimaryForegroundBrush}"> - <ScrollViewer x:Name="PART_ContentHost"/> + <Border x:Name="border" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" SnapsToDevicePixels="True" CornerRadius="5"> + <material:Ripple HorizontalContentAlignment="Stretch" VerticalContentAlignment="Stretch" Feedback="{StaticResource FSE_PrimaryForegroundBrush}"> + <ScrollViewer x:Name="PART_ContentHost" Focusable="false" HorizontalScrollBarVisibility="Hidden" VerticalScrollBarVisibility="Hidden"/> </material:Ripple> </Border> <ControlTemplate.Triggers> <Trigger Property="IsEnabled" Value="False"> - <Setter Property="Background" Value="{DynamicResource {x:Static SystemColors.ControlBrushKey}}" TargetName="Bd"/> - <Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.GrayTextBrushKey}}"/> + <Setter Property="Background" Value="{StaticResource FSE_PrimaryBackgroundLightBrush}" TargetName="border"/> + <Setter Property="Foreground" Value="{StaticResource FSE_GrayBrush}"/> </Trigger> <Trigger Property="Width" Value="Auto"> <Setter Property="MinWidth" Value="100"/> @@ -493,4 +498,28 @@ </Setter> </Style> + <Style x:Key="FSE_DataGrid_Cell" TargetType="DataGridCell" BasedOn="{StaticResource {x:Type DataGridCell}}"> + <Setter Property="BorderThickness" Value="0"/> + <Setter Property="FocusVisualStyle" Value="{x:Null}"/> + <Setter Property="VerticalContentAlignment" Value="Center"></Setter> + </Style> + + <Style x:Key="FSE_DataGrid" TargetType="DataGrid" BasedOn="{StaticResource {x:Type DataGrid}}"> + <Setter Property="Background" Value="Transparent"></Setter> + <Setter Property="AutoGenerateColumns" Value="False"></Setter> + <Setter Property="CanUserAddRows" Value="False"></Setter> + <Setter Property="CanUserDeleteRows" Value="False"></Setter> + <Setter Property="CanUserReorderColumns" Value="False"></Setter> + <Setter Property="CanUserResizeColumns" Value="False"></Setter> + <Setter Property="CanUserResizeRows" Value="False"></Setter> + <Setter Property="CanUserSortColumns" Value="False"></Setter> + <Setter Property="IsReadOnly" Value="True"></Setter> + <Setter Property="SelectionMode" Value="Single"></Setter> + <Setter Property="SelectionUnit" Value="FullRow"></Setter> + <Setter Property="RowHeight" Value="35"></Setter> + <Setter Property="HorizontalGridLinesBrush" Value="{StaticResource FSE_PrimaryBackgroundBrush}"></Setter> + <Setter Property="HorizontalScrollBarVisibility" Value="Disabled"></Setter> + <Setter Property="CellStyle" Value="{StaticResource LogsGridCellStyle}" /> + </Style> + </ResourceDictionary>
\ No newline at end of file diff --git a/Software/Visual_Studio/FSE/Tango.FSE.Common/SystemInfo/ISystemInfoProvider.cs b/Software/Visual_Studio/FSE/Tango.FSE.Common/SystemInfo/ISystemInfoProvider.cs index d21224c4d..b842d034f 100644 --- a/Software/Visual_Studio/FSE/Tango.FSE.Common/SystemInfo/ISystemInfoProvider.cs +++ b/Software/Visual_Studio/FSE/Tango.FSE.Common/SystemInfo/ISystemInfoProvider.cs @@ -3,7 +3,7 @@ using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; -using Tango.Integration.ExternalBridge.Network.Information; +using Tango.PPC.Shared.Information; namespace Tango.FSE.Common.SystemInfo { diff --git a/Software/Visual_Studio/FSE/Tango.FSE.Common/Tango.FSE.Common.csproj b/Software/Visual_Studio/FSE/Tango.FSE.Common/Tango.FSE.Common.csproj index ce56e7f69..f2bbcb71f 100644 --- a/Software/Visual_Studio/FSE/Tango.FSE.Common/Tango.FSE.Common.csproj +++ b/Software/Visual_Studio/FSE/Tango.FSE.Common/Tango.FSE.Common.csproj @@ -135,6 +135,8 @@ <Compile Include="FSEModuleBase.cs" /> <Compile Include="Performance\IPerformanceProvider.cs" /> <Compile Include="Performance\PerformancePackageEventArgs.cs" /> + <Compile Include="MachineUpdates\IMachineUpdatesProvider.cs" /> + <Compile Include="MachineUpdates\MachineUpdatesResult.cs" /> <Compile Include="RemoteDesktop\DesktopFrameReceivedEventArgs.cs" /> <Compile Include="RemoteDesktop\IRemoteDesktopProvider.cs" /> <Compile Include="Resolution\IResolutionService.cs" /> @@ -272,6 +274,10 @@ </None> </ItemGroup> <ItemGroup> + <ProjectReference Include="..\..\PPC\Tango.PPC.Shared\Tango.PPC.Shared.csproj"> + <Project>{208C8BD8-72C6-4E3C-ACAA-351091A2ACC7}</Project> + <Name>Tango.PPC.Shared</Name> + </ProjectReference> <ProjectReference Include="..\..\SideChains\RealTimeGraphX-master\RealTimeGraphX.WPF\RealTimeGraphX.WPF.csproj"> <Project>{6b9774f7-960d-438e-ad81-c6b9be328d50}</Project> <Name>RealTimeGraphX.WPF</Name> diff --git a/Software/Visual_Studio/FSE/Tango.FSE.UI/MachineUpdates/DefaultMachineUpdatesProvider.cs b/Software/Visual_Studio/FSE/Tango.FSE.UI/MachineUpdates/DefaultMachineUpdatesProvider.cs new file mode 100644 index 000000000..4f2ee9b02 --- /dev/null +++ b/Software/Visual_Studio/FSE/Tango.FSE.UI/MachineUpdates/DefaultMachineUpdatesProvider.cs @@ -0,0 +1,51 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Tango.Core.DI; +using Tango.FSE.Common.Connection; +using Tango.FSE.Common.MachineUpdates; +using Tango.PPC.Shared.Updates; +using Tango.Transport; + +namespace Tango.FSE.UI.MachineUpdates +{ + public class DefaultMachineUpdatesProvider : IMachineUpdatesProvider + { + private MachineUpdatesResult _lastResult; + private IMachineProvider MachineProvider { get; set; } + + public DefaultMachineUpdatesProvider(IMachineProvider machineProvider) + { + MachineProvider = machineProvider; + MachineProvider.MachineDisconnected += MachineProvider_MachineDisconnected; + } + + private void MachineProvider_MachineDisconnected(object sender, MachineDisconnectedEventArgs e) + { + _lastResult = null; + } + + public async Task<MachineUpdatesResult> GetUpdates() + { + if (_lastResult != null) + { + return _lastResult; + } + + var response = await MachineProvider.MachineOperator.SendGenericRequest<GetUpdatesAndPackagesRequest, GetUpdatesAndPackagesResponse>(new GetUpdatesAndPackagesRequest() { }, new TransportRequestConfig() + { + Timeout = TimeSpan.FromSeconds(30) + }); + + MachineUpdatesResult result = new MachineUpdatesResult(); + result.Updates = response.Updates.Select(x => x.ToObservable()).ToList(); + result.Packages = response.Packages; + + _lastResult = result; + + return result; + } + } +} diff --git a/Software/Visual_Studio/FSE/Tango.FSE.UI/Performance/DefaultPerformanceProvider.cs b/Software/Visual_Studio/FSE/Tango.FSE.UI/Performance/DefaultPerformanceProvider.cs index 69184290a..8debcd73b 100644 --- a/Software/Visual_Studio/FSE/Tango.FSE.UI/Performance/DefaultPerformanceProvider.cs +++ b/Software/Visual_Studio/FSE/Tango.FSE.UI/Performance/DefaultPerformanceProvider.cs @@ -7,7 +7,7 @@ using Tango.Core; using Tango.Core.DI; using Tango.FSE.Common.Connection; using Tango.FSE.Common.Performance; -using Tango.Integration.ExternalBridge.Network.Performance; +using Tango.PPC.Shared.Performance; namespace Tango.FSE.UI.Performance { diff --git a/Software/Visual_Studio/FSE/Tango.FSE.UI/SystemInfo/DefaultSystemInfoProvider.cs b/Software/Visual_Studio/FSE/Tango.FSE.UI/SystemInfo/DefaultSystemInfoProvider.cs index e691939f0..5fcc1809d 100644 --- a/Software/Visual_Studio/FSE/Tango.FSE.UI/SystemInfo/DefaultSystemInfoProvider.cs +++ b/Software/Visual_Studio/FSE/Tango.FSE.UI/SystemInfo/DefaultSystemInfoProvider.cs @@ -7,7 +7,7 @@ using Tango.Core; using Tango.Core.DI; using Tango.FSE.Common.Connection; using Tango.FSE.Common.SystemInfo; -using Tango.Integration.ExternalBridge.Network.Information; +using Tango.PPC.Shared.Information; namespace Tango.FSE.UI.SystemInfo { diff --git a/Software/Visual_Studio/FSE/Tango.FSE.UI/Tango.FSE.UI.csproj b/Software/Visual_Studio/FSE/Tango.FSE.UI/Tango.FSE.UI.csproj index b4854db5a..eb6810d48 100644 --- a/Software/Visual_Studio/FSE/Tango.FSE.UI/Tango.FSE.UI.csproj +++ b/Software/Visual_Studio/FSE/Tango.FSE.UI/Tango.FSE.UI.csproj @@ -170,6 +170,7 @@ </Compile> <Compile Include="Panes\MachineConnectionPaneVM.cs" /> <Compile Include="Performance\DefaultPerformanceProvider.cs" /> + <Compile Include="MachineUpdates\DefaultMachineUpdatesProvider.cs" /> <Compile Include="RemoteDesktop\DefaultRemoteDesktopProvider.cs" /> <Compile Include="Resolution\DefaultResolutionService.cs" /> <Compile Include="Storage\DefaultStorageProvider.cs" /> @@ -331,6 +332,10 @@ </None> </ItemGroup> <ItemGroup> + <ProjectReference Include="..\..\PPC\Tango.PPC.Shared\Tango.PPC.Shared.csproj"> + <Project>{208C8BD8-72C6-4E3C-ACAA-351091A2ACC7}</Project> + <Name>Tango.PPC.Shared</Name> + </ProjectReference> <ProjectReference Include="..\..\SideChains\Tango.AutoComplete\Tango.AutoComplete.csproj"> <Project>{bb2abb74-ba58-4812-83aa-ec8171f42df4}</Project> <Name>Tango.AutoComplete</Name> diff --git a/Software/Visual_Studio/FSE/Tango.FSE.UI/ViewModelLocator.cs b/Software/Visual_Studio/FSE/Tango.FSE.UI/ViewModelLocator.cs index 1ffb0cbb7..d94e4ff9c 100644 --- a/Software/Visual_Studio/FSE/Tango.FSE.UI/ViewModelLocator.cs +++ b/Software/Visual_Studio/FSE/Tango.FSE.UI/ViewModelLocator.cs @@ -19,6 +19,7 @@ using Tango.FSE.Common.Modules; using Tango.FSE.Common.Navigation; using Tango.FSE.Common.Notifications; using Tango.FSE.Common.Performance; +using Tango.FSE.Common.MachineUpdates; using Tango.FSE.Common.RemoteDesktop; using Tango.FSE.Common.Resolution; using Tango.FSE.Common.Storage; @@ -36,6 +37,7 @@ using Tango.FSE.UI.Modules; using Tango.FSE.UI.Navigation; using Tango.FSE.UI.Notifications; using Tango.FSE.UI.Performance; +using Tango.FSE.UI.MachineUpdates; using Tango.FSE.UI.RemoteDesktop; using Tango.FSE.UI.Resolution; using Tango.FSE.UI.Storage; @@ -67,6 +69,7 @@ namespace Tango.FSE.UI TangoIOC.Default.Unregister<IFileSystemProvider>(); TangoIOC.Default.Unregister<IStorageProvider>(); TangoIOC.Default.Unregister<FSEServicesContainer>(); + TangoIOC.Default.Unregister<IMachineUpdatesProvider>(); //TangoIOC.Default.Unregister<ExternalBridgeScanner>(); //TangoIOC.Default.Unregister<IDiagnosticsFrameProvider>(); //TangoIOC.Default.Unregister<IEventLogger>(); @@ -93,6 +96,7 @@ namespace Tango.FSE.UI TangoIOC.Default.Register<ILoggingProvider, DefaultLoggingProvider>(); TangoIOC.Default.Register<IFileSystemProvider, DefaultFileSystemProvider>(); TangoIOC.Default.Register<IStorageProvider, DefaultStorageProvider>(); + TangoIOC.Default.Register<IMachineUpdatesProvider, DefaultMachineUpdatesProvider>(); TangoIOC.Default.Register<MainWindowVM>(); TangoIOC.Default.Register<MainViewVM>(); diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.Technician/Tango.PPC.Technician.csproj b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Technician/Tango.PPC.Technician.csproj index bdbc5992c..e8eec7b2f 100644 --- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.Technician/Tango.PPC.Technician.csproj +++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Technician/Tango.PPC.Technician.csproj @@ -181,6 +181,10 @@ <Project>{0BE74EEE-22CB-4DBA-B896-793B9E1A3AC0}</Project> <Name>Tango.PPC.Common</Name> </ProjectReference> + <ProjectReference Include="..\..\Tango.PPC.Shared\Tango.PPC.Shared.csproj"> + <Project>{208C8BD8-72C6-4E3C-ACAA-351091A2ACC7}</Project> + <Name>Tango.PPC.Shared</Name> + </ProjectReference> <ProjectReference Include="..\Tango.PPC.Browser\Tango.PPC.Browser.csproj"> <Project>{f02eaa84-ad59-465b-99a2-4422c13bfb72}</Project> <Name>Tango.PPC.Browser</Name> diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.Technician/ViewModels/PackagesViewVM.cs b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Technician/ViewModels/PackagesViewVM.cs index 3f3e44c4d..1d7e1780a 100644 --- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.Technician/ViewModels/PackagesViewVM.cs +++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Technician/ViewModels/PackagesViewVM.cs @@ -6,6 +6,7 @@ using System.Threading.Tasks; using Tango.Core.DI; using Tango.PPC.Common; using Tango.PPC.Common.UpdatePackages; +using Tango.PPC.Shared.Updates; namespace Tango.PPC.Technician.ViewModels { diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/MachineUpdate/MachineUpdateManager.cs b/Software/Visual_Studio/PPC/Tango.PPC.Common/MachineUpdate/MachineUpdateManager.cs index 1d010ecfb..733574f72 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.Common/MachineUpdate/MachineUpdateManager.cs +++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/MachineUpdate/MachineUpdateManager.cs @@ -31,10 +31,14 @@ using Tango.SharedUI.Helpers; using Tango.SQLExaminer; using Tango.Transport.Web; using System.Data.Entity; +using Tango.PPC.Common.ExternalBridge; +using Tango.Integration.ExternalBridge; +using Tango.BL.DTO; +using Tango.PPC.Shared.Updates; namespace Tango.PPC.Common.MachineUpdate { - public class MachineUpdateManager : ExtendedObject, IMachineUpdateManager + public class MachineUpdateManager : ExtendedObject, IMachineUpdateManager, IExternalBridgeRequestHandler { private IPPCApplicationManager _app_manager; private IMachineProvider _machineProvider; @@ -95,7 +99,7 @@ namespace Tango.PPC.Common.MachineUpdate /// Initializes a new instance of the <see cref="MachineUpdateManager"/> class. /// </summary> /// <param name="applicationManager">The application manager.</param> - public MachineUpdateManager(PPCWebClient ppcWebClient, IPPCApplicationManager applicationManager, IMachineProvider machineProvider, IPackageRunner packageRunner) + public MachineUpdateManager(PPCWebClient ppcWebClient, IPPCApplicationManager applicationManager, IMachineProvider machineProvider, IPackageRunner packageRunner, IPPCExternalBridgeService externalBridge) { _client = ppcWebClient; _machineProvider = machineProvider; @@ -111,6 +115,8 @@ namespace Tango.PPC.Common.MachineUpdate _checkForUpdateTimer = new System.Timers.Timer(_settings.AutoUpdateCheckInterval.TotalMilliseconds); _checkForUpdateTimer.Elapsed += _checkForUpdateTimer_Elapsed; _checkForUpdateTimer.Start(); + + externalBridge.RegisterRequestHandler(this); } #endregion @@ -1676,5 +1682,38 @@ namespace Tango.PPC.Common.MachineUpdate } #endregion + + #region External Bridge + + public void OnReceiverDisconnected(ExternalBridgeReceiver receiver) + { + + } + + [ExternalBridgeRequestHandlerMethod(typeof(GetUpdatesAndPackagesRequest))] + public async void OnGetUpdatesAndPackagesRequest(GetUpdatesAndPackagesRequest request, String token, ExternalBridgeReceiver receiver) + { + try + { + using (ObservablesContext db = ObservablesContext.CreateDefault()) + { + var updates = await db.TangoUpdates.OrderByDescending(x => x.StartDate).ToListAsync(); + var updatesDTO = updates.Select(x => TangoUpdateDTO.FromObservable(x)).ToList(); + var packages = (await _packageRunner.GetPackagesFile()).PackageInstallations; + + var response = new GetUpdatesAndPackagesResponse(); + response.Updates.AddRange(updatesDTO); + response.Packages.AddRange(packages); + + await receiver.SendGenericResponse(response, token); + } + } + catch (Exception ex) + { + await receiver.SendErrorResponse(ex, token); + } + } + + #endregion } } diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/Performance/DefaultPerformanceService.cs b/Software/Visual_Studio/PPC/Tango.PPC.Common/Performance/DefaultPerformanceService.cs index 2279d204c..d327f6b00 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.Common/Performance/DefaultPerformanceService.cs +++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/Performance/DefaultPerformanceService.cs @@ -10,8 +10,8 @@ using System.Threading.Tasks; using Tango.Core; using Tango.Core.DI; using Tango.Integration.ExternalBridge; -using Tango.Integration.ExternalBridge.Network.Performance; using Tango.PPC.Common.ExternalBridge; +using Tango.PPC.Shared.Performance; namespace Tango.PPC.Common.Performance { diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/SystemInfo/DefaultSystemInfoService.cs b/Software/Visual_Studio/PPC/Tango.PPC.Common/SystemInfo/DefaultSystemInfoService.cs index a5e8516a4..ef8e31bce 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.Common/SystemInfo/DefaultSystemInfoService.cs +++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/SystemInfo/DefaultSystemInfoService.cs @@ -8,10 +8,10 @@ using System.Threading.Tasks; using Tango.Core; using Tango.Core.DI; using Tango.Integration.ExternalBridge; -using Tango.Integration.ExternalBridge.Network.Information; using Tango.PPC.Common.Application; using Tango.PPC.Common.Connectivity; using Tango.PPC.Common.ExternalBridge; +using Tango.PPC.Shared.Information; using Tango.Settings; using Tango.SystemInfo; diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/Tango.PPC.Common.csproj b/Software/Visual_Studio/PPC/Tango.PPC.Common/Tango.PPC.Common.csproj index ad197f47b..9575b7137 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.Common/Tango.PPC.Common.csproj +++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/Tango.PPC.Common.csproj @@ -181,13 +181,10 @@ <Compile Include="UpdatePackages\IPackageRunner.cs" /> <Compile Include="UpdatePackages\IPPCPackage.cs" /> <Compile Include="UpdatePackages\PackageContext.cs" /> - <Compile Include="UpdatePackages\PackageInstallation.cs" /> - <Compile Include="UpdatePackages\PackageInstallationState.cs" /> <Compile Include="UpdatePackages\PackageProgressEventArgs.cs" /> <Compile Include="UpdatePackages\PackageRunnerResult.cs" /> <Compile Include="UpdatePackages\PackageStateChangedEventArgs.cs" /> <Compile Include="UpdatePackages\PackagesFile.cs" /> - <Compile Include="UpdatePackages\PackageType.cs" /> <Compile Include="UpdatePackages\PPCPackageAttribute.cs" /> <Compile Include="Publish\PPCPublisher.cs" /> <Compile Include="Publish\PublishInfo.cs" /> @@ -429,6 +426,10 @@ <Project>{6aa425c9-ea6a-4b01-aaed-5ff122e8b663}</Project> <Name>Tango.WiFi</Name> </ProjectReference> + <ProjectReference Include="..\Tango.PPC.Shared\Tango.PPC.Shared.csproj"> + <Project>{208c8bd8-72c6-4e3c-acaa-351091a2acc7}</Project> + <Name>Tango.PPC.Shared</Name> + </ProjectReference> </ItemGroup> <ItemGroup> <BootstrapperPackage Include=".NETFramework,Version=v4.6"> @@ -455,7 +456,7 @@ </Target> <ProjectExtensions> <VisualStudio> - <UserProperties BuildVersion_StartDate="2000/1/1" BuildVersion_UseGlobalSettings="False" BuildVersion_BuildVersioningStyle="None.None.Increment.TimeStamp" BuildVersion_UpdateAssemblyVersion="True" BuildVersion_AssemblyInfoFilename="Properties\AssemblyInfo.cs" /> + <UserProperties BuildVersion_AssemblyInfoFilename="Properties\AssemblyInfo.cs" BuildVersion_UpdateAssemblyVersion="True" BuildVersion_BuildVersioningStyle="None.None.Increment.TimeStamp" BuildVersion_UseGlobalSettings="False" BuildVersion_StartDate="2000/1/1" /> </VisualStudio> </ProjectExtensions> </Project>
\ No newline at end of file diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/UpdatePackages/DefaultPackageRunner.cs b/Software/Visual_Studio/PPC/Tango.PPC.Common/UpdatePackages/DefaultPackageRunner.cs index c94aedeb0..68b31da4e 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.Common/UpdatePackages/DefaultPackageRunner.cs +++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/UpdatePackages/DefaultPackageRunner.cs @@ -15,6 +15,7 @@ using Tango.Core.Helpers; using Tango.PPC.Common.Application; using Tango.PPC.Common.Connection; using Tango.PPC.Common.Notifications; +using Tango.PPC.Shared.Updates; namespace Tango.PPC.Common.UpdatePackages { diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/UpdatePackages/IPackageRunner.cs b/Software/Visual_Studio/PPC/Tango.PPC.Common/UpdatePackages/IPackageRunner.cs index b864100aa..cdffd1ddc 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.Common/UpdatePackages/IPackageRunner.cs +++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/UpdatePackages/IPackageRunner.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; +using Tango.PPC.Shared.Updates; namespace Tango.PPC.Common.UpdatePackages { diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/UpdatePackages/PPCPackageAttribute.cs b/Software/Visual_Studio/PPC/Tango.PPC.Common/UpdatePackages/PPCPackageAttribute.cs index 3186b57b1..6067b0c18 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.Common/UpdatePackages/PPCPackageAttribute.cs +++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/UpdatePackages/PPCPackageAttribute.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; +using Tango.PPC.Shared.Updates; namespace Tango.PPC.Common.UpdatePackages { diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/UpdatePackages/PackageStateChangedEventArgs.cs b/Software/Visual_Studio/PPC/Tango.PPC.Common/UpdatePackages/PackageStateChangedEventArgs.cs index 9c8cbe2c0..cadba4c72 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.Common/UpdatePackages/PackageStateChangedEventArgs.cs +++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/UpdatePackages/PackageStateChangedEventArgs.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; +using Tango.PPC.Shared.Updates; namespace Tango.PPC.Common.UpdatePackages { diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/UpdatePackages/PackagesFile.cs b/Software/Visual_Studio/PPC/Tango.PPC.Common/UpdatePackages/PackagesFile.cs index 2fbd30d9f..7af30d2ec 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.Common/UpdatePackages/PackagesFile.cs +++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/UpdatePackages/PackagesFile.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; +using Tango.PPC.Shared.Updates; namespace Tango.PPC.Common.UpdatePackages { diff --git a/Software/Visual_Studio/Tango.Integration/ExternalBridge/Network/Information/GetMachineInformationRequest.cs b/Software/Visual_Studio/PPC/Tango.PPC.Shared/Information/GetMachineInformationRequest.cs index 38c06b024..1464c15ac 100644 --- a/Software/Visual_Studio/Tango.Integration/ExternalBridge/Network/Information/GetMachineInformationRequest.cs +++ b/Software/Visual_Studio/PPC/Tango.PPC.Shared/Information/GetMachineInformationRequest.cs @@ -4,7 +4,7 @@ using System.Linq; using System.Text; using System.Threading.Tasks; -namespace Tango.Integration.ExternalBridge.Network.Information +namespace Tango.PPC.Shared.Information { public class GetMachineInformationRequest { diff --git a/Software/Visual_Studio/Tango.Integration/ExternalBridge/Network/Information/GetMachineInformationResponse.cs b/Software/Visual_Studio/PPC/Tango.PPC.Shared/Information/GetMachineInformationResponse.cs index 5ae1aa440..e88bfce05 100644 --- a/Software/Visual_Studio/Tango.Integration/ExternalBridge/Network/Information/GetMachineInformationResponse.cs +++ b/Software/Visual_Studio/PPC/Tango.PPC.Shared/Information/GetMachineInformationResponse.cs @@ -4,7 +4,7 @@ using System.Linq; using System.Text; using System.Threading.Tasks; -namespace Tango.Integration.ExternalBridge.Network.Information +namespace Tango.PPC.Shared.Information { public class GetMachineInformationResponse { diff --git a/Software/Visual_Studio/Tango.Integration/ExternalBridge/Network/Information/InformationPackage.cs b/Software/Visual_Studio/PPC/Tango.PPC.Shared/Information/InformationPackage.cs index afa23492e..e48413db6 100644 --- a/Software/Visual_Studio/Tango.Integration/ExternalBridge/Network/Information/InformationPackage.cs +++ b/Software/Visual_Studio/PPC/Tango.PPC.Shared/Information/InformationPackage.cs @@ -5,7 +5,7 @@ using System.Text; using System.Threading.Tasks; using Tango.SystemInfo; -namespace Tango.Integration.ExternalBridge.Network.Information +namespace Tango.PPC.Shared.Information { public class InformationPackage { diff --git a/Software/Visual_Studio/Tango.Integration/ExternalBridge/Network/Performance/PerformancePackage.cs b/Software/Visual_Studio/PPC/Tango.PPC.Shared/Performance/PerformancePackage.cs index 56921e0c5..855437bcc 100644 --- a/Software/Visual_Studio/Tango.Integration/ExternalBridge/Network/Performance/PerformancePackage.cs +++ b/Software/Visual_Studio/PPC/Tango.PPC.Shared/Performance/PerformancePackage.cs @@ -4,7 +4,7 @@ using System.Linq; using System.Text; using System.Threading.Tasks; -namespace Tango.Integration.ExternalBridge.Network.Performance +namespace Tango.PPC.Shared.Performance { public class PerformancePackage { diff --git a/Software/Visual_Studio/Tango.Integration/ExternalBridge/Network/Performance/StartPerformanceUpdatesRequest.cs b/Software/Visual_Studio/PPC/Tango.PPC.Shared/Performance/StartPerformanceUpdatesRequest.cs index 2c036e937..69fbaf631 100644 --- a/Software/Visual_Studio/Tango.Integration/ExternalBridge/Network/Performance/StartPerformanceUpdatesRequest.cs +++ b/Software/Visual_Studio/PPC/Tango.PPC.Shared/Performance/StartPerformanceUpdatesRequest.cs @@ -4,7 +4,7 @@ using System.Linq; using System.Text; using System.Threading.Tasks; -namespace Tango.Integration.ExternalBridge.Network.Performance +namespace Tango.PPC.Shared.Performance { public class StartPerformanceUpdatesRequest { diff --git a/Software/Visual_Studio/Tango.Integration/ExternalBridge/Network/Performance/StartPerformanceUpdatesResponse.cs b/Software/Visual_Studio/PPC/Tango.PPC.Shared/Performance/StartPerformanceUpdatesResponse.cs index 8eb22bdef..196225572 100644 --- a/Software/Visual_Studio/Tango.Integration/ExternalBridge/Network/Performance/StartPerformanceUpdatesResponse.cs +++ b/Software/Visual_Studio/PPC/Tango.PPC.Shared/Performance/StartPerformanceUpdatesResponse.cs @@ -4,7 +4,7 @@ using System.Linq; using System.Text; using System.Threading.Tasks; -namespace Tango.Integration.ExternalBridge.Network.Performance +namespace Tango.PPC.Shared.Performance { public class StartPerformanceUpdatesResponse { diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Shared/Properties/AssemblyInfo.cs b/Software/Visual_Studio/PPC/Tango.PPC.Shared/Properties/AssemblyInfo.cs new file mode 100644 index 000000000..c9efeb790 --- /dev/null +++ b/Software/Visual_Studio/PPC/Tango.PPC.Shared/Properties/AssemblyInfo.cs @@ -0,0 +1,23 @@ +using System.Reflection; +using System.Resources; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using System.Windows; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Tango Panel PC Shared Library")] +[assembly: AssemblyVersion("1.0.0.0")] + +[assembly: ThemeInfo( + ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located + //(used if a resource is not found in the page, + // or application resource dictionaries) + ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located + //(used if a resource is not found in the page, + // app, or any theme specific resource dictionaries) +)] + +//Friends With +[assembly: InternalsVisibleTo("Tango.PPC.UI")] diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Shared/Properties/Resources.Designer.cs b/Software/Visual_Studio/PPC/Tango.PPC.Shared/Properties/Resources.Designer.cs new file mode 100644 index 000000000..416184c0f --- /dev/null +++ b/Software/Visual_Studio/PPC/Tango.PPC.Shared/Properties/Resources.Designer.cs @@ -0,0 +1,62 @@ +//------------------------------------------------------------------------------ +// <auto-generated> +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// </auto-generated> +//------------------------------------------------------------------------------ + +namespace Tango.PPC.Shared.Properties { + + + /// <summary> + /// A strongly-typed resource class, for looking up localized strings, etc. + /// </summary> + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// <summary> + /// Returns the cached ResourceManager instance used by this class. + /// </summary> + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if ((resourceMan == null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Tango.PPC.Shared.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// <summary> + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// </summary> + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + } +} diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Shared/Properties/Resources.resx b/Software/Visual_Studio/PPC/Tango.PPC.Shared/Properties/Resources.resx new file mode 100644 index 000000000..af7dbebba --- /dev/null +++ b/Software/Visual_Studio/PPC/Tango.PPC.Shared/Properties/Resources.resx @@ -0,0 +1,117 @@ +<?xml version="1.0" encoding="utf-8"?> +<root> + <!-- + Microsoft ResX Schema + + Version 2.0 + + The primary goals of this format is to allow a simple XML format + that is mostly human readable. The generation and parsing of the + various data types are done through the TypeConverter classes + associated with the data types. + + Example: + + ... ado.net/XML headers & schema ... + <resheader name="resmimetype">text/microsoft-resx</resheader> + <resheader name="version">2.0</resheader> + <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader> + <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader> + <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data> + <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data> + <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64"> + <value>[base64 mime encoded serialized .NET Framework object]</value> + </data> + <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> + <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value> + <comment>This is a comment</comment> + </data> + + There are any number of "resheader" rows that contain simple + name/value pairs. + + Each data row contains a name, and value. The row also contains a + type or mimetype. Type corresponds to a .NET class that support + text/value conversion through the TypeConverter architecture. + Classes that don't support this are serialized and stored with the + mimetype set. + + The mimetype is used for serialized objects, and tells the + ResXResourceReader how to depersist the object. This is currently not + extensible. For a given mimetype the value must be set accordingly: + + Note - application/x-microsoft.net.object.binary.base64 is the format + that the ResXResourceWriter will generate, however the reader can + read any of the formats listed below. + + mimetype: application/x-microsoft.net.object.binary.base64 + value : The object must be serialized with + : System.Serialization.Formatters.Binary.BinaryFormatter + : and then encoded with base64 encoding. + + mimetype: application/x-microsoft.net.object.soap.base64 + value : The object must be serialized with + : System.Runtime.Serialization.Formatters.Soap.SoapFormatter + : and then encoded with base64 encoding. + + mimetype: application/x-microsoft.net.object.bytearray.base64 + value : The object must be serialized into a byte array + : using a System.ComponentModel.TypeConverter + : and then encoded with base64 encoding. + --> + <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> + <xsd:element name="root" msdata:IsDataSet="true"> + <xsd:complexType> + <xsd:choice maxOccurs="unbounded"> + <xsd:element name="metadata"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" /> + </xsd:sequence> + <xsd:attribute name="name" type="xsd:string" /> + <xsd:attribute name="type" type="xsd:string" /> + <xsd:attribute name="mimetype" type="xsd:string" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="assembly"> + <xsd:complexType> + <xsd:attribute name="alias" type="xsd:string" /> + <xsd:attribute name="name" type="xsd:string" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="data"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> + <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" /> + </xsd:sequence> + <xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" /> + <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" /> + <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="resheader"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> + </xsd:sequence> + <xsd:attribute name="name" type="xsd:string" use="required" /> + </xsd:complexType> + </xsd:element> + </xsd:choice> + </xsd:complexType> + </xsd:element> + </xsd:schema> + <resheader name="resmimetype"> + <value>text/microsoft-resx</value> + </resheader> + <resheader name="version"> + <value>2.0</value> + </resheader> + <resheader name="reader"> + <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </resheader> + <resheader name="writer"> + <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </resheader> +</root>
\ No newline at end of file diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Shared/Properties/Settings.Designer.cs b/Software/Visual_Studio/PPC/Tango.PPC.Shared/Properties/Settings.Designer.cs new file mode 100644 index 000000000..0b65472a5 --- /dev/null +++ b/Software/Visual_Studio/PPC/Tango.PPC.Shared/Properties/Settings.Designer.cs @@ -0,0 +1,30 @@ +//------------------------------------------------------------------------------ +// <auto-generated> +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// </auto-generated> +//------------------------------------------------------------------------------ + +namespace Tango.PPC.Shared.Properties +{ + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase + { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default + { + get + { + return defaultInstance; + } + } + } +} diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Shared/Properties/Settings.settings b/Software/Visual_Studio/PPC/Tango.PPC.Shared/Properties/Settings.settings new file mode 100644 index 000000000..033d7a5e9 --- /dev/null +++ b/Software/Visual_Studio/PPC/Tango.PPC.Shared/Properties/Settings.settings @@ -0,0 +1,7 @@ +<?xml version='1.0' encoding='utf-8'?> +<SettingsFile xmlns="uri:settings" CurrentProfile="(Default)"> + <Profiles> + <Profile Name="(Default)" /> + </Profiles> + <Settings /> +</SettingsFile>
\ No newline at end of file diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Shared/Tango.PPC.Shared.csproj b/Software/Visual_Studio/PPC/Tango.PPC.Shared/Tango.PPC.Shared.csproj new file mode 100644 index 000000000..2ae1c7575 --- /dev/null +++ b/Software/Visual_Studio/PPC/Tango.PPC.Shared/Tango.PPC.Shared.csproj @@ -0,0 +1,104 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" /> + <PropertyGroup> + <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> + <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> + <ProjectGuid>{208C8BD8-72C6-4E3C-ACAA-351091A2ACC7}</ProjectGuid> + <OutputType>library</OutputType> + <RootNamespace>Tango.PPC.Shared</RootNamespace> + <AssemblyName>Tango.PPC.Shared</AssemblyName> + <TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion> + <FileAlignment>512</FileAlignment> + <ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids> + <WarningLevel>4</WarningLevel> + <Deterministic>true</Deterministic> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> + <DebugSymbols>true</DebugSymbols> + <DebugType>full</DebugType> + <Optimize>false</Optimize> + <OutputPath>..\..\Build\PPC\Debug\</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>..\..\Build\PPC\Release\</OutputPath> + <DefineConstants>TRACE</DefineConstants> + <ErrorReport>prompt</ErrorReport> + <WarningLevel>4</WarningLevel> + </PropertyGroup> + <ItemGroup> + <Reference Include="System" /> + <Reference Include="System.Data" /> + <Reference Include="System.Xml" /> + <Reference Include="Microsoft.CSharp" /> + <Reference Include="System.Core" /> + <Reference Include="System.Xml.Linq" /> + <Reference Include="System.Data.DataSetExtensions" /> + <Reference Include="System.Net.Http" /> + <Reference Include="System.Xaml"> + <RequiredTargetFramework>4.0</RequiredTargetFramework> + </Reference> + <Reference Include="WindowsBase" /> + <Reference Include="PresentationCore" /> + <Reference Include="PresentationFramework" /> + </ItemGroup> + <ItemGroup> + <Page Include="Themes\Generic.xaml"> + <Generator>MSBuild:Compile</Generator> + <SubType>Designer</SubType> + </Page> + </ItemGroup> + <ItemGroup> + <Compile Include="..\..\Versioning\GlobalVersionInfo.cs"> + <Link>GlobalVersionInfo.cs</Link> + </Compile> + <Compile Include="Information\GetMachineInformationRequest.cs" /> + <Compile Include="Information\GetMachineInformationResponse.cs" /> + <Compile Include="Information\InformationPackage.cs" /> + <Compile Include="Performance\PerformancePackage.cs" /> + <Compile Include="Performance\StartPerformanceUpdatesRequest.cs" /> + <Compile Include="Performance\StartPerformanceUpdatesResponse.cs" /> + <Compile Include="Properties\AssemblyInfo.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="Properties\Resources.Designer.cs"> + <AutoGen>True</AutoGen> + <DesignTime>True</DesignTime> + <DependentUpon>Resources.resx</DependentUpon> + </Compile> + <Compile Include="Properties\Settings.Designer.cs"> + <AutoGen>True</AutoGen> + <DependentUpon>Settings.settings</DependentUpon> + <DesignTimeSharedInput>True</DesignTimeSharedInput> + </Compile> + <Compile Include="Updates\GetUpdatesAndPackagesRequest.cs" /> + <Compile Include="Updates\GetUpdatesAndPackagesResponse.cs" /> + <Compile Include="Updates\PackageInstallation.cs" /> + <Compile Include="Updates\PackageInstallationState.cs" /> + <Compile Include="Updates\PackageType.cs" /> + <EmbeddedResource Include="Properties\Resources.resx"> + <Generator>ResXFileCodeGenerator</Generator> + <LastGenOutput>Resources.Designer.cs</LastGenOutput> + </EmbeddedResource> + <None Include="Properties\Settings.settings"> + <Generator>SettingsSingleFileGenerator</Generator> + <LastGenOutput>Settings.Designer.cs</LastGenOutput> + </None> + </ItemGroup> + <ItemGroup> + <ProjectReference Include="..\..\Tango.BL\Tango.BL.csproj"> + <Project>{f441feee-322a-4943-b566-110e12fd3b72}</Project> + <Name>Tango.BL</Name> + </ProjectReference> + <ProjectReference Include="..\..\Tango.SystemInfo\Tango.SystemInfo.csproj"> + <Project>{997a961c-beda-4b56-aa0f-c39e532f7ffa}</Project> + <Name>Tango.SystemInfo</Name> + </ProjectReference> + </ItemGroup> + <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> +</Project>
\ No newline at end of file diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Shared/Themes/Generic.xaml b/Software/Visual_Studio/PPC/Tango.PPC.Shared/Themes/Generic.xaml new file mode 100644 index 000000000..1226f66d1 --- /dev/null +++ b/Software/Visual_Studio/PPC/Tango.PPC.Shared/Themes/Generic.xaml @@ -0,0 +1,6 @@ +<ResourceDictionary + xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" + xmlns:local="clr-namespace:Tango.PPC.Shared"> + +</ResourceDictionary> diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Shared/Updates/GetUpdatesAndPackagesRequest.cs b/Software/Visual_Studio/PPC/Tango.PPC.Shared/Updates/GetUpdatesAndPackagesRequest.cs new file mode 100644 index 000000000..f8cadc49d --- /dev/null +++ b/Software/Visual_Studio/PPC/Tango.PPC.Shared/Updates/GetUpdatesAndPackagesRequest.cs @@ -0,0 +1,13 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Tango.PPC.Shared.Updates +{ + public class GetUpdatesAndPackagesRequest + { + + } +} diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Shared/Updates/GetUpdatesAndPackagesResponse.cs b/Software/Visual_Studio/PPC/Tango.PPC.Shared/Updates/GetUpdatesAndPackagesResponse.cs new file mode 100644 index 000000000..d264739d7 --- /dev/null +++ b/Software/Visual_Studio/PPC/Tango.PPC.Shared/Updates/GetUpdatesAndPackagesResponse.cs @@ -0,0 +1,22 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Tango.BL.DTO; + +namespace Tango.PPC.Shared.Updates +{ + public class GetUpdatesAndPackagesResponse + { + public List<TangoUpdateDTO> Updates { get; set; } + + public List<PackageInstallation> Packages { get; set; } + + public GetUpdatesAndPackagesResponse() + { + Updates = new List<TangoUpdateDTO>(); + Packages = new List<PackageInstallation>(); + } + } +} diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/UpdatePackages/PackageInstallation.cs b/Software/Visual_Studio/PPC/Tango.PPC.Shared/Updates/PackageInstallation.cs index bf00915bd..639fd76bf 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.Common/UpdatePackages/PackageInstallation.cs +++ b/Software/Visual_Studio/PPC/Tango.PPC.Shared/Updates/PackageInstallation.cs @@ -4,7 +4,7 @@ using System.Linq; using System.Text; using System.Threading.Tasks; -namespace Tango.PPC.Common.UpdatePackages +namespace Tango.PPC.Shared.Updates { public class PackageInstallation { diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/UpdatePackages/PackageInstallationState.cs b/Software/Visual_Studio/PPC/Tango.PPC.Shared/Updates/PackageInstallationState.cs index 1300352fb..51ae2abce 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.Common/UpdatePackages/PackageInstallationState.cs +++ b/Software/Visual_Studio/PPC/Tango.PPC.Shared/Updates/PackageInstallationState.cs @@ -4,7 +4,7 @@ using System.Linq; using System.Text; using System.Threading.Tasks; -namespace Tango.PPC.Common.UpdatePackages +namespace Tango.PPC.Shared.Updates { public enum PackageInstallationState { diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/UpdatePackages/PackageType.cs b/Software/Visual_Studio/PPC/Tango.PPC.Shared/Updates/PackageType.cs index 48a2140b1..0e553ca21 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.Common/UpdatePackages/PackageType.cs +++ b/Software/Visual_Studio/PPC/Tango.PPC.Shared/Updates/PackageType.cs @@ -4,7 +4,7 @@ using System.Linq; using System.Text; using System.Threading.Tasks; -namespace Tango.PPC.Common.UpdatePackages +namespace Tango.PPC.Shared.Updates { public enum PackageType { diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Tango.PPC.UI.csproj b/Software/Visual_Studio/PPC/Tango.PPC.UI/Tango.PPC.UI.csproj index 45eaa0e50..9a5824d81 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.UI/Tango.PPC.UI.csproj +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Tango.PPC.UI.csproj @@ -558,6 +558,10 @@ <Project>{0be74eee-22cb-4dba-b896-793b9e1a3ac0}</Project> <Name>Tango.PPC.Common</Name> </ProjectReference> + <ProjectReference Include="..\Tango.PPC.Shared\Tango.PPC.Shared.csproj"> + <Project>{208c8bd8-72c6-4e3c-acaa-351091a2acc7}</Project> + <Name>Tango.PPC.Shared</Name> + </ProjectReference> </ItemGroup> <ItemGroup> <Resource Include="Images\liquid.png" /> @@ -693,7 +697,7 @@ if $(ConfigurationName) == Debug copy /Y "$(TargetDir)Packages" "$(TargetDir)"</ </PropertyGroup> <ProjectExtensions> <VisualStudio> - <UserProperties BuildVersion_AssemblyInfoFilename="Properties\AssemblyInfo.cs" BuildVersion_UpdateAssemblyVersion="True" BuildVersion_BuildVersioningStyle="None.None.Increment.TimeStamp" BuildVersion_UseGlobalSettings="False" BuildVersion_StartDate="2000/1/1" /> + <UserProperties BuildVersion_StartDate="2000/1/1" BuildVersion_UseGlobalSettings="False" BuildVersion_BuildVersioningStyle="None.None.Increment.TimeStamp" BuildVersion_UpdateAssemblyVersion="True" BuildVersion_AssemblyInfoFilename="Properties\AssemblyInfo.cs" /> </VisualStudio> </ProjectExtensions> </Project>
\ No newline at end of file diff --git a/Software/Visual_Studio/Tango.Core/ExtensionMethods/ObjectExtensions.cs b/Software/Visual_Studio/Tango.Core/ExtensionMethods/ObjectExtensions.cs index cee991507..3b344ce56 100644 --- a/Software/Visual_Studio/Tango.Core/ExtensionMethods/ObjectExtensions.cs +++ b/Software/Visual_Studio/Tango.Core/ExtensionMethods/ObjectExtensions.cs @@ -126,7 +126,11 @@ namespace Tango.Core.ExtensionMethods var desProp = destination.GetType().GetProperty(prop.Name, BindingFlags.Public | BindingFlags.Instance); - if (desProp != null && desProp.PropertyType == prop.PropertyType && desProp.SetMethod != null) + if (desProp != null && desProp.SetMethod != null && desProp.PropertyType.IsEnum && prop.PropertyType.IsEnum) + { + desProp.SetValue(destination, Enum.Parse(desProp.PropertyType, value.ToString())); + } + else if (desProp != null && desProp.PropertyType == prop.PropertyType && desProp.SetMethod != null) { desProp.SetValue(destination, value); } diff --git a/Software/Visual_Studio/Tango.FileSystem/FileExplorerControl.cs b/Software/Visual_Studio/Tango.FileSystem/FileExplorerControl.cs index 0769b3576..0a7fe8ddc 100644 --- a/Software/Visual_Studio/Tango.FileSystem/FileExplorerControl.cs +++ b/Software/Visual_Studio/Tango.FileSystem/FileExplorerControl.cs @@ -415,6 +415,19 @@ namespace Tango.FileSystem UploadCommandInternal = new RelayCommand(() => { UploadCommand?.Execute(null); + },() => + { + if (CurrentItem == null) return false; + + if (CurrentItem is FolderItem) + { + if ((CurrentItem as FolderItem).IsRoot) + { + return false; + } + } + + return true; }); } diff --git a/Software/Visual_Studio/Tango.Integration/ExternalBridge/ExternalBridgeService.cs b/Software/Visual_Studio/Tango.Integration/ExternalBridge/ExternalBridgeService.cs index 58df06fd8..f981ce8bb 100644 --- a/Software/Visual_Studio/Tango.Integration/ExternalBridge/ExternalBridgeService.cs +++ b/Software/Visual_Studio/Tango.Integration/ExternalBridge/ExternalBridgeService.cs @@ -427,7 +427,7 @@ namespace Tango.Integration.ExternalBridge { if (_requestHandlers.ContainsKey(genericType.Name)) { - var innerMessage = ProtoSerializer.DeserializeFromByteString(genericType, (message as GenericRequest).Data); //JsonConvert.DeserializeObject(json, _genericMessageSettings); + var innerMessage = GenericMessageSerializer.DeserializeFromByteString(genericType, (message as GenericRequest).Data); //JsonConvert.DeserializeObject(json, _genericMessageSettings); var handler = _requestHandlers[genericType.Name]; handler.Method.Invoke(handler.Handler, new object[] diff --git a/Software/Visual_Studio/Tango.Integration/Tango.Integration.csproj b/Software/Visual_Studio/Tango.Integration/Tango.Integration.csproj index 1356c115c..8ecbd3d09 100644 --- a/Software/Visual_Studio/Tango.Integration/Tango.Integration.csproj +++ b/Software/Visual_Studio/Tango.Integration/Tango.Integration.csproj @@ -106,12 +106,6 @@ <Compile Include="ExternalBridge\IExternalBridgeRequestHandler.cs" /> <Compile Include="ExternalBridge\ExternalBridgeSignalRConfiguration.cs" /> <Compile Include="ExternalBridge\ExternalBridgeSignalRClient.cs" /> - <Compile Include="ExternalBridge\Network\Information\GetMachineInformationRequest.cs" /> - <Compile Include="ExternalBridge\Network\Information\GetMachineInformationResponse.cs" /> - <Compile Include="ExternalBridge\Network\Information\InformationPackage.cs" /> - <Compile Include="ExternalBridge\Network\Performance\PerformancePackage.cs" /> - <Compile Include="ExternalBridge\Network\Performance\StartPerformanceUpdatesRequest.cs" /> - <Compile Include="ExternalBridge\Network\Performance\StartPerformanceUpdatesResponse.cs" /> <Compile Include="ExternalBridge\Web\MachineInfo.cs" /> <Compile Include="IntegrationSettings.cs" /> <Compile Include="JobRuns\BasicJobRunsLogger.cs" /> @@ -221,7 +215,7 @@ <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> <ProjectExtensions> <VisualStudio> - <UserProperties BuildVersion_StartDate="2000/1/1" BuildVersion_UseGlobalSettings="False" BuildVersion_BuildVersioningStyle="None.None.Increment.TimeStamp" BuildVersion_UpdateAssemblyVersion="True" BuildVersion_AssemblyInfoFilename="Properties\AssemblyInfo.cs" /> + <UserProperties BuildVersion_AssemblyInfoFilename="Properties\AssemblyInfo.cs" BuildVersion_UpdateAssemblyVersion="True" BuildVersion_BuildVersioningStyle="None.None.Increment.TimeStamp" BuildVersion_UseGlobalSettings="False" BuildVersion_StartDate="2000/1/1" /> </VisualStudio> </ProjectExtensions> </Project>
\ No newline at end of file diff --git a/Software/Visual_Studio/Tango.SharedUI/Helpers/DataGridHelper.cs b/Software/Visual_Studio/Tango.SharedUI/Helpers/DataGridHelper.cs new file mode 100644 index 000000000..80c847a45 --- /dev/null +++ b/Software/Visual_Studio/Tango.SharedUI/Helpers/DataGridHelper.cs @@ -0,0 +1,67 @@ +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.Input; + +namespace Tango.SharedUI.Helpers +{ + public static class DataGridHelper + { + #region DoubleClickCommand + + /// <summary> + /// Determines whether an element is DoubleClickCommand by the drag and drop service. + /// </summary> + public static readonly DependencyProperty DoubleClickCommandProperty = + DependencyProperty.RegisterAttached("DoubleClickCommand", + typeof(ICommand), typeof(DataGridHelper), + new FrameworkPropertyMetadata(null, DoubleClickCommandChanged)); + + /// <summary> + /// DoubleClickCommand changed. + /// </summary> + /// <param name="d">The d.</param> + /// <param name="e">The <see cref="DependencyPropertyChangedEventArgs"/> instance containing the event data.</param> + private static void DoubleClickCommandChanged(DependencyObject d, DependencyPropertyChangedEventArgs xx) + { + if (xx.NewValue != null) + { + var dataGrid = d as DataGrid; + + dataGrid.MouseDoubleClick += (x, e) => + { + if (dataGrid.SelectedItem != null && (e.OriginalSource as UIElement != null) && (e.OriginalSource as FrameworkElement).DataContext == dataGrid.SelectedItem) + { + (xx.NewValue as ICommand)?.Execute(dataGrid.SelectedItem); + } + }; + } + } + + /// <summary> + /// Sets the DoubleClickCommand attached property. + /// </summary> + /// <param name="dataGrid">The element.</param> + /// <param name="value">if set to <c>true</c> [value].</param> + public static void SetDoubleClickCommand(DataGrid dataGrid, ICommand value) + { + dataGrid.SetValue(DoubleClickCommandProperty, value); + } + + /// <summary> + /// Gets the DoubleClickCommand attached property. + /// </summary> + /// <param name="dataGrid">The element.</param> + /// <returns></returns> + public static ICommand GetDoubleClickCommand(DataGrid dataGrid) + { + return (ICommand)dataGrid.GetValue(DoubleClickCommandProperty); + } + + #endregion + } +} diff --git a/Software/Visual_Studio/Tango.SharedUI/Tango.SharedUI.csproj b/Software/Visual_Studio/Tango.SharedUI/Tango.SharedUI.csproj index 4764d0eac..000a4e5d7 100644 --- a/Software/Visual_Studio/Tango.SharedUI/Tango.SharedUI.csproj +++ b/Software/Visual_Studio/Tango.SharedUI/Tango.SharedUI.csproj @@ -156,6 +156,7 @@ <Compile Include="Effects\DisplaySettingEffect.cs" /> <Compile Include="ExtensionMethods\FrameworkElementExtensions.cs" /> <Compile Include="Animations\GridLengthAnimation.cs" /> + <Compile Include="Helpers\DataGridHelper.cs" /> <Compile Include="Helpers\PasswordHelper.cs" /> <Compile Include="Helpers\ResourceHelper.cs" /> <Compile Include="Helpers\UIHelper.cs" /> @@ -254,7 +255,7 @@ <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> <ProjectExtensions> <VisualStudio> - <UserProperties BuildVersion_AssemblyInfoFilename="Properties\AssemblyInfo.cs" BuildVersion_UpdateAssemblyVersion="True" BuildVersion_BuildVersioningStyle="None.None.Increment.TimeStamp" BuildVersion_UseGlobalSettings="False" BuildVersion_StartDate="2000/1/1" /> + <UserProperties BuildVersion_StartDate="2000/1/1" BuildVersion_UseGlobalSettings="False" BuildVersion_BuildVersioningStyle="None.None.Increment.TimeStamp" BuildVersion_UpdateAssemblyVersion="True" BuildVersion_AssemblyInfoFilename="Properties\AssemblyInfo.cs" /> </VisualStudio> </ProjectExtensions> </Project>
\ No newline at end of file diff --git a/Software/Visual_Studio/Tango.Transport/GenericMessageSerializer.cs b/Software/Visual_Studio/Tango.Transport/GenericMessageSerializer.cs new file mode 100644 index 000000000..aa3486dc3 --- /dev/null +++ b/Software/Visual_Studio/Tango.Transport/GenericMessageSerializer.cs @@ -0,0 +1,137 @@ +using Google.Protobuf; +using Newtonsoft.Json; +using ProtoBuf; +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Tango.PMR; +using Tango.PMR.Common; +using Tango.PMR.Integration; + +namespace Tango.Transport +{ + public static class GenericMessageSerializer + { + public enum GenericMessageSerializerMode + { + Json, + Protobuf + } + + public static GenericMessageSerializerMode Mode { get; set; } + + static GenericMessageSerializer() + { + ProtoBuf.Meta.RuntimeTypeModel.Default.AutoAddMissingTypes = true; + ProtoBuf.Meta.RuntimeTypeModel.Default.AutoAddProtoContractTypesOnly = false; + ProtoBuf.Meta.RuntimeTypeModel.Default.InferTagFromNameDefault = true; + ProtoBuf.Meta.RuntimeTypeModel.Default.UseImplicitZeroDefaults = true; + } + + public static object Deserialize(Type type, byte[] array) + { + if (Mode == GenericMessageSerializerMode.Json) + { + return JsonConvert.DeserializeObject(Encoding.UTF8.GetString(array), type); + } + else + { + AutoProtobuf.Build(type); + + using (MemoryStream ms = new MemoryStream(array)) + { + return Serializer.Deserialize(type, ms); + } + } + } + + public static object DeserializeFromByteString(Type type, ByteString byteString) + { + if (Mode == GenericMessageSerializerMode.Json) + { + return JsonConvert.DeserializeObject(byteString.ToStringUtf8(), type); + } + else + { + AutoProtobuf.Build(type); + return Deserialize(type, byteString.ToByteArray()); + } + } + + //--------------------------------------------------------------------- + + public static byte[] Serialize<T>(T message) + { + if (Mode == GenericMessageSerializerMode.Json) + { + return Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(message)); + } + else + { + AutoProtobuf.Build<T>(); + + using (MemoryStream ms = new MemoryStream()) + { + Serializer.Serialize<T>(ms, message); + return ms.ToArray(); + } + } + } + + public static T Deserialize<T>(byte[] array) + { + if (Mode == GenericMessageSerializerMode.Json) + { + return (T)Deserialize(typeof(T), array); + } + else + { + AutoProtobuf.Build<T>(); + + using (MemoryStream ms = new MemoryStream(array)) + { + return Serializer.Deserialize<T>(ms); + } + } + } + + public static ByteString SerializeToByteString<T>(T message) + { + if (Mode == GenericMessageSerializerMode.Json) + { + return ByteString.CopyFromUtf8(JsonConvert.SerializeObject(message)); + } + else + { + AutoProtobuf.Build<T>(); + + return ByteString.CopyFrom(Serialize<T>(message)); + } + } + + public static T DeserializeFromByteString<T>(ByteString byteString) + { + if (Mode == GenericMessageSerializerMode.Json) + { + return JsonConvert.DeserializeObject<T>(byteString.ToStringUtf8()); + } + else + { + AutoProtobuf.Build<T>(); + + return Deserialize<T>(byteString.ToByteArray()); + } + } + + public static T ExtractGenericRequestFromContainer<T>(MessageContainer container) where T : class + { + var message = MessageFactory.ExtractMessageFromContainer(container); + var genericType = Type.GetType((message as GenericRequest).Type); + var innerMessage = DeserializeFromByteString(genericType, (message as GenericRequest).Data); + return innerMessage as T; + } + } +} diff --git a/Software/Visual_Studio/Tango.Transport/ProtoSerializer.cs b/Software/Visual_Studio/Tango.Transport/ProtoSerializer.cs deleted file mode 100644 index c974f2712..000000000 --- a/Software/Visual_Studio/Tango.Transport/ProtoSerializer.cs +++ /dev/null @@ -1,87 +0,0 @@ -using Google.Protobuf; -using ProtoBuf; -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Tango.PMR; -using Tango.PMR.Common; -using Tango.PMR.Integration; - -namespace Tango.Transport -{ - public static class ProtoSerializer - { - static ProtoSerializer() - { - ProtoBuf.Meta.RuntimeTypeModel.Default.AutoAddMissingTypes = true; - ProtoBuf.Meta.RuntimeTypeModel.Default.AutoAddProtoContractTypesOnly = false; - ProtoBuf.Meta.RuntimeTypeModel.Default.InferTagFromNameDefault = true; - ProtoBuf.Meta.RuntimeTypeModel.Default.UseImplicitZeroDefaults = true; - } - - public static object Deserialize(Type type, byte[] array) - { - AutoProtobuf.Build(type); - - using (MemoryStream ms = new MemoryStream(array)) - { - return Serializer.Deserialize(type, ms); - } - } - - public static object DeserializeFromByteString(Type type, ByteString byteString) - { - AutoProtobuf.Build(type); - - return Deserialize(type, byteString.ToByteArray()); - } - - //--------------------------------------------------------------------- - - public static byte[] Serialize<T>(T message) - { - AutoProtobuf.Build<T>(); - - using (MemoryStream ms = new MemoryStream()) - { - Serializer.Serialize<T>(ms, message); - return ms.ToArray(); - } - } - - public static T Deserialize<T>(byte[] array) - { - AutoProtobuf.Build<T>(); - - using (MemoryStream ms = new MemoryStream(array)) - { - return Serializer.Deserialize<T>(ms); - } - } - - public static ByteString SerializeToByteString<T>(T message) - { - AutoProtobuf.Build<T>(); - - return ByteString.CopyFrom(Serialize<T>(message)); - } - - public static T DeserializeFromByteString<T>(ByteString byteString) - { - AutoProtobuf.Build<T>(); - - return Deserialize<T>(byteString.ToByteArray()); - } - - public static T ExtractGenericRequestFromContainer<T>(MessageContainer container) where T : class - { - var message = MessageFactory.ExtractMessageFromContainer(container); - var genericType = Type.GetType((message as GenericRequest).Type); - var innerMessage = ProtoSerializer.DeserializeFromByteString(genericType, (message as GenericRequest).Data); - return innerMessage as T; - } - } -} diff --git a/Software/Visual_Studio/Tango.Transport/Tango.Transport.csproj b/Software/Visual_Studio/Tango.Transport/Tango.Transport.csproj index 120584798..f83384097 100644 --- a/Software/Visual_Studio/Tango.Transport/Tango.Transport.csproj +++ b/Software/Visual_Studio/Tango.Transport/Tango.Transport.csproj @@ -125,7 +125,7 @@ <Compile Include="PendingResponse.cs" /> <Compile Include="Properties\AssemblyInfo.cs" /> <Compile Include="ITransporter.cs" /> - <Compile Include="ProtoSerializer.cs" /> + <Compile Include="GenericMessageSerializer.cs" /> <Compile Include="RequestFailedEventArgs.cs" /> <Compile Include="ResponseErrorException.cs" /> <Compile Include="Routing\SimpleTransportRouter.cs" /> @@ -186,7 +186,7 @@ <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> <ProjectExtensions> <VisualStudio> - <UserProperties BuildVersion_StartDate="2000/1/1" BuildVersion_UseGlobalSettings="False" BuildVersion_BuildVersioningStyle="None.None.Increment.TimeStamp" BuildVersion_UpdateAssemblyVersion="True" BuildVersion_AssemblyInfoFilename="Properties\AssemblyInfo.cs" /> + <UserProperties BuildVersion_AssemblyInfoFilename="Properties\AssemblyInfo.cs" BuildVersion_UpdateAssemblyVersion="True" BuildVersion_BuildVersioningStyle="None.None.Increment.TimeStamp" BuildVersion_UseGlobalSettings="False" BuildVersion_StartDate="2000/1/1" /> </VisualStudio> </ProjectExtensions> </Project>
\ No newline at end of file diff --git a/Software/Visual_Studio/Tango.Transport/TransporterBase.cs b/Software/Visual_Studio/Tango.Transport/TransporterBase.cs index 5e076738c..0958e4d9f 100644 --- a/Software/Visual_Studio/Tango.Transport/TransporterBase.cs +++ b/Software/Visual_Studio/Tango.Transport/TransporterBase.cs @@ -334,7 +334,7 @@ namespace Tango.Transport if (handlers.Count > 0) { - var innerRequest = ProtoSerializer.DeserializeFromByteString(handlers[0].RequestType, genericRequest.Data); + var innerRequest = GenericMessageSerializer.DeserializeFromByteString(handlers[0].RequestType, genericRequest.Data); foreach (var handler in handlers) { @@ -930,10 +930,10 @@ namespace Tango.Transport { GenericRequest genericRequest = new GenericRequest(); genericRequest.Type = request.GetType().AssemblyQualifiedName; - genericRequest.Data = ProtoSerializer.SerializeToByteString<Request>(request); + genericRequest.Data = GenericMessageSerializer.SerializeToByteString<Request>(request); var response = await SendRequest<GenericRequest, GenericResponse>(genericRequest, config); - var responseObject = ProtoSerializer.DeserializeFromByteString<Response>(response.Message.Data); + var responseObject = GenericMessageSerializer.DeserializeFromByteString<Response>(response.Message.Data); return responseObject; } @@ -949,7 +949,7 @@ namespace Tango.Transport { GenericResponse genericResponse = new GenericResponse(); - genericResponse.Data = ProtoSerializer.SerializeToByteString<Response>(response); + genericResponse.Data = GenericMessageSerializer.SerializeToByteString<Response>(response); await SendResponse<GenericResponse>(genericResponse, token, config); } @@ -966,7 +966,7 @@ namespace Tango.Transport GenericRequest genericRequest = new GenericRequest(); genericRequest.Type = request.GetType().AssemblyQualifiedName; - genericRequest.Data = ProtoSerializer.SerializeToByteString<Request>(request); + genericRequest.Data = GenericMessageSerializer.SerializeToByteString<Request>(request); Subject<Response> subject = new Subject<Response>(); @@ -975,7 +975,7 @@ namespace Tango.Transport try { - var responseObject = ProtoSerializer.DeserializeFromByteString<Response>(response.Message.Data); + var responseObject = GenericMessageSerializer.DeserializeFromByteString<Response>(response.Message.Data); subject.OnNext(responseObject); } catch (Exception ex) diff --git a/Software/Visual_Studio/Tango.sln b/Software/Visual_Studio/Tango.sln index 6e79d8d13..96548aaac 100644 --- a/Software/Visual_Studio/Tango.sln +++ b/Software/Visual_Studio/Tango.sln @@ -369,6 +369,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.SystemInfo", "Tango.S EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.FileSystem", "Tango.FileSystem\Tango.FileSystem.csproj", "{C6EBBBBE-2123-44DC-AEF7-A0D47D736AC0}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.PPC.Shared", "PPC\Tango.PPC.Shared\Tango.PPC.Shared.csproj", "{208C8BD8-72C6-4E3C-ACAA-351091A2ACC7}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -3422,6 +3424,26 @@ Global {C6EBBBBE-2123-44DC-AEF7-A0D47D736AC0}.Release|x64.Build.0 = Release|Any CPU {C6EBBBBE-2123-44DC-AEF7-A0D47D736AC0}.Release|x86.ActiveCfg = Release|Any CPU {C6EBBBBE-2123-44DC-AEF7-A0D47D736AC0}.Release|x86.Build.0 = Release|Any CPU + {208C8BD8-72C6-4E3C-ACAA-351091A2ACC7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {208C8BD8-72C6-4E3C-ACAA-351091A2ACC7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {208C8BD8-72C6-4E3C-ACAA-351091A2ACC7}.Debug|ARM.ActiveCfg = Debug|Any CPU + {208C8BD8-72C6-4E3C-ACAA-351091A2ACC7}.Debug|ARM.Build.0 = Debug|Any CPU + {208C8BD8-72C6-4E3C-ACAA-351091A2ACC7}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {208C8BD8-72C6-4E3C-ACAA-351091A2ACC7}.Debug|ARM64.Build.0 = Debug|Any CPU + {208C8BD8-72C6-4E3C-ACAA-351091A2ACC7}.Debug|x64.ActiveCfg = Debug|Any CPU + {208C8BD8-72C6-4E3C-ACAA-351091A2ACC7}.Debug|x64.Build.0 = Debug|Any CPU + {208C8BD8-72C6-4E3C-ACAA-351091A2ACC7}.Debug|x86.ActiveCfg = Debug|Any CPU + {208C8BD8-72C6-4E3C-ACAA-351091A2ACC7}.Debug|x86.Build.0 = Debug|Any CPU + {208C8BD8-72C6-4E3C-ACAA-351091A2ACC7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {208C8BD8-72C6-4E3C-ACAA-351091A2ACC7}.Release|Any CPU.Build.0 = Release|Any CPU + {208C8BD8-72C6-4E3C-ACAA-351091A2ACC7}.Release|ARM.ActiveCfg = Release|Any CPU + {208C8BD8-72C6-4E3C-ACAA-351091A2ACC7}.Release|ARM.Build.0 = Release|Any CPU + {208C8BD8-72C6-4E3C-ACAA-351091A2ACC7}.Release|ARM64.ActiveCfg = Release|Any CPU + {208C8BD8-72C6-4E3C-ACAA-351091A2ACC7}.Release|ARM64.Build.0 = Release|Any CPU + {208C8BD8-72C6-4E3C-ACAA-351091A2ACC7}.Release|x64.ActiveCfg = Release|Any CPU + {208C8BD8-72C6-4E3C-ACAA-351091A2ACC7}.Release|x64.Build.0 = Release|Any CPU + {208C8BD8-72C6-4E3C-ACAA-351091A2ACC7}.Release|x86.ActiveCfg = Release|Any CPU + {208C8BD8-72C6-4E3C-ACAA-351091A2ACC7}.Release|x86.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -3544,14 +3566,15 @@ Global {834C81C3-09B5-45D7-BE12-E7D1E6655A7C} = {004337EB-0761-4D30-B9F5-AE6E1CFC6013} {866B916A-207C-43F0-B403-7C4A820C2E11} = {4EE6DBA1-71BC-49E2-8DC7-266487E61050} {A07E6CB4-0132-4EB1-9A38-C8C057884DC2} = {EC62BC9C-F2FE-4333-B7E4-110E38D43958} + {208C8BD8-72C6-4E3C-ACAA-351091A2ACC7} = {C81ED1A3-D18C-4D80-A8F5-061994A14A60} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {7986F7F4-A86A-4994-B1B6-0988D7F057B6} - BuildVersion_BuildVersioningStyle = None.None.Increment.DeltaBaseYearDayOfYear - BuildVersion_UpdateAssemblyVersion = True - BuildVersion_UpdateFileVersion = False - BuildVersion_StartDate = 2000/1/1 - BuildVersion_AssemblyInfoFilename = Properties\AssemblyInfo.cs BuildVersion_UseGlobalSettings = False + BuildVersion_AssemblyInfoFilename = Properties\AssemblyInfo.cs + BuildVersion_StartDate = 2000/1/1 + BuildVersion_UpdateFileVersion = False + BuildVersion_UpdateAssemblyVersion = True + BuildVersion_BuildVersioningStyle = None.None.Increment.DeltaBaseYearDayOfYear + SolutionGuid = {7986F7F4-A86A-4994-B1B6-0988D7F057B6} EndGlobalSection EndGlobal |
