diff options
| author | Roy Ben-Shabat <Roy@Twine-s.com> | 2018-04-09 18:30:58 +0300 |
|---|---|---|
| committer | Roy Ben-Shabat <Roy@Twine-s.com> | 2018-04-09 18:30:58 +0300 |
| commit | a898decf18c4c0ed56d020dc09df55df1ca0263a (patch) | |
| tree | 66140670047d9ec9d7a0bbeb2851a84868b9515c /Software/Visual_Studio | |
| parent | 4cd266e13bdb3e27ca77eba3b47278b57a0dcd8d (diff) | |
| download | Tango-a898decf18c4c0ed56d020dc09df55df1ca0263a.tar.gz Tango-a898decf18c4c0ed56d020dc09df55df1ca0263a.zip | |
Lots of changes :/
Diffstat (limited to 'Software/Visual_Studio')
30 files changed, 914 insertions, 129 deletions
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/ViewModels/MainViewVM.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/ViewModels/MainViewVM.cs index 7891f96b7..cdfeee54d 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/ViewModels/MainViewVM.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/ViewModels/MainViewVM.cs @@ -34,6 +34,7 @@ using Tango.Core.Helpers; using System.Speech.Synthesis; using System.Media; using Tango.MachineStudio.Common.EventLogging; +using Tango.MachineStudio.Common.Speech; namespace Tango.MachineStudio.Developer.ViewModels { @@ -55,10 +56,8 @@ namespace Tango.MachineStudio.Developer.ViewModels private IAuthenticationProvider _authentication; private ObservablesContext _machineDbContext; private ObservablesContext _activeJobDbContext; - private SpeechSynthesizer _speech; - private SoundPlayer _soundPlayer; - private SoundPlayer _soundPlayerErr; private IEventLogger _eventLogger; + private ISpeechProvider _speech; #region Properties @@ -112,7 +111,6 @@ namespace Tango.MachineStudio.Developer.ViewModels set { _spoolTypes = value; RaisePropertyChangedAuto(); } } - /// <summary> /// Gets or sets the application manager. /// </summary> @@ -473,6 +471,16 @@ namespace Tango.MachineStudio.Developer.ViewModels set { _jobFilter = value; RaisePropertyChangedAuto(); OnJobFilterChanged(); } } + private ObservableCollection<MachinesEvent> _jobEvents; + /// <summary> + /// Gets or sets the running job events. + /// </summary> + public ObservableCollection<MachinesEvent> JobEvents + { + get { return _jobEvents; } + set { _jobEvents = value; RaisePropertyChangedAuto(); } + } + #endregion #region Commands @@ -600,10 +608,12 @@ namespace Tango.MachineStudio.Developer.ViewModels /// </summary> /// <param name="applicationManager">The application manager.</param> /// <param name="notificationProvider">The notification provider.</param> - public MainViewVM(IStudioApplicationManager applicationManager, INotificationProvider notificationProvider, IDiagnosticsFrameProvider diagnosticsFrameProvider, IVideoCaptureProvider videoCaptureProvider, DeveloperNavigationManager navigation, IAuthenticationProvider authentication, IEventLogger eventLogger) + public MainViewVM(IStudioApplicationManager applicationManager, INotificationProvider notificationProvider, IDiagnosticsFrameProvider diagnosticsFrameProvider, IVideoCaptureProvider videoCaptureProvider, DeveloperNavigationManager navigation, IAuthenticationProvider authentication, IEventLogger eventLogger, ISpeechProvider speech) { SelectedJobs = new ObservableCollection<Job>(); + JobEvents = new ObservableCollection<MachinesEvent>(); + LogManager.Log("Initializing machine Db context..."); _machineDbContext = ObservablesContext.CreateDefault(); @@ -624,6 +634,7 @@ namespace Tango.MachineStudio.Developer.ViewModels _authentication = authentication; _notification = notificationProvider; + _speech = speech; _navigation = navigation; ApplicationManager = applicationManager; VideoCaptureProvider = videoCaptureProvider; @@ -631,11 +642,6 @@ namespace Tango.MachineStudio.Developer.ViewModels LogManager.Log("Initializing relay commands..."); - _speech = new SpeechSynthesizer(); - _soundPlayer = new SoundPlayer(EmbeddedResourceHelper.GetEmbeddedResourceStream("Tango.MachineStudio.Developer.bip.wav")); - _soundPlayerErr = new SoundPlayer(EmbeddedResourceHelper.GetEmbeddedResourceStream("Tango.MachineStudio.Developer.error.wav")); - _speech.SelectVoice(_speech.GetInstalledVoices().LastOrDefault(x => x.VoiceInfo.Gender == VoiceGender.Female).VoiceInfo.Name); - //Initialize Commands... EditMachineCommand = new RelayCommand(EditMachine, () => SelectedMachine != null); EditRMLCommand = new RelayCommand(EditRML, () => SelectedRML != null); @@ -662,12 +668,25 @@ namespace Tango.MachineStudio.Developer.ViewModels DisplayJobEmbroideryFileCommand = new RelayCommand<Job>(DisplayJobEmbroideryFile); ApplicationManager.ConnectedMachineChanged += ApplicationManager_ConnectedMachineChanged; + + _eventLogger.NewLog += _eventLogger_NewLog; } #endregion #region Event Handlers + private void _eventLogger_NewLog(object sender, MachinesEvent e) + { + if (IsJobRunning) + { + InvokeUI(() => + { + JobEvents.Add(e); + }); + } + } + /// <summary> /// Handles the application manager connected machine changes event. /// </summary> @@ -744,7 +763,7 @@ namespace Tango.MachineStudio.Developer.ViewModels { if (IsJobRunning) { - SpeakError(events.Last().EventType.Name); + _speech.SpeakError(events.Last().EventType.Name); if (events.ToList().Exists(x => x.ActionTypes.Contains(BL.Enumerations.ActionTypes.AbortRunningJob))) { @@ -758,22 +777,6 @@ namespace Tango.MachineStudio.Developer.ViewModels #endregion - #region Sound - - private void SpeakInfo(String text) - { - _soundPlayer.Play(); - _speech.SpeakAsync(text); - } - - private void SpeakError(String text) - { - _soundPlayerErr.Play(); - _speech.SpeakAsync(text); - } - - #endregion - #region Properties Changes /// <summary> @@ -961,7 +964,7 @@ namespace Tango.MachineStudio.Developer.ViewModels IsJobRunning = false; IsJobFailed = true; - SpeakError("Job Failed!"); + _speech.SpeakError("Job Failed!"); } } @@ -973,7 +976,7 @@ namespace Tango.MachineStudio.Developer.ViewModels LogManager.Log("Setting job completed state..."); IsJobRunning = false; IsJobCompleted = true; - SpeakInfo("Job Completed!"); + _speech.SpeakInfo("Job Completed!"); } /// <summary> @@ -994,6 +997,7 @@ namespace Tango.MachineStudio.Developer.ViewModels return; } + JobEvents.Clear(); RunningJobRemainingTime = TimeSpan.Zero; RunningJobProgress = 0; IsJobFailed = false; @@ -1048,12 +1052,12 @@ namespace Tango.MachineStudio.Developer.ViewModels if (segment.ID != -1) { - SpeakInfo(String.Format("Segment {0} Started.", segment.SegmentIndex)); + _speech.SpeakInfo(String.Format("Segment {0} Started.", segment.SegmentIndex)); _eventLogger.Log(String.Format("Segment {0} Started.", segment.SegmentIndex)); } else { - SpeakInfo(String.Format("Inter Segment Started.")); + _speech.SpeakInfo(String.Format("Inter Segment Started.")); _eventLogger.Log("Inter Segment Started."); } } diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Views/RunningJobView.xaml b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Views/RunningJobView.xaml index 30941f3dd..94570196f 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Views/RunningJobView.xaml +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Views/RunningJobView.xaml @@ -3,12 +3,18 @@ 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:converters="clr-namespace:Tango.SharedUI.Converters;assembly=Tango.SharedUI" xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes" xmlns:vm="clr-namespace:Tango.MachineStudio.Developer.ViewModels" xmlns:global="clr-namespace:Tango.MachineStudio.Developer" xmlns:local="clr-namespace:Tango.MachineStudio.Developer.Views" mc:Ignorable="d" d:DesignHeight="1080" d:DesignWidth="1920" Background="Transparent" d:DataContext="{d:DesignInstance Type=vm:MainViewVM, IsDesignTimeCreatable=False}" DataContext="{x:Static global:ViewModelLocator.MainViewVM}"> + + <UserControl.Resources> + <converters:DateTimeUTCToStringConverter x:Key="DateTimeUTCToStringConverter" /> + </UserControl.Resources> + <Grid> <Grid Margin="40"> <DockPanel> @@ -29,13 +35,78 @@ </Grid> <Grid> - <DataGrid Background="Transparent" Margin="0 20 0 0" BorderThickness="1" BorderBrush="Gainsboro"> + <DataGrid Background="Transparent" AutoGenerateColumns="False" SelectionMode="Single" ItemsSource="{Binding JobEvents}" SelectedItem="{Binding SelectedJobEvent}" RowHeight="40" CanUserAddRows="False" CanUserDeleteRows="False" CanUserReorderColumns="False" IsReadOnly="True"> + <DataGrid.RowStyle> + <Style TargetType="DataGridRow" BasedOn="{StaticResource {x:Type DataGridRow}}"> + <Style.Triggers> + <Trigger Property="IsMouseOver" Value="True"> + <Setter Property="Background" Value="Transparent"></Setter> + <Setter Property="Foreground" Value="{StaticResource AccentColorBrush}" /> + <Setter Property="Cursor" Value="Hand"></Setter> + </Trigger> + <Trigger Property="IsSelected" Value="True"> + <Setter Property="Background" Value="Transparent"></Setter> + </Trigger> + <Trigger Property="IsFocused" Value="True"> + <Setter Property="Background" Value="Transparent"></Setter> + </Trigger> + </Style.Triggers> + </Style> + </DataGrid.RowStyle> + <DataGrid.CellStyle> + <Style 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.Triggers> + <Trigger Property="IsSelected" Value="True"> + <Setter Property="Background" Value="Transparent"></Setter> + </Trigger> + </Style.Triggers> + </Style> + </DataGrid.CellStyle> <DataGrid.Columns> - <DataGridTextColumn Width="Auto" Header="#"/> - <DataGridTextColumn Width="200" Header="TIME STAMP"/> - <DataGridTextColumn Width="100" Header="CODE"/> - <DataGridTextColumn Width="200" Header="NAME"/> - <DataGridTextColumn Width="1*" Header="DESCRIPTION"/> + <DataGridTemplateColumn Header="#"> + <DataGridTemplateColumn.CellTemplate> + <DataTemplate> + <materialDesign:PackIcon Width="16" Height="16"> + <materialDesign:PackIcon.Style> + <Style TargetType="materialDesign:PackIcon"> + <Setter Property="Kind" Value="Alert"></Setter> + <Style.Triggers> + <DataTrigger Binding="{Binding Category}" Value="Info"> + <Setter Property="Kind" Value="Information"></Setter> + <Setter Property="Foreground" Value="DimGray"></Setter> + </DataTrigger> + <DataTrigger Binding="{Binding Category}" Value="Warning"> + <Setter Property="Kind" Value="Alert"></Setter> + <Setter Property="Foreground" Value="#FFA300"></Setter> + </DataTrigger> + <DataTrigger Binding="{Binding Category}" Value="Error"> + <Setter Property="Kind" Value="AlertOctagon"></Setter> + <Setter Property="Foreground" Value="#FF5C5C"></Setter> + </DataTrigger> + <DataTrigger Binding="{Binding Category}" Value="Critical"> + <Setter Property="Kind" Value="BellPlus"></Setter> + <Setter Property="Foreground" Value="Red"></Setter> + </DataTrigger> + </Style.Triggers> + </Style> + </materialDesign:PackIcon.Style> + </materialDesign:PackIcon> + </DataTemplate> + </DataGridTemplateColumn.CellTemplate> + </DataGridTemplateColumn> + <DataGridTextColumn Header="DATE TIME" Binding="{Binding DateTime,Converter={StaticResource DateTimeUTCToStringConverter},ConverterParameter='MM/dd/yyyy HH:mm:ss.fff'}" /> + <DataGridTextColumn Header="GROUP" Binding="{Binding EventType.EventTypesGroup.Name}" /> + <DataGridTextColumn Header="EVENT" Binding="{Binding EventType.Name}" /> + <DataGridTemplateColumn Header="MESSAGE" Width="1*"> + <DataGridTemplateColumn.CellTemplate> + <DataTemplate> + <TextBlock Text="{Binding Description}" TextTrimming="CharacterEllipsis"></TextBlock> + </DataTemplate> + </DataGridTemplateColumn.CellTemplate> + </DataGridTemplateColumn> </DataGrid.Columns> </DataGrid> </Grid> diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Html/IHtmlPresenter.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Html/IHtmlPresenter.cs new file mode 100644 index 000000000..549022050 --- /dev/null +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Html/IHtmlPresenter.cs @@ -0,0 +1,14 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Tango.BL.Entities; + +namespace Tango.MachineStudio.Common.Html +{ + public interface IHtmlPresenter + { + bool DisplayHtml(HtmlPage html); + } +} diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Speech/DefaultSpeechProvider.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Speech/DefaultSpeechProvider.cs new file mode 100644 index 000000000..fb34c8086 --- /dev/null +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Speech/DefaultSpeechProvider.cs @@ -0,0 +1,71 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Media; +using System.Speech.Synthesis; +using System.Text; +using System.Threading.Tasks; +using Tango.Core; +using Tango.Core.Helpers; + +namespace Tango.MachineStudio.Common.Speech +{ + /// <summary> + /// Represents the default speech provider. + /// </summary> + /// <seealso cref="Tango.Core.ExtendedObject" /> + /// <seealso cref="Tango.MachineStudio.Common.Speech.ISpeechProvider" /> + public class DefaultSpeechProvider : ExtendedObject, ISpeechProvider + { + private SpeechSynthesizer _speech; + private SoundPlayer _soundPlayer; + private SoundPlayer _soundPlayerErr; + + private bool _mute; + /// <summary> + /// Gets or sets a value indicating whether this <see cref="ISpeechProvider" /> is mute. + /// </summary> + public bool Mute + { + get { return _mute; } + set { _mute = value; RaisePropertyChangedAuto(); } + } + + /// <summary> + /// Initializes a new instance of the <see cref="DefaultSpeechProvider"/> class. + /// </summary> + public DefaultSpeechProvider() + { + _speech = new SpeechSynthesizer(); + _soundPlayer = new SoundPlayer(EmbeddedResourceHelper.GetEmbeddedResourceStream("Tango.MachineStudio.Common.bip.wav")); + _soundPlayerErr = new SoundPlayer(EmbeddedResourceHelper.GetEmbeddedResourceStream("Tango.MachineStudio.Common.error.wav")); + _speech.SelectVoice(_speech.GetInstalledVoices().LastOrDefault(x => x.VoiceInfo.Gender == VoiceGender.Female).VoiceInfo.Name); + } + + /// <summary> + /// Speaks the specified text associated with an information sound. + /// </summary> + /// <param name="text">The text.</param> + public void SpeakInfo(string text) + { + if (!Mute) + { + _soundPlayer.Play(); + _speech.SpeakAsync(text); + } + } + + /// <summary> + /// Speaks the specified text associated with an error sound. + /// </summary> + /// <param name="text">The text.</param> + public void SpeakError(string text) + { + if (!Mute) + { + _soundPlayerErr.Play(); + _speech.SpeakAsync(text); + } + } + } +} diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Speech/ISpeechProvider.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Speech/ISpeechProvider.cs new file mode 100644 index 000000000..eb31bdc39 --- /dev/null +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Speech/ISpeechProvider.cs @@ -0,0 +1,31 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Tango.MachineStudio.Common.Speech +{ + /// <summary> + /// Represents a text to speech engine. + /// </summary> + public interface ISpeechProvider + { + /// <summary> + /// Gets or sets a value indicating whether this <see cref="ISpeechProvider"/> is mute. + /// </summary> + bool Mute { get; set; } + + /// <summary> + /// Speaks the specified text associated with an information sound. + /// </summary> + /// <param name="text">The text.</param> + void SpeakInfo(String text); + + /// <summary> + /// Speaks the specified text associated with an error sound. + /// </summary> + /// <param name="text">The text.</param> + void SpeakError(String text); + } +} 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 df553f502..bbbab06ab 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 @@ -66,6 +66,7 @@ <Reference Include="System.Data" /> <Reference Include="System.Runtime.Serialization" /> <Reference Include="System.ServiceModel" /> + <Reference Include="System.Speech" /> <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> @@ -104,10 +105,13 @@ <Compile Include="EventLogging\DefaultEventLogger.cs" /> <Compile Include="EventLogging\IEventLogger.cs" /> <Compile Include="ExtensionMethods\CommonDialogExtensions.cs" /> + <Compile Include="Html\IHtmlPresenter.cs" /> <Compile Include="Helpers\GraphsHelper.cs" /> <Compile Include="Messages\MachineConnectionChangedMessage.cs" /> <Compile Include="Notifications\BarItem.cs" /> <Compile Include="Notifications\DialogViewVM.cs" /> + <Compile Include="Speech\DefaultSpeechProvider.cs" /> + <Compile Include="Speech\ISpeechProvider.cs" /> <Compile Include="StudioApplication\IModuleRequestListener.cs" /> <Compile Include="StudioApplication\IShutdownListener.cs" /> <Compile Include="StudioApplication\IStudioApplicationManager.cs" /> @@ -258,6 +262,11 @@ <Name>Tango.Video</Name> </ProjectReference> </ItemGroup> - <ItemGroup /> + <ItemGroup> + <EmbeddedResource Include="bip.wav" /> + </ItemGroup> + <ItemGroup> + <EmbeddedResource Include="error.wav" /> + </ItemGroup> <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> </Project>
\ No newline at end of file diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/bip.wav b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/bip.wav Binary files differnew file mode 100644 index 000000000..5a1d74045 --- /dev/null +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/bip.wav diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/error.wav b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/error.wav Binary files differnew file mode 100644 index 000000000..4dce7d623 --- /dev/null +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/error.wav diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Html/DefaultHtmlPresenter.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Html/DefaultHtmlPresenter.cs new file mode 100644 index 000000000..eff8c98a0 --- /dev/null +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Html/DefaultHtmlPresenter.cs @@ -0,0 +1,25 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using Tango.BL.Entities; +using Tango.MachineStudio.Common.Html; +using Tango.MachineStudio.UI.Windows; + +namespace Tango.MachineStudio.UI.Html +{ + public class DefaultHtmlPresenter : IHtmlPresenter + { + public bool DisplayHtml(HtmlPage html) + { + HtmlWindow dialog = new HtmlWindow(html); + dialog.Owner = Application.Current.MainWindow; + MainWindow.Instance.shadowGrid.Visibility = Visibility.Visible; + var result = dialog.ShowDialog(); + MainWindow.Instance.shadowGrid.Visibility = Visibility.Hidden; + return result.Value; + } + } +} diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Html/HtmlWindow.xaml b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Html/HtmlWindow.xaml new file mode 100644 index 000000000..654d2d0eb --- /dev/null +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Html/HtmlWindow.xaml @@ -0,0 +1,37 @@ +<Window x:Class="Tango.MachineStudio.UI.Html.HtmlWindow" + xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" + xmlns:d="http://schemas.microsoft.com/expression/blend/2008" + xmlns:mahapps="http://metro.mahapps.com/winfx/xaml/controls" + xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes" + xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" + xmlns:local="clr-namespace:Tango.MachineStudio.UI.Windows" + mc:Ignorable="d" + Title="Machine Studio" Height="500" Width="800" WindowStyle="None" ResizeMode="NoResize" WindowStartupLocation="CenterOwner" Background="Transparent"> + <Grid> + <Grid> + <Border Background="White" Padding="10" BorderThickness="1" BorderBrush="{StaticResource AccentColorBrush}"> + <Border.Effect> + <DropShadowEffect ShadowDepth="0" BlurRadius="10"></DropShadowEffect> + </Border.Effect> + + <Grid> + <DockPanel Margin="10"> + <Grid DockPanel.Dock="Bottom"> + <Button Margin="10 10 0 0" Width="140" HorizontalAlignment="Right" Click="OKClicked">OK</Button> + </Grid> + <WebBrowser x:Name="webBrowser" + OverridesDefaultStyle="False" + ScrollViewer.CanContentScroll="False" + ScrollViewer.HorizontalScrollBarVisibility="Hidden" + ScrollViewer.VerticalScrollBarVisibility="Hidden"></WebBrowser> + </DockPanel> + + <Button Click="CloseClicked" HorizontalAlignment="Right" VerticalAlignment="Top" Width="20" Height="20" Margin="0 -6 -4 0" Padding="0" Style="{StaticResource MaterialDesignFlatButton}" Foreground="Black"> + <materialDesign:PackIcon Kind="Close" Width="16" Height="16"></materialDesign:PackIcon> + </Button> + </Grid> + </Border> + </Grid> + </Grid> +</Window> diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Html/HtmlWindow.xaml.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Html/HtmlWindow.xaml.cs new file mode 100644 index 000000000..9f37eba06 --- /dev/null +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Html/HtmlWindow.xaml.cs @@ -0,0 +1,48 @@ +using MahApps.Metro.Controls; +using MaterialDesignThemes.Wpf; +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.Shapes; +using Tango.BL.Entities; +using Tango.Core.Commands; + +namespace Tango.MachineStudio.UI.Html +{ + /// <summary> + /// Interaction logic for DialogWindow.xaml + /// </summary> + public partial class HtmlWindow : Window + { + public HtmlWindow(HtmlPage html) + { + InitializeComponent(); + + webBrowser.Loaded += (_, __) => + { + webBrowser.NavigateToString(html.Html); + }; + } + + private void OKClicked(object sender, RoutedEventArgs e) + { + DialogResult = true; + Close(); + } + + private void CloseClicked(object sender, RoutedEventArgs e) + { + DialogResult = false; + Close(); + } + } +} 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 07b1f44fe..4befd2f5c 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 @@ -143,6 +143,10 @@ <Generator>MSBuild:Compile</Generator> <SubType>Designer</SubType> </ApplicationDefinition> + <Compile Include="Html\DefaultHtmlPresenter.cs" /> + <Compile Include="Html\HtmlWindow.xaml.cs"> + <DependentUpon>HtmlWindow.xaml</DependentUpon> + </Compile> <Compile Include="Modules\DefaultStudioModuleLoader.cs" /> <Compile Include="Notifications\TextInputBoxWindow.xaml.cs"> <DependentUpon>TextInputBoxWindow.xaml</DependentUpon> @@ -199,6 +203,10 @@ <Compile Include="Windows\ModuleWindow.xaml.cs"> <DependentUpon>ModuleWindow.xaml</DependentUpon> </Compile> + <Page Include="Html\HtmlWindow.xaml"> + <Generator>MSBuild:Compile</Generator> + <SubType>Designer</SubType> + </Page> <Page Include="MainWindow.xaml"> <Generator>MSBuild:Compile</Generator> <SubType>Designer</SubType> diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModelLocator.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModelLocator.cs index 571122eb5..bbb916d02 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModelLocator.cs +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModelLocator.cs @@ -7,12 +7,15 @@ using Tango.Logging; using Tango.MachineStudio.Common.Authentication; using Tango.MachineStudio.Common.Diagnostics; using Tango.MachineStudio.Common.EventLogging; +using Tango.MachineStudio.Common.Html; using Tango.MachineStudio.Common.Modules; using Tango.MachineStudio.Common.Navigation; using Tango.MachineStudio.Common.Notifications; +using Tango.MachineStudio.Common.Speech; using Tango.MachineStudio.Common.StudioApplication; using Tango.MachineStudio.Common.Video; using Tango.MachineStudio.UI.Authentication; +using Tango.MachineStudio.UI.Html; using Tango.MachineStudio.UI.Modules; using Tango.MachineStudio.UI.Navigation; using Tango.MachineStudio.UI.Notifications; @@ -59,6 +62,8 @@ namespace Tango.MachineStudio.UI SimpleIoc.Default.Unregister<IVideoCaptureProvider>(); SimpleIoc.Default.Unregister<IDiagnosticsFrameProvider>(); SimpleIoc.Default.Unregister<IEventLogger>(); + SimpleIoc.Default.Unregister<ISpeechProvider>(); + SimpleIoc.Default.Unregister<IHtmlPresenter>(); SimpleIoc.Default.Register<INotificationProvider, DefaultNotificationProvider>(); SimpleIoc.Default.Register<IAuthenticationProvider, DefaultAuthenticationProvider>(); @@ -69,6 +74,8 @@ namespace Tango.MachineStudio.UI SimpleIoc.Default.Register<IVideoCaptureProvider, DefaultVideoCaptureProvider>(); SimpleIoc.Default.Register<IDiagnosticsFrameProvider, DefaultDiagnosticsFrameProvider>(); SimpleIoc.Default.Register<IEventLogger, DefaultEventLogger>(); + SimpleIoc.Default.Register<ISpeechProvider, DefaultSpeechProvider>(); + SimpleIoc.Default.Register<IHtmlPresenter, DefaultHtmlPresenter>(); SimpleIoc.Default.Register<MainViewVM>(); SimpleIoc.Default.Register<LoadingViewVM>(); 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 c9f4b3441..3cb728395 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/MainViewVM.cs +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/MainViewVM.cs @@ -20,10 +20,12 @@ using Tango.MachineStudio.Common; using Tango.MachineStudio.Common.Authentication; using Tango.MachineStudio.Common.Diagnostics; using Tango.MachineStudio.Common.EventLogging; +using Tango.MachineStudio.Common.Html; using Tango.MachineStudio.Common.Messages; using Tango.MachineStudio.Common.Modules; using Tango.MachineStudio.Common.Navigation; using Tango.MachineStudio.Common.Notifications; +using Tango.MachineStudio.Common.Speech; using Tango.MachineStudio.Common.StudioApplication; using Tango.MachineStudio.Common.Update; using Tango.MachineStudio.UI.StudioApplication; @@ -49,6 +51,7 @@ namespace Tango.MachineStudio.UI.ViewModels private bool _isDisconnecting; private Thread _updateCheckThread; private IEventLogger _eventLogger; + private IHtmlPresenter _htmlPresenter; /// <summary> /// Gets or sets the current loaded module. @@ -129,6 +132,16 @@ namespace Tango.MachineStudio.UI.ViewModels /// </summary> public RelayCommand UpdateCenterCommand { get; set; } + /// <summary> + /// Gets or sets the toggle speech command. + /// </summary> + public RelayCommand ToggleSpeechCommand { get; set; } + + /// <summary> + /// Gets or sets the display HTML command. + /// </summary> + public RelayCommand<MachinesEvent> ResolveMachineEventCommand { get; set; } + private IAuthenticationProvider _authenticationProvider; /// <summary> /// Gets or sets the authentication provider. @@ -169,6 +182,11 @@ namespace Tango.MachineStudio.UI.ViewModels set { _applicationManager = value; RaisePropertyChangedAuto(); } } + /// <summary> + /// Gets or sets the speech provider. + /// </summary> + public ISpeechProvider SpeechProvider { get; set; } + private bool _isUpdateAvailable; /// <summary> /// Gets or sets a value indicating whether a new version update is available. @@ -228,7 +246,9 @@ namespace Tango.MachineStudio.UI.ViewModels IStudioApplicationManager applicationManager, INavigationManager navigationManager, IEventLogger eventLogger, - IDiagnosticsFrameProvider frameProvider) : base(view) + IDiagnosticsFrameProvider frameProvider, + ISpeechProvider speechProvider, + IHtmlPresenter htmlPresenter) : base(view) { _eventLogger = eventLogger; _navigation = navigationManager; @@ -237,6 +257,8 @@ namespace Tango.MachineStudio.UI.ViewModels NotificationProvider = notificationProvider; ApplicationManager = applicationManager; DiagnosticsFrameProvider = frameProvider; + SpeechProvider = speechProvider; + _htmlPresenter = htmlPresenter; StartModuleCommand = new RelayCommand<IStudioModule>(StartModule); @@ -263,6 +285,10 @@ namespace Tango.MachineStudio.UI.ViewModels machine.MachineEventsStateProvider.EventsResolved += MachineEventsStateProvider_EventsResolved; } }; + + ToggleSpeechCommand = new RelayCommand(() => { SpeechProvider.Mute = !SpeechProvider.Mute; }); + + ResolveMachineEventCommand = new RelayCommand<MachinesEvent>(ResolveMachineEvent); } private void MachineEventsStateProvider_EventsResolved(object sender, IEnumerable<MachinesEvent> e) @@ -542,5 +568,17 @@ namespace Tango.MachineStudio.UI.ViewModels { _applicationManager.ShutDown(); } + + /// <summary> + /// Displays the HTML. + /// </summary> + /// <param name="machineEvent">The HTML page.</param> + private void ResolveMachineEvent(MachinesEvent machineEvent) + { + if (_htmlPresenter.DisplayHtml(machineEvent.EventType.HtmlPage)) + { + //Send resolved to embedded ! + } + } } } 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 b7a4cc93f..3301fd9f3 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/MainView.xaml +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/MainView.xaml @@ -172,6 +172,24 @@ </StackPanel> </Button> <Separator/> + <Button Command="{Binding ToggleSpeechCommand}"> + <StackPanel Orientation="Horizontal"> + <materialDesign:PackIcon Width="24" Height="24"> + <materialDesign:PackIcon.Style> + <Style TargetType="materialDesign:PackIcon"> + <Setter Property="Kind" Value="VolumeHigh"></Setter> + <Style.Triggers> + <DataTrigger Binding="{Binding SpeechProvider.Mute}" Value="True"> + <Setter Property="Kind" Value="VolumeOff"></Setter> + </DataTrigger> + </Style.Triggers> + </Style> + </materialDesign:PackIcon.Style> + </materialDesign:PackIcon> + <TextBlock Margin="5 0 0 0" VerticalAlignment="Center">Speech</TextBlock> + </StackPanel> + </Button> + <Separator/> <Button Command="{Binding ExitCommand}"> <StackPanel Orientation="Horizontal"> <materialDesign:PackIcon Kind="CloseCircleOutline" Width="24" Height="24" /> @@ -437,37 +455,59 @@ <ItemsControl.ItemTemplate> <DataTemplate DataType="{x:Type entities:MachinesEvent}"> <Border BorderThickness="0 0 0 1" BorderBrush="#E1E1E1" Padding="5"> - <StackPanel> - <StackPanel Orientation="Horizontal"> - <materialDesign:PackIcon Width="24" Height="24"> - <materialDesign:PackIcon.Style> - <Style TargetType="materialDesign:PackIcon"> - <Setter Property="Kind" Value="AlertCircle"></Setter> - <Setter Property="Foreground" Value="#464646"></Setter> + <DockPanel> + <Grid DockPanel.Dock="Right" HorizontalAlignment="Right" VerticalAlignment="Center"> + <ContentControl> + <ContentControl.Style> + <Style TargetType="ContentControl"> + <Setter Property="Content" Value="{x:Null}"></Setter> <Style.Triggers> - <DataTrigger Binding="{Binding Category}" Value="Warning"> - <Setter Property="Kind" Value="Alert"></Setter> - <Setter Property="Foreground" Value="#FFA300"></Setter> - </DataTrigger> - <DataTrigger Binding="{Binding Category}" Value="Error"> - <Setter Property="Kind" Value="AlertOctagon"></Setter> - <Setter Property="Foreground" Value="#FF5C5C"></Setter> - </DataTrigger> - <DataTrigger Binding="{Binding Category}" Value="Critical"> - <Setter Property="Kind" Value="BellPlus"></Setter> - <Setter Property="Foreground" Value="Red"></Setter> + <DataTrigger Binding="{Binding EventType.HtmlPage,Converter={StaticResource NullObjectToBooleanConverter}}" Value="True"> + <Setter Property="Content"> + <Setter.Value> + <Button Style="{StaticResource emptyButton}" Cursor="Hand" Margin="5" Command="{Binding RelativeSource={RelativeSource AncestorType=UserControl},Path=DataContext.ResolveMachineEventCommand}" CommandParameter="{Binding}"> + <materialDesign:PackIcon Kind="TelevisionGuide" Width="24" Height="24" /> + </Button> + </Setter.Value> + </Setter> </DataTrigger> </Style.Triggers> </Style> - </materialDesign:PackIcon.Style> - </materialDesign:PackIcon> + </ContentControl.Style> + </ContentControl> + </Grid> + <StackPanel> + <StackPanel Orientation="Horizontal"> + <materialDesign:PackIcon Width="24" Height="24"> + <materialDesign:PackIcon.Style> + <Style TargetType="materialDesign:PackIcon"> + <Setter Property="Kind" Value="AlertCircle"></Setter> + <Setter Property="Foreground" Value="#464646"></Setter> + <Style.Triggers> + <DataTrigger Binding="{Binding Category}" Value="Warning"> + <Setter Property="Kind" Value="Alert"></Setter> + <Setter Property="Foreground" Value="#FFA300"></Setter> + </DataTrigger> + <DataTrigger Binding="{Binding Category}" Value="Error"> + <Setter Property="Kind" Value="AlertOctagon"></Setter> + <Setter Property="Foreground" Value="#FF5C5C"></Setter> + </DataTrigger> + <DataTrigger Binding="{Binding Category}" Value="Critical"> + <Setter Property="Kind" Value="BellPlus"></Setter> + <Setter Property="Foreground" Value="Red"></Setter> + </DataTrigger> + </Style.Triggers> + </Style> + </materialDesign:PackIcon.Style> + </materialDesign:PackIcon> - <StackPanel Margin="10 0 0 0" VerticalAlignment="Top"> - <TextBlock Text="{Binding EventType.Name}"></TextBlock> - <TextBlock Margin="0 5 0 0" Text="{Binding Description}" FontSize="10" Foreground="DimGray" TextWrapping="Wrap"></TextBlock> + <StackPanel Margin="10 0 0 0" VerticalAlignment="Top"> + <TextBlock Text="{Binding EventType.Name}"></TextBlock> + <TextBlock Margin="0 5 0 0" Text="{Binding Description}" FontSize="10" Foreground="DimGray" TextWrapping="Wrap"></TextBlock> + </StackPanel> </StackPanel> </StackPanel> - </StackPanel> + </DockPanel> </Border> </DataTemplate> </ItemsControl.ItemTemplate> diff --git a/Software/Visual_Studio/Tango.BL/Entities/EventType.cs b/Software/Visual_Studio/Tango.BL/Entities/EventType.cs index c29bc432d..c999fa016 100644 --- a/Software/Visual_Studio/Tango.BL/Entities/EventType.cs +++ b/Software/Visual_Studio/Tango.BL/Entities/EventType.cs @@ -116,6 +116,27 @@ namespace Tango.BL.Entities } + protected String _htmlpageguid; + /// <summary> + /// Gets or sets the eventtype html page guid. + /// </summary> + [Column("HTML_PAGE_GUID")] + [ForeignKey("HtmlPage")] + + public String HtmlPageGuid + { + get + { + return _htmlpageguid; + } + + set + { + _htmlpageguid = value; RaisePropertyChanged(nameof(HtmlPageGuid)); + } + + } + protected EventTypesGroup _eventtypesgroup; /// <summary> /// Gets or sets the eventtype event types groups. @@ -158,6 +179,27 @@ namespace Tango.BL.Entities } + protected HtmlPage _htmlpage; + /// <summary> + /// Gets or sets the eventtype html pages. + /// </summary> + + [XmlIgnore] + [JsonIgnore] + public virtual HtmlPage HtmlPage + { + get + { + return _htmlpage; + } + + set + { + _htmlpage = value; RaisePropertyChanged(nameof(HtmlPage)); + } + + } + protected ObservableCollection<EventTypesAction> _eventtypesactions; /// <summary> /// Gets or sets the eventtype event types actions. diff --git a/Software/Visual_Studio/Tango.BL/Entities/HardwareDancer.cs b/Software/Visual_Studio/Tango.BL/Entities/HardwareDancer.cs index 3118d7421..65997b195 100644 --- a/Software/Visual_Studio/Tango.BL/Entities/HardwareDancer.cs +++ b/Software/Visual_Studio/Tango.BL/Entities/HardwareDancer.cs @@ -136,6 +136,26 @@ namespace Tango.BL.Entities } + protected Int32 _zeropoint; + /// <summary> + /// Gets or sets the hardwaredancer zero point. + /// </summary> + [Column("ZERO_POINT")] + + public Int32 ZeroPoint + { + get + { + return _zeropoint; + } + + set + { + _zeropoint = value; RaisePropertyChanged(nameof(ZeroPoint)); + } + + } + protected HardwareDancerType _hardwaredancertype; /// <summary> /// Gets or sets the hardwaredancer hardware dancer types. diff --git a/Software/Visual_Studio/Tango.BL/Entities/HtmlPage.cs b/Software/Visual_Studio/Tango.BL/Entities/HtmlPage.cs new file mode 100644 index 000000000..141049c96 --- /dev/null +++ b/Software/Visual_Studio/Tango.BL/Entities/HtmlPage.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.BL.Entities +{ + [Table("HTML_PAGES")] + public partial class HtmlPage : ObservableEntity<HtmlPage> + { + + protected Int32 _code; + /// <summary> + /// Gets or sets the htmlpage code. + /// </summary> + [Column("CODE")] + + public Int32 Code + { + get + { + return _code; + } + + set + { + _code = value; RaisePropertyChanged(nameof(Code)); + } + + } + + protected String _name; + /// <summary> + /// Gets or sets the htmlpage name. + /// </summary> + [Column("NAME")] + + public String Name + { + get + { + return _name; + } + + set + { + _name = value; RaisePropertyChanged(nameof(Name)); + } + + } + + protected String _description; + /// <summary> + /// Gets or sets the htmlpage description. + /// </summary> + [Column("DESCRIPTION")] + + public String Description + { + get + { + return _description; + } + + set + { + _description = value; RaisePropertyChanged(nameof(Description)); + } + + } + + protected String _html; + /// <summary> + /// Gets or sets the htmlpage html. + /// </summary> + [Column("HTML")] + + public String Html + { + get + { + return _html; + } + + set + { + _html = value; RaisePropertyChanged(nameof(Html)); + } + + } + + protected ObservableCollection<EventType> _eventtypes; + /// <summary> + /// Gets or sets the htmlpage event types. + /// </summary> + + public virtual ObservableCollection<EventType> EventTypes + { + get + { + return _eventtypes; + } + + set + { + _eventtypes = value; RaisePropertyChanged(nameof(EventTypes)); + } + + } + + /// <summary> + /// Initializes a new instance of the <see cref="HtmlPage" /> class. + /// </summary> + public HtmlPage() : base() + { + + EventTypes = new ObservableCollection<EventType>(); + + } + } +} diff --git a/Software/Visual_Studio/Tango.BL/Enumerations/ActionTypes.cs b/Software/Visual_Studio/Tango.BL/Enumerations/ActionTypes.cs index e8a46921c..a95d35cd7 100644 --- a/Software/Visual_Studio/Tango.BL/Enumerations/ActionTypes.cs +++ b/Software/Visual_Studio/Tango.BL/Enumerations/ActionTypes.cs @@ -39,5 +39,11 @@ namespace Tango.BL.Enumerations [Description("Displays a graceful notification to the user")] SoftVisualNotification = 4, + /// <summary> + /// (Displays a guide and requires confirmation) + /// </summary> + [Description("Displays a guide and requires confirmation")] + DisplayGuideAndConfirm = 5, + } } diff --git a/Software/Visual_Studio/Tango.BL/Enumerations/HtmlPages.cs b/Software/Visual_Studio/Tango.BL/Enumerations/HtmlPages.cs new file mode 100644 index 000000000..63cac9321 --- /dev/null +++ b/Software/Visual_Studio/Tango.BL/Enumerations/HtmlPages.cs @@ -0,0 +1,19 @@ +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Linq; +using System.ComponentModel; + +namespace Tango.BL.Enumerations +{ + public enum HtmlPages + { + + /// <summary> + /// (Some Test Guide) + /// </summary> + [Description("Some Test Guide")] + Test = 0, + + } +} diff --git a/Software/Visual_Studio/Tango.BL/ObservablesContext.cs b/Software/Visual_Studio/Tango.BL/ObservablesContext.cs index a3701aea1..cfeccaeb6 100644 --- a/Software/Visual_Studio/Tango.BL/ObservablesContext.cs +++ b/Software/Visual_Studio/Tango.BL/ObservablesContext.cs @@ -269,6 +269,14 @@ namespace Tango.BL } /// <summary> + /// Gets or sets the HtmlPages. + /// </summary> + public DbSet<HtmlPage> HtmlPages + { + get; set; + } + + /// <summary> /// Gets or sets the IdsPackFormulas. /// </summary> public DbSet<IdsPackFormula> IdsPackFormulas diff --git a/Software/Visual_Studio/Tango.BL/ObservablesEntitiesAdapterExtension.cs b/Software/Visual_Studio/Tango.BL/ObservablesEntitiesAdapterExtension.cs index 08e192a2f..c3be8cb1e 100644 --- a/Software/Visual_Studio/Tango.BL/ObservablesEntitiesAdapterExtension.cs +++ b/Software/Visual_Studio/Tango.BL/ObservablesEntitiesAdapterExtension.cs @@ -1159,6 +1159,42 @@ namespace Tango.BL } + private ObservableCollection<HtmlPage> _htmlpages; + /// <summary> + /// Gets or sets the HtmlPages. + /// </summary> + public ObservableCollection<HtmlPage> HtmlPages + { + get + { + return _htmlpages; + } + + set + { + _htmlpages = value; RaisePropertyChanged(nameof(HtmlPages)); + } + + } + + private ICollectionView _htmlpagesViewSource; + /// <summary> + /// Gets or sets the HtmlPages View Source. + ///</summary> + public ICollectionView HtmlPagesViewSource + { + get + { + return _htmlpagesViewSource; + } + + set + { + _htmlpagesViewSource = value; RaisePropertyChanged(nameof(HtmlPagesViewSource)); + } + + } + private ObservableCollection<IdsPackFormula> _idspackformulas; /// <summary> /// Gets or sets the IdsPackFormulas. @@ -2525,6 +2561,8 @@ namespace Tango.BL HardwareWindersViewSource = CreateCollectionView(HardwareWinders); + HtmlPagesViewSource = CreateCollectionView(HtmlPages); + IdsPackFormulasViewSource = CreateCollectionView(IdsPackFormulas); IdsPacksViewSource = CreateCollectionView(IdsPacks); diff --git a/Software/Visual_Studio/Tango.BL/Tango.BL.csproj b/Software/Visual_Studio/Tango.BL/Tango.BL.csproj index 04c1b0a6b..bdcb8a91d 100644 --- a/Software/Visual_Studio/Tango.BL/Tango.BL.csproj +++ b/Software/Visual_Studio/Tango.BL/Tango.BL.csproj @@ -92,6 +92,7 @@ <Compile Include="EntitiesExtensions\MachineEvent.cs" /> <Compile Include="Entities\EventTypesCategory.cs" /> <Compile Include="Entities\EventTypesGroup.cs" /> + <Compile Include="Entities\HtmlPage.cs" /> <Compile Include="Entities\TechController.cs" /> <Compile Include="Enumerations\ActionTypes.cs" /> <Compile Include="Enumerations\EventTypes.cs" /> diff --git a/Software/Visual_Studio/Tango.DAL.Remote/DB/EVENT_TYPES.cs b/Software/Visual_Studio/Tango.DAL.Remote/DB/EVENT_TYPES.cs index 8fd81fd24..5447968ec 100644 --- a/Software/Visual_Studio/Tango.DAL.Remote/DB/EVENT_TYPES.cs +++ b/Software/Visual_Studio/Tango.DAL.Remote/DB/EVENT_TYPES.cs @@ -29,9 +29,11 @@ namespace Tango.DAL.Remote.DB public string DESCRIPTION { get; set; } public string EVENT_TYPES_CATEGORY_GUID { get; set; } public string EVENT_TYPES_GROUP_GUID { get; set; } + public string HTML_PAGE_GUID { get; set; } public virtual EVENT_TYPES_GROUPS EVENT_TYPES_GROUPS { get; set; } public virtual EVENT_TYPES_CATEGORIES EVENT_TYPES_CATEGORIES { get; set; } + public virtual HTML_PAGES HTML_PAGES { get; set; } [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")] public virtual ICollection<EVENT_TYPES_ACTIONS> EVENT_TYPES_ACTIONS { get; set; } [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")] diff --git a/Software/Visual_Studio/Tango.DAL.Remote/DB/HARDWARE_DANCERS.cs b/Software/Visual_Studio/Tango.DAL.Remote/DB/HARDWARE_DANCERS.cs index 58f60dc58..21f6d2e84 100644 --- a/Software/Visual_Studio/Tango.DAL.Remote/DB/HARDWARE_DANCERS.cs +++ b/Software/Visual_Studio/Tango.DAL.Remote/DB/HARDWARE_DANCERS.cs @@ -23,6 +23,7 @@ namespace Tango.DAL.Remote.DB public double K { get; set; } public double X { get; set; } public int PULSE_PER_MM_SPRING { get; set; } + public int ZERO_POINT { get; set; } public virtual HARDWARE_DANCER_TYPES HARDWARE_DANCER_TYPES { get; set; } public virtual HARDWARE_VERSIONS HARDWARE_VERSIONS { get; set; } diff --git a/Software/Visual_Studio/Tango.DAL.Remote/DB/HTML_PAGES.cs b/Software/Visual_Studio/Tango.DAL.Remote/DB/HTML_PAGES.cs new file mode 100644 index 000000000..f0b1932c1 --- /dev/null +++ b/Software/Visual_Studio/Tango.DAL.Remote/DB/HTML_PAGES.cs @@ -0,0 +1,34 @@ +//------------------------------------------------------------------------------ +// <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 HTML_PAGES + { + [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")] + public HTML_PAGES() + { + this.EVENT_TYPES = new HashSet<EVENT_TYPES>(); + } + + public int ID { get; set; } + public string GUID { get; set; } + public System.DateTime LAST_UPDATED { get; set; } + public int CODE { get; set; } + public string NAME { get; set; } + public string DESCRIPTION { get; set; } + public string HTML { get; set; } + + [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")] + public virtual ICollection<EVENT_TYPES> EVENT_TYPES { 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 10da7a03b..06a12e5c7 100644 --- a/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.Context.cs +++ b/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.Context.cs @@ -57,6 +57,7 @@ namespace Tango.DAL.Remote.DB public virtual DbSet<HARDWARE_VERSIONS> HARDWARE_VERSIONS { get; set; } public virtual DbSet<HARDWARE_WINDER_TYPES> HARDWARE_WINDER_TYPES { get; set; } public virtual DbSet<HARDWARE_WINDERS> HARDWARE_WINDERS { get; set; } + public virtual DbSet<HTML_PAGES> HTML_PAGES { get; set; } public virtual DbSet<IDS_PACK_FORMULAS> IDS_PACK_FORMULAS { get; set; } public virtual DbSet<IDS_PACKS> IDS_PACKS { get; set; } public virtual DbSet<JOB_RUNS> JOB_RUNS { 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 058977e64..0985da6fe 100644 --- a/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx +++ b/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx @@ -271,6 +271,7 @@ <Property Name="DESCRIPTION" Type="nvarchar" MaxLength="100" Nullable="false" /> <Property Name="EVENT_TYPES_CATEGORY_GUID" Type="varchar" MaxLength="36" Nullable="false" /> <Property Name="EVENT_TYPES_GROUP_GUID" Type="varchar" MaxLength="36" Nullable="false" /> + <Property Name="HTML_PAGE_GUID" Type="varchar" MaxLength="36" /> </EntityType> <EntityType Name="EVENT_TYPES_ACTIONS"> <Key> @@ -348,6 +349,7 @@ <Property Name="K" Type="float" Nullable="false" /> <Property Name="X" Type="float" Nullable="false" /> <Property Name="PULSE_PER_MM_SPRING" Type="int" Nullable="false" /> + <Property Name="ZERO_POINT" Type="int" Nullable="false" /> </EntityType> <EntityType Name="HARDWARE_MOTOR_TYPES"> <Key> @@ -453,6 +455,18 @@ <Property Name="HARDWARE_VERSION_GUID" Type="varchar" MaxLength="36" Nullable="false" /> <Property Name="MILLIMETER_PER_ROTATION" Type="int" Nullable="false" /> </EntityType> + <EntityType Name="HTML_PAGES"> + <Key> + <PropertyRef Name="GUID" /> + </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="CODE" Type="int" Nullable="false" /> + <Property Name="NAME" Type="varchar" MaxLength="50" Nullable="false" /> + <Property Name="DESCRIPTION" Type="varchar" MaxLength="100" Nullable="false" /> + <Property Name="HTML" Type="nvarchar(max)" /> + </EntityType> <EntityType Name="IDS_PACK_FORMULAS"> <Key> <PropertyRef Name="GUID" /> @@ -1158,6 +1172,18 @@ </Dependent> </ReferentialConstraint> </Association> + <Association Name="FK_EVENT_TYPES_HTML_PAGES"> + <End Role="HTML_PAGES" Type="Self.HTML_PAGES" Multiplicity="0..1" /> + <End Role="EVENT_TYPES" Type="Self.EVENT_TYPES" Multiplicity="*" /> + <ReferentialConstraint> + <Principal Role="HTML_PAGES"> + <PropertyRef Name="GUID" /> + </Principal> + <Dependent Role="EVENT_TYPES"> + <PropertyRef Name="HTML_PAGE_GUID" /> + </Dependent> + </ReferentialConstraint> + </Association> <Association Name="FK_EVENTS_ACTIONS_ACTIONS"> <End Role="ACTION_TYPES" Type="Self.ACTION_TYPES" Multiplicity="1"> <OnDelete Action="Cascade" /> @@ -1869,6 +1895,7 @@ <EntitySet Name="HARDWARE_VERSIONS" EntityType="Self.HARDWARE_VERSIONS" Schema="dbo" store:Type="Tables" /> <EntitySet Name="HARDWARE_WINDER_TYPES" EntityType="Self.HARDWARE_WINDER_TYPES" Schema="dbo" store:Type="Tables" /> <EntitySet Name="HARDWARE_WINDERS" EntityType="Self.HARDWARE_WINDERS" Schema="dbo" store:Type="Tables" /> + <EntitySet Name="HTML_PAGES" EntityType="Self.HTML_PAGES" Schema="dbo" store:Type="Tables" /> <EntitySet Name="IDS_PACK_FORMULAS" EntityType="Self.IDS_PACK_FORMULAS" Schema="dbo" store:Type="Tables" /> <EntitySet Name="IDS_PACKS" EntityType="Self.IDS_PACKS" Schema="dbo" store:Type="Tables" /> <EntitySet Name="JOB_RUNS" EntityType="Self.JOB_RUNS" Schema="dbo" store:Type="Tables" /> @@ -1977,6 +2004,10 @@ <End Role="EVENT_TYPES_CATEGORIES" EntitySet="EVENT_TYPES_CATEGORIES" /> <End Role="EVENT_TYPES" EntitySet="EVENT_TYPES" /> </AssociationSet> + <AssociationSet Name="FK_EVENT_TYPES_HTML_PAGES" Association="Self.FK_EVENT_TYPES_HTML_PAGES"> + <End Role="HTML_PAGES" EntitySet="HTML_PAGES" /> + <End Role="EVENT_TYPES" EntitySet="EVENT_TYPES" /> + </AssociationSet> <AssociationSet Name="FK_EVENTS_ACTIONS_ACTIONS" Association="Self.FK_EVENTS_ACTIONS_ACTIONS"> <End Role="ACTION_TYPES" EntitySet="ACTION_TYPES" /> <End Role="EVENT_TYPES_ACTIONS" EntitySet="EVENT_TYPES_ACTIONS" /> @@ -2223,6 +2254,7 @@ <EntitySet Name="HARDWARE_VERSIONS" EntityType="RemoteModel.HARDWARE_VERSIONS" /> <EntitySet Name="HARDWARE_WINDER_TYPES" EntityType="RemoteModel.HARDWARE_WINDER_TYPES" /> <EntitySet Name="HARDWARE_WINDERS" EntityType="RemoteModel.HARDWARE_WINDERS" /> + <EntitySet Name="HTML_PAGES" EntityType="RemoteModel.HTML_PAGES" /> <EntitySet Name="IDS_PACK_FORMULAS" EntityType="RemoteModel.IDS_PACK_FORMULAS" /> <EntitySet Name="IDS_PACKS" EntityType="RemoteModel.IDS_PACKS" /> <EntitySet Name="JOB_RUNS" EntityType="RemoteModel.JOB_RUNS" /> @@ -2371,6 +2403,10 @@ <End Role="EVENT_TYPES_CATEGORIES" EntitySet="EVENT_TYPES_CATEGORIES" /> <End Role="EVENT_TYPES" EntitySet="EVENT_TYPES" /> </AssociationSet> + <AssociationSet Name="FK_EVENT_TYPES_HTML_PAGES" Association="RemoteModel.FK_EVENT_TYPES_HTML_PAGES"> + <End Role="HTML_PAGES" EntitySet="HTML_PAGES" /> + <End Role="EVENT_TYPES" EntitySet="EVENT_TYPES" /> + </AssociationSet> <AssociationSet Name="FK_EVENTS_ACTIONS_EVENTS" Association="RemoteModel.FK_EVENTS_ACTIONS_EVENTS"> <End Role="EVENT_TYPES" EntitySet="EVENT_TYPES" /> <End Role="EVENT_TYPES_ACTIONS" EntitySet="EVENT_TYPES_ACTIONS" /> @@ -2841,8 +2877,10 @@ <Property Name="DESCRIPTION" Type="String" Nullable="false" MaxLength="100" FixedLength="false" Unicode="true" /> <Property Name="EVENT_TYPES_CATEGORY_GUID" Type="String" Nullable="false" MaxLength="36" FixedLength="false" Unicode="false" /> <Property Name="EVENT_TYPES_GROUP_GUID" Type="String" Nullable="false" MaxLength="36" FixedLength="false" Unicode="false" /> + <Property Name="HTML_PAGE_GUID" Type="String" MaxLength="36" FixedLength="false" Unicode="false" /> <NavigationProperty Name="EVENT_TYPES_GROUPS" Relationship="RemoteModel.FK_EVENT_TYPES_EVENT_TYPES_CATEGORIES" FromRole="EVENT_TYPES" ToRole="EVENT_TYPES_GROUPS" /> <NavigationProperty Name="EVENT_TYPES_CATEGORIES" Relationship="RemoteModel.FK_EVENT_TYPES_EVENT_TYPES_CATEGORIES1" FromRole="EVENT_TYPES" ToRole="EVENT_TYPES_CATEGORIES" /> + <NavigationProperty Name="HTML_PAGES" Relationship="RemoteModel.FK_EVENT_TYPES_HTML_PAGES" FromRole="EVENT_TYPES" ToRole="HTML_PAGES" /> <NavigationProperty Name="EVENT_TYPES_ACTIONS" Relationship="RemoteModel.FK_EVENTS_ACTIONS_EVENTS" FromRole="EVENT_TYPES" ToRole="EVENT_TYPES_ACTIONS" /> <NavigationProperty Name="MACHINES_EVENTS" Relationship="RemoteModel.FK_MACHINES_EVENTS_EVENTS" FromRole="EVENT_TYPES" ToRole="MACHINES_EVENTS" /> </EntityType> @@ -2929,6 +2967,7 @@ <Property Name="K" Type="Double" Nullable="false" /> <Property Name="X" Type="Double" Nullable="false" /> <Property Name="PULSE_PER_MM_SPRING" Type="Int32" Nullable="false" /> + <Property Name="ZERO_POINT" Type="Int32" Nullable="false" /> <NavigationProperty Name="HARDWARE_DANCER_TYPES" Relationship="RemoteModel.FK_HARDWARE_DANCERS_HARDWARE_DANCER_TYPES" FromRole="HARDWARE_DANCERS" ToRole="HARDWARE_DANCER_TYPES" /> <NavigationProperty Name="HARDWARE_VERSIONS" Relationship="RemoteModel.FK_HARDWARE_DANCERS_HARDWARE_VERSIONS" FromRole="HARDWARE_DANCERS" ToRole="HARDWARE_VERSIONS" /> </EntityType> @@ -3050,6 +3089,19 @@ <NavigationProperty Name="HARDWARE_VERSIONS" Relationship="RemoteModel.FK_HARDWARE_WINDERS_HARDWARE_VERSIONS" FromRole="HARDWARE_WINDERS" ToRole="HARDWARE_VERSIONS" /> <NavigationProperty Name="HARDWARE_WINDER_TYPES" Relationship="RemoteModel.FK_HARDWARE_WINDERS_HARDWARE_WINDER_TYPES" FromRole="HARDWARE_WINDERS" ToRole="HARDWARE_WINDER_TYPES" /> </EntityType> + <EntityType Name="HTML_PAGES"> + <Key> + <PropertyRef Name="GUID" /> + </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="CODE" Type="Int32" Nullable="false" /> + <Property Name="NAME" Type="String" Nullable="false" MaxLength="50" FixedLength="false" Unicode="false" /> + <Property Name="DESCRIPTION" Type="String" Nullable="false" MaxLength="100" FixedLength="false" Unicode="false" /> + <Property Name="HTML" Type="String" MaxLength="Max" FixedLength="false" Unicode="true" /> + <NavigationProperty Name="EVENT_TYPES" Relationship="RemoteModel.FK_EVENT_TYPES_HTML_PAGES" FromRole="HTML_PAGES" ToRole="EVENT_TYPES" /> + </EntityType> <EntityType Name="IDS_PACK_FORMULAS"> <Key> <PropertyRef Name="GUID" /> @@ -3967,6 +4019,18 @@ </Dependent> </ReferentialConstraint> </Association> + <Association Name="FK_EVENT_TYPES_HTML_PAGES"> + <End Type="RemoteModel.HTML_PAGES" Role="HTML_PAGES" Multiplicity="0..1" /> + <End Type="RemoteModel.EVENT_TYPES" Role="EVENT_TYPES" Multiplicity="*" /> + <ReferentialConstraint> + <Principal Role="HTML_PAGES"> + <PropertyRef Name="GUID" /> + </Principal> + <Dependent Role="EVENT_TYPES"> + <PropertyRef Name="HTML_PAGE_GUID" /> + </Dependent> + </ReferentialConstraint> + </Association> <Association Name="FK_EVENTS_ACTIONS_EVENTS"> <End Type="RemoteModel.EVENT_TYPES" Role="EVENT_TYPES" Multiplicity="1"> <OnDelete Action="Cascade" /> @@ -4791,6 +4855,7 @@ <EntitySetMapping Name="EVENT_TYPES"> <EntityTypeMapping TypeName="RemoteModel.EVENT_TYPES"> <MappingFragment StoreEntitySet="EVENT_TYPES"> + <ScalarProperty Name="HTML_PAGE_GUID" ColumnName="HTML_PAGE_GUID" /> <ScalarProperty Name="EVENT_TYPES_GROUP_GUID" ColumnName="EVENT_TYPES_GROUP_GUID" /> <ScalarProperty Name="EVENT_TYPES_CATEGORY_GUID" ColumnName="EVENT_TYPES_CATEGORY_GUID" /> <ScalarProperty Name="DESCRIPTION" ColumnName="DESCRIPTION" /> @@ -4874,6 +4939,7 @@ <EntitySetMapping Name="HARDWARE_DANCERS"> <EntityTypeMapping TypeName="RemoteModel.HARDWARE_DANCERS"> <MappingFragment StoreEntitySet="HARDWARE_DANCERS"> + <ScalarProperty Name="ZERO_POINT" ColumnName="ZERO_POINT" /> <ScalarProperty Name="PULSE_PER_MM_SPRING" ColumnName="PULSE_PER_MM_SPRING" /> <ScalarProperty Name="X" ColumnName="X" /> <ScalarProperty Name="K" ColumnName="K" /> @@ -4997,6 +5063,19 @@ </MappingFragment> </EntityTypeMapping> </EntitySetMapping> + <EntitySetMapping Name="HTML_PAGES"> + <EntityTypeMapping TypeName="RemoteModel.HTML_PAGES"> + <MappingFragment StoreEntitySet="HTML_PAGES"> + <ScalarProperty Name="HTML" ColumnName="HTML" /> + <ScalarProperty Name="DESCRIPTION" ColumnName="DESCRIPTION" /> + <ScalarProperty Name="NAME" ColumnName="NAME" /> + <ScalarProperty Name="CODE" ColumnName="CODE" /> + <ScalarProperty Name="LAST_UPDATED" ColumnName="LAST_UPDATED" /> + <ScalarProperty Name="GUID" ColumnName="GUID" /> + <ScalarProperty Name="ID" ColumnName="ID" /> + </MappingFragment> + </EntityTypeMapping> + </EntitySetMapping> <EntitySetMapping Name="IDS_PACK_FORMULAS"> <EntityTypeMapping TypeName="RemoteModel.IDS_PACK_FORMULAS"> <MappingFragment StoreEntitySet="IDS_PACK_FORMULAS"> 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 cc3421bd6..a77d11e6e 100644 --- a/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx.diagram +++ b/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx.diagram @@ -5,74 +5,75 @@ <!-- Diagram content (shape and connector positions) --> <edmx:Diagrams> <Diagram DiagramId="f9ae01d708754bbd997add25a4bacc79" Name="Diagram1"> - <EntityTypeShape EntityType="RemoteModel.ACTION_TYPES" Width="1.5" PointX="3" PointY="94.875" /> - <EntityTypeShape EntityType="RemoteModel.ADDRESS" Width="1.5" PointX="1.5" PointY="40.25" /> - <EntityTypeShape EntityType="RemoteModel.APPLICATION_DISPLAY_PANEL_VERSIONS" Width="1.5" PointX="1.5" PointY="70.75" /> - <EntityTypeShape EntityType="RemoteModel.APPLICATION_FIRMWARE_VERSIONS" Width="1.5" PointX="1.5" PointY="76.625" /> - <EntityTypeShape EntityType="RemoteModel.APPLICATION_OS_VERSIONS" Width="1.5" PointX="1.5" PointY="57" /> - <EntityTypeShape EntityType="RemoteModel.APPLICATION_VERSIONS" Width="1.5" PointX="1.5" PointY="79.625" /> - <EntityTypeShape EntityType="RemoteModel.BRUSH_STOPS" Width="1.5" PointX="10.75" PointY="10.875" /> - <EntityTypeShape EntityType="RemoteModel.CARTRIDGE_TYPES" Width="1.5" PointX="6" PointY="42.375" /> - <EntityTypeShape EntityType="RemoteModel.CAT" Width="1.5" PointX="8.25" PointY="17" /> - <EntityTypeShape EntityType="RemoteModel.CCT" Width="1.5" PointX="5.25" PointY="28.25" /> - <EntityTypeShape EntityType="RemoteModel.COLOR_CATALOGS" Width="1.5" PointX="8.5" PointY="2.25" /> - <EntityTypeShape EntityType="RemoteModel.COLOR_SPACES" Width="1.5" PointX="6.25" PointY="4" /> - <EntityTypeShape EntityType="RemoteModel.CONFIGURATION" Width="1.5" PointX="0.75" PointY="64.5" /> - <EntityTypeShape EntityType="RemoteModel.CONTACT" Width="1.5" PointX="1.5" PointY="52.625" /> - <EntityTypeShape EntityType="RemoteModel.DISPENSER_TYPES" Width="1.5" PointX="6" PointY="45.375" /> - <EntityTypeShape EntityType="RemoteModel.EMBEDDED_FIRMWARE_VERSIONS" Width="1.5" PointX="1.5" PointY="73.75" /> - <EntityTypeShape EntityType="RemoteModel.EMBEDDED_SOFTWARE_VERSIONS" Width="1.5" PointX="1.5" PointY="59.875" /> - <EntityTypeShape EntityType="RemoteModel.EVENT_TYPES" Width="1.5" PointX="3" PointY="4.25" /> + <EntityTypeShape EntityType="RemoteModel.ACTION_TYPES" Width="1.5" PointX="3" PointY="84.875" /> + <EntityTypeShape EntityType="RemoteModel.ADDRESS" Width="1.5" PointX="1.5" PointY="75.875" /> + <EntityTypeShape EntityType="RemoteModel.APPLICATION_DISPLAY_PANEL_VERSIONS" Width="1.5" PointX="1.5" PointY="53.5" /> + <EntityTypeShape EntityType="RemoteModel.APPLICATION_FIRMWARE_VERSIONS" Width="1.5" PointX="1.5" PointY="56.375" /> + <EntityTypeShape EntityType="RemoteModel.APPLICATION_OS_VERSIONS" Width="1.5" PointX="1.5" PointY="37.625" /> + <EntityTypeShape EntityType="RemoteModel.APPLICATION_VERSIONS" Width="1.5" PointX="1.5" PointY="40.5" /> + <EntityTypeShape EntityType="RemoteModel.BRUSH_STOPS" Width="1.5" PointX="9.75" PointY="8.125" /> + <EntityTypeShape EntityType="RemoteModel.CARTRIDGE_TYPES" Width="1.5" PointX="8" PointY="42.75" /> + <EntityTypeShape EntityType="RemoteModel.CAT" Width="1.5" PointX="8.25" PointY="17.625" /> + <EntityTypeShape EntityType="RemoteModel.CCT" Width="1.5" PointX="5.25" PointY="28.875" /> + <EntityTypeShape EntityType="RemoteModel.COLOR_CATALOGS" Width="1.5" PointX="7.5" PointY="2.5" /> + <EntityTypeShape EntityType="RemoteModel.COLOR_SPACES" Width="1.5" PointX="5.25" PointY="4.25" /> + <EntityTypeShape EntityType="RemoteModel.CONFIGURATION" Width="1.5" PointX="0.75" PointY="45.125" /> + <EntityTypeShape EntityType="RemoteModel.CONTACT" Width="1.5" PointX="1.5" PointY="80.125" /> + <EntityTypeShape EntityType="RemoteModel.DISPENSER_TYPES" Width="1.5" PointX="8" PointY="27" /> + <EntityTypeShape EntityType="RemoteModel.EMBEDDED_FIRMWARE_VERSIONS" Width="1.5" PointX="1.5" PointY="59.25" /> + <EntityTypeShape EntityType="RemoteModel.EMBEDDED_SOFTWARE_VERSIONS" Width="1.5" PointX="1.5" PointY="65.875" /> + <EntityTypeShape EntityType="RemoteModel.EVENT_TYPES" Width="1.5" PointX="3" PointY="3.125" /> <EntityTypeShape EntityType="RemoteModel.EVENT_TYPES_ACTIONS" Width="1.5" PointX="5.25" PointY="0.75" /> - <EntityTypeShape EntityType="RemoteModel.EVENT_TYPES_CATEGORIES" Width="1.5" PointX="0.75" PointY="6" /> - <EntityTypeShape EntityType="RemoteModel.EVENT_TYPES_GROUPS" Width="1.5" PointX="0.75" PointY="2.125" /> - <EntityTypeShape EntityType="RemoteModel.FIBER_SHAPES" Width="1.5" PointX="0.75" PointY="17.5" /> - <EntityTypeShape EntityType="RemoteModel.FIBER_SYNTHS" Width="1.5" PointX="0.75" PointY="20.875" /> - <EntityTypeShape EntityType="RemoteModel.HARDWARE_DANCER_TYPES" Width="1.5" PointX="4.5" PointY="77.75" /> - <EntityTypeShape EntityType="RemoteModel.HARDWARE_DANCERS" Width="1.5" PointX="6.75" PointY="78.375" /> - <EntityTypeShape EntityType="RemoteModel.HARDWARE_MOTOR_TYPES" Width="1.5" PointX="4.5" PointY="91.75" /> - <EntityTypeShape EntityType="RemoteModel.HARDWARE_MOTORS" Width="1.5" PointX="6.75" PointY="86.375" /> - <EntityTypeShape EntityType="RemoteModel.HARDWARE_PID_CONTROL_TYPES" Width="1.5" PointX="1.5" PointY="86.75" /> - <EntityTypeShape EntityType="RemoteModel.HARDWARE_PID_CONTROLS" Width="1.5" PointX="3.75" PointY="81.25" /> - <EntityTypeShape EntityType="RemoteModel.HARDWARE_VERSIONS" Width="1.5" PointX="1.5" PointY="82.5" /> - <EntityTypeShape EntityType="RemoteModel.HARDWARE_WINDER_TYPES" Width="1.5" PointX="4.5" PointY="87.75" /> - <EntityTypeShape EntityType="RemoteModel.HARDWARE_WINDERS" Width="1.5" PointX="6.75" PointY="82.625" /> - <EntityTypeShape EntityType="RemoteModel.IDS_PACK_FORMULAS" Width="1.5" PointX="6" PointY="51" /> - <EntityTypeShape EntityType="RemoteModel.IDS_PACKS" Width="1.5" PointX="8.25" PointY="43.375" /> - <EntityTypeShape EntityType="RemoteModel.JOB_RUNS" Width="1.5" PointX="7.5" PointY="9.5" /> - <EntityTypeShape EntityType="RemoteModel.JOB" Width="1.5" PointX="5.25" PointY="9.375" /> - <EntityTypeShape EntityType="RemoteModel.LINEAR_MASS_DENSITY_UNITS" Width="1.5" PointX="0.75" PointY="26.625" /> - <EntityTypeShape EntityType="RemoteModel.LIQUID_TYPES" Width="1.5" PointX="6" PointY="21.125" /> - <EntityTypeShape EntityType="RemoteModel.LIQUID_TYPES_RMLS" Width="1.5" PointX="5.25" PointY="17.25" /> - <EntityTypeShape EntityType="RemoteModel.MACHINE_STUDIO_VERSIONS" Width="1.5" PointX="5.25" PointY="65.125" /> - <EntityTypeShape EntityType="RemoteModel.MACHINE_VERSIONS" Width="1.5" PointX="0.75" PointY="44.625" /> - <EntityTypeShape EntityType="RemoteModel.MACHINE" Width="1.5" PointX="3" PointY="47.125" /> - <EntityTypeShape EntityType="RemoteModel.MACHINES_CONFIGURATIONS" Width="1.5" PointX="5.25" PointY="57.375" /> + <EntityTypeShape EntityType="RemoteModel.EVENT_TYPES_CATEGORIES" Width="1.5" PointX="0.75" PointY="7" /> + <EntityTypeShape EntityType="RemoteModel.EVENT_TYPES_GROUPS" Width="1.5" PointX="0.75" PointY="3.125" /> + <EntityTypeShape EntityType="RemoteModel.FIBER_SHAPES" Width="1.5" PointX="0.75" PointY="30.625" /> + <EntityTypeShape EntityType="RemoteModel.FIBER_SYNTHS" Width="1.5" PointX="0.75" PointY="21.5" /> + <EntityTypeShape EntityType="RemoteModel.HARDWARE_DANCER_TYPES" Width="1.5" PointX="4.5" PointY="71.5" /> + <EntityTypeShape EntityType="RemoteModel.HARDWARE_DANCERS" Width="1.5" PointX="6.75" PointY="62" /> + <EntityTypeShape EntityType="RemoteModel.HARDWARE_MOTOR_TYPES" Width="1.5" PointX="1.5" PointY="92.5" /> + <EntityTypeShape EntityType="RemoteModel.HARDWARE_MOTORS" Width="1.5" PointX="3.75" PointY="61.125" /> + <EntityTypeShape EntityType="RemoteModel.HARDWARE_PID_CONTROL_TYPES" Width="1.5" PointX="1.5" PointY="88.5" /> + <EntityTypeShape EntityType="RemoteModel.HARDWARE_PID_CONTROLS" Width="1.5" PointX="3.75" PointY="55" /> + <EntityTypeShape EntityType="RemoteModel.HARDWARE_VERSIONS" Width="1.5" PointX="1.5" PointY="62.25" /> + <EntityTypeShape EntityType="RemoteModel.HARDWARE_WINDER_TYPES" Width="1.5" PointX="4.5" PointY="67.5" /> + <EntityTypeShape EntityType="RemoteModel.HARDWARE_WINDERS" Width="1.5" PointX="6.75" PointY="58.375" /> + <EntityTypeShape EntityType="RemoteModel.HTML_PAGES" Width="1.5" PointX="0.75" PointY="84.25" /> + <EntityTypeShape EntityType="RemoteModel.IDS_PACK_FORMULAS" Width="1.5" PointX="8" PointY="45.75" /> + <EntityTypeShape EntityType="RemoteModel.IDS_PACKS" Width="1.5" PointX="10.25" PointY="34" /> + <EntityTypeShape EntityType="RemoteModel.JOB_RUNS" Width="1.5" PointX="7.5" PointY="13.75" /> + <EntityTypeShape EntityType="RemoteModel.JOB" Width="1.5" PointX="5.25" PointY="10" /> + <EntityTypeShape EntityType="RemoteModel.LINEAR_MASS_DENSITY_UNITS" Width="1.5" PointX="0.75" PointY="27.75" /> + <EntityTypeShape EntityType="RemoteModel.LIQUID_TYPES" Width="1.5" PointX="6" PointY="21.75" /> + <EntityTypeShape EntityType="RemoteModel.LIQUID_TYPES_RMLS" Width="1.5" PointX="5.25" PointY="18" /> + <EntityTypeShape EntityType="RemoteModel.MACHINE_STUDIO_VERSIONS" Width="1.5" PointX="5.25" PointY="43.125" /> + <EntityTypeShape EntityType="RemoteModel.MACHINE_VERSIONS" Width="1.5" PointX="0.75" PointY="34.25" /> + <EntityTypeShape EntityType="RemoteModel.MACHINE" Width="1.5" PointX="3" PointY="48.125" /> + <EntityTypeShape EntityType="RemoteModel.MACHINES_CONFIGURATIONS" Width="1.5" PointX="5.25" PointY="47.625" /> <EntityTypeShape EntityType="RemoteModel.MACHINES_EVENTS" Width="1.5" PointX="5.25" PointY="38.25" /> - <EntityTypeShape EntityType="RemoteModel.MEDIA_COLORS" Width="1.5" PointX="0.75" PointY="29.625" /> - <EntityTypeShape EntityType="RemoteModel.MEDIA_CONDITIONS" Width="1.5" PointX="0.75" PointY="10" /> - <EntityTypeShape EntityType="RemoteModel.MEDIA_MATERIALS" Width="1.5" PointX="0.75" PointY="23.75" /> - <EntityTypeShape EntityType="RemoteModel.MEDIA_PURPOSES" Width="1.5" PointX="0.75" PointY="12.875" /> - <EntityTypeShape EntityType="RemoteModel.MID_TANK_TYPES" Width="1.5" PointX="6" PointY="61.25" /> - <EntityTypeShape EntityType="RemoteModel.ORGANIZATION" Width="1.5" PointX="0.75" PointY="35.625" /> - <EntityTypeShape EntityType="RemoteModel.PERMISSION" Width="1.5" PointX="6" PointY="73.25" /> - <EntityTypeShape EntityType="RemoteModel.PROCESS_PARAMETERS_TABLES" Width="1.5" PointX="7.5" PointY="32.375" /> - <EntityTypeShape EntityType="RemoteModel.PROCESS_PARAMETERS_TABLES_GROUPS" Width="1.5" PointX="5.25" PointY="33.625" /> - <EntityTypeShape EntityType="RemoteModel.RML" Width="1.5" PointX="3" PointY="14.75" /> - <EntityTypeShape EntityType="RemoteModel.ROLE" Width="1.5" PointX="6" PointY="69.125" /> - <EntityTypeShape EntityType="RemoteModel.ROLES_PERMISSIONS" Width="1.5" PointX="8.25" PointY="69.25" /> - <EntityTypeShape EntityType="RemoteModel.SEGMENT" Width="1.5" PointX="7.5" PointY="12.875" /> - <EntityTypeShape EntityType="RemoteModel.SPOOL_TYPES" Width="1.5" PointX="3" PointY="23.75" /> - <EntityTypeShape EntityType="RemoteModel.SYNC_CONFIGURATIONS" Width="1.5" PointX="10.75" PointY="3.5" /> - <EntityTypeShape EntityType="RemoteModel.TECH_CONTROLLERS" Width="1.5" PointX="10.75" PointY="6.5" /> - <EntityTypeShape EntityType="RemoteModel.TECH_DISPENSERS" Width="1.5" PointX="12.75" PointY="3.5" /> - <EntityTypeShape EntityType="RemoteModel.TECH_IOS" Width="1.5" PointX="12.75" PointY="6.5" /> - <EntityTypeShape EntityType="RemoteModel.TECH_MONITORS" Width="1.5" PointX="12.75" PointY="10.5" /> - <EntityTypeShape EntityType="RemoteModel.TECH_MOTORS" Width="1.5" PointX="12.75" PointY="15.5" /> - <EntityTypeShape EntityType="RemoteModel.TECH_VALVES" Width="1.5" PointX="14.75" PointY="3.5" /> - <EntityTypeShape EntityType="RemoteModel.USER" Width="1.5" PointX="3" PointY="28.25" /> - <EntityTypeShape EntityType="RemoteModel.USERS_ROLES" Width="1.5" PointX="8.25" PointY="28.125" /> - <EntityTypeShape EntityType="RemoteModel.WINDING_METHODS" Width="1.5" PointX="3" PointY="10.625" /> + <EntityTypeShape EntityType="RemoteModel.MEDIA_COLORS" Width="1.5" PointX="0.75" PointY="24.375" /> + <EntityTypeShape EntityType="RemoteModel.MEDIA_CONDITIONS" Width="1.5" PointX="0.75" PointY="10.625" /> + <EntityTypeShape EntityType="RemoteModel.MEDIA_MATERIALS" Width="1.5" PointX="0.75" PointY="18.125" /> + <EntityTypeShape EntityType="RemoteModel.MEDIA_PURPOSES" Width="1.5" PointX="0.75" PointY="13.5" /> + <EntityTypeShape EntityType="RemoteModel.MID_TANK_TYPES" Width="1.5" PointX="8" PointY="39.625" /> + <EntityTypeShape EntityType="RemoteModel.ORGANIZATION" Width="1.5" PointX="0.75" PointY="71.125" /> + <EntityTypeShape EntityType="RemoteModel.PERMISSION" Width="1.5" PointX="8" PointY="53.25" /> + <EntityTypeShape EntityType="RemoteModel.PROCESS_PARAMETERS_TABLES" Width="1.5" PointX="7.5" PointY="33" /> + <EntityTypeShape EntityType="RemoteModel.PROCESS_PARAMETERS_TABLES_GROUPS" Width="1.5" PointX="5.25" PointY="34.25" /> + <EntityTypeShape EntityType="RemoteModel.RML" Width="1.5" PointX="3" PointY="15.375" /> + <EntityTypeShape EntityType="RemoteModel.ROLE" Width="1.5" PointX="8" PointY="49.125" /> + <EntityTypeShape EntityType="RemoteModel.ROLES_PERMISSIONS" Width="1.5" PointX="10.25" PointY="49.25" /> + <EntityTypeShape EntityType="RemoteModel.SEGMENT" Width="1.5" PointX="7.5" PointY="10.25" /> + <EntityTypeShape EntityType="RemoteModel.SPOOL_TYPES" Width="1.5" PointX="3" PointY="10.625" /> + <EntityTypeShape EntityType="RemoteModel.SYNC_CONFIGURATIONS" Width="1.5" PointX="9.75" PointY="4.125" /> + <EntityTypeShape EntityType="RemoteModel.TECH_CONTROLLERS" Width="1.5" PointX="11.75" PointY="4.125" /> + <EntityTypeShape EntityType="RemoteModel.TECH_DISPENSERS" Width="1.5" PointX="11.75" PointY="8.125" /> + <EntityTypeShape EntityType="RemoteModel.TECH_IOS" Width="1.5" PointX="11.75" PointY="11.125" /> + <EntityTypeShape EntityType="RemoteModel.TECH_MONITORS" Width="1.5" PointX="11.75" PointY="15.125" /> + <EntityTypeShape EntityType="RemoteModel.TECH_MOTORS" Width="1.5" PointX="13.75" PointY="4.125" /> + <EntityTypeShape EntityType="RemoteModel.TECH_VALVES" Width="1.5" PointX="13.75" PointY="8.125" /> + <EntityTypeShape EntityType="RemoteModel.USER" Width="1.5" PointX="3" PointY="27.25" /> + <EntityTypeShape EntityType="RemoteModel.USERS_ROLES" Width="1.5" PointX="10.25" PointY="28.125" /> + <EntityTypeShape EntityType="RemoteModel.WINDING_METHODS" Width="1.5" PointX="3" PointY="24.125" /> <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_IDS_PACKS_DISPENSER_TYPES" /> <AssociationConnector Association="RemoteModel.FK_EVENT_TYPES_EVENT_TYPES_CATEGORIES" /> <AssociationConnector Association="RemoteModel.FK_EVENT_TYPES_EVENT_TYPES_CATEGORIES1" /> + <AssociationConnector Association="RemoteModel.FK_EVENT_TYPES_HTML_PAGES" /> <AssociationConnector Association="RemoteModel.FK_EVENTS_ACTIONS_EVENTS" /> <AssociationConnector Association="RemoteModel.FK_MACHINES_EVENTS_EVENTS" /> <AssociationConnector Association="RemoteModel.FK_RML_FIBER_SHAPES" /> 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 a56bee1d8..51d3510ce 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\HARDWARE_WINDER_TYPES.cs"> <DependentUpon>RemoteADO.tt</DependentUpon> </Compile> + <Compile Include="DB\HTML_PAGES.cs"> + <DependentUpon>RemoteADO.tt</DependentUpon> + </Compile> <Compile Include="DB\IDS_PACKS.cs"> <DependentUpon>RemoteADO.tt</DependentUpon> </Compile> |
