using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; using System.Windows.Media.Imaging; using Tango.BL.Entities; using Tango.BL.Enumerations; using Tango.MachineStudio.Common; using Tango.MachineStudio.HardwareDesigner.Views; using Tango.SharedUI.Helpers; namespace Tango.MachineStudio.HardwareDesigner { [StudioModule(3)] public class HardwareDesignerModule : StudioModuleBase { public override string Name { get { return "Hardware Versions"; } } public override string Description { get { return "Select and configure hardware versions using the available hardware components. Hardware versions can be assigned to a machine configuration using the Machine Designer module."; } } public override BitmapSource Image { get { return ResourceHelper.GetImageFromResources("Images/components.png"); } } /// /// Gets the module entry point view type. /// public override Type MainViewType { get { return typeof(MainView); } } public override Permissions Permission { get { return Permissions.RunHardwareVersionsModule; } } public override void Dispose() { } } }
<UserControl x:Class="Tango.MachineStudio.MachineDesigner.Views.MachineUpdateDetailsDialog"
             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:mahapps="http://metro.mahapps.com/winfx/xaml/controls"
             xmlns:converters="clr-namespace:Tango.SharedUI.Converters;assembly=Tango.SharedUI"
             xmlns:controls="clr-namespace:Tango.SharedUI.Controls;assembly=Tango.SharedUI"
             xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes"
             xmlns:vm="clr-namespace:Tango.MachineStudio.MachineDesigner.ViewModels"
             xmlns:local="clr-namespace:Tango.MachineStudio.MachineDesigner.Views"
             mc:Ignorable="d" 
             d:DesignHeight="400" d:DesignWidth="700" Height="700" Width="1280" Background="White" d:DataContext="{d:DesignInstance Type=vm:MachineUpdateDetailsDialogVM, IsDesignTimeCreatable=False}">
    <UserControl.Resources>
        <converters:EnumToDescriptionConverter x:Key="EnumToDescriptionConverter" />
        <converters:DateTimeUTCToShortDateTimeConverter x:Key="DateTimeUTCToShortDateTimeConverter" />
        <converters:StringToOneLineConverter x:Key="StringToOneLineConverter"  />
    </UserControl.Resources>

    <Grid>
        <Grid Grid.RowSpan="2">
            <Grid.RowDefinitions>
                <RowDefinition Height="60"/>
                <RowDefinition Height="31*"/>
                <RowDefinition Height="50"/>
            </Grid.RowDefinitions>

            <StackPanel Orientation="Horizontal" DataContext="{Binding Update}">
                <materialDesign:PackIcon Width="42" Height="42" VerticalAlignment="Center">
                    <materialDesign:PackIcon.Style>
                        <Style TargetType="materialDesign: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 OrangeBrush}"></Setter>
                                </DataTrigger>
                                <DataTrigger Binding="{Binding IsCompleted}" Value="True">
                                    <Setter Property="Foreground" Value="{StaticResource GreenBrush }"></Setter>
                                </DataTrigger>
                                <DataTrigger Binding="{Binding IsFailed}" Value="True">
                                    <Setter Property="Foreground" Value="Red"></Setter>
                                </DataTrigger>
                            </Style.Triggers>
                        </Style>
                    </materialDesign:PackIcon.Style>
                </materialDesign:PackIcon>
                <TextBlock VerticalAlignment="Center" Text="{Binding UpdateStatus,Converter={StaticResource EnumToDescriptionConverter}}" TextWrapping="NoWrap" Height="22" TextTrimming="CharacterEllipsis" Width="500" Margin="10 0 0 0" FontSize="16"></TextBlock>
            </StackPanel>

            <Grid Grid.Row="1">
                <DockPanel>
                    <Grid DockPanel.Dock="Top">
                        <controls:TableGrid RowHeight="30">
                            <TextBlock Text="Started On:" FontWeight="SemiBold" />
                            <TextBlock Text="{Binding Update.StartDate,Converter={StaticResource DateTimeUTCToShortDateTimeConverter}}"></TextBlock>
                            <TextBlock Text="Application:" FontWeight="SemiBold" />
                            <TextBlock Text="{Binding Update.ApplicationVersion}"></TextBlock>
                            <TextBlock Text="Firmware:" FontWeight="SemiBold" />
                            <TextBlock Text="{Binding Update.FirmwareVersion}"></TextBlock>
                            <TextBlock Text="Ended:" FontWeight="SemiBold" />
                            <TextBlock Text="{Binding Update.EndDate,TargetNullValue='Never',FallbackValue='Never',Converter={StaticResource DateTimeUTCToShortDateTimeConverter}}"></TextBlock>
                        </controls:TableGrid>
                    </Grid>

                    <Border Padding="5" BorderThickness="1" BorderBrush="{StaticResource BorderBrushGainsboro}">
                        <TextBox BorderThickness="0" Text="{Binding Update.FailedLog,TargetNullValue='No further Information available.'}" Style="{x:Null}" TextWrapping="NoWrap" IsReadOnly="True" HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto" Background="Transparent" />
                    </Border>
                </DockPanel>
            </Grid>

            <Grid Grid.Row="2">
                <Button HorizontalAlignment="Right" Width="140" Command="{Binding CloseCommand}">CLOSE</Button>
            </Grid>
        </Grid>
    </Grid>
</UserControl>