aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/Tango.CodeGeneration/Templates/TangoWebClientCodeFile.cshtml
blob: 7d9ebc075cc2030cbdc387ec1f1daa012002e19f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
@{
    Tango.CodeGeneration.TangoWebClientCodeFile model = Model as Tango.CodeGeneration.TangoWebClientCodeFile;
}
using System;
using System.Threading.Tasks;
using Tango.Web;

namespace @(model.Namespace)
{
    /// <summary>
    /// Represents a machine service @(model.ControllerName) web client.
    /// </summary>
    /// <seealso cref="Tango.Web.TangoWebClient" />
    public abstract class @(model.Name) : TangoWebClient<@(model.LoginRequest), @(model.LoginResponse)>
    {
        /// <summary>
        /// Initializes a new instance of the <see cref="@(model.Name)"/> class.
        /// </summary>
        /// <param name="environment">The environment.</param>
        /// <param name="token">Existing token.</param>
        public @(model.Name)(DeploymentSlot environment, String token) : base(environment, "@(model.ControllerName)", token)
        {
            
        }

        /// <summary>
        /// Initializes a new instance of the <see cref="@(model.Name)"/> class.
        /// </summary>
        /// <param name="environment">The environment.</param>
        public @(model.Name)(DeploymentSlot environment) : this(environment, null)
        {

        }

        /// <summary>
        /// Initializes a new instance of the <see cref="@(model.Name)"/> class.
        /// </summary>
        /// <param name="address">The service address.</param>
        /// <param name="token">Existing token.</param>
        public @(model.Name)(String address, String token) : base(address, "@(model.ControllerName)", token)
        {

        }

        @foreach (var action in model.Actions)
        {
          <div>
            /// <summary>
            /// Executes the @(action.Name) action and returns @(action.Response).
            /// </summary>
            /// <returns></returns>
            public Task<@(action.Response)> @(action.Name)(@(action.Request) request)
            {
                return Post<@(action.Request), @(action.Response)>("@(action.Name)", request);
            }

          </div>
        }
    }
}
<UserControl x:Class="Tango.MachineStudio.Statistics.Views.JobRunsView"
             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:sharedConverters="clr-namespace:Tango.SharedUI.Converters;assembly=Tango.SharedUI"
             xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes"
             xmlns:localConverters="clr-namespace:Tango.MachineStudio.Statistics.Converters"
             xmlns:localrule="clr-namespace:Tango.MachineStudio.Statistics.ValidationRules"
             xmlns:mahapps="http://metro.mahapps.com/winfx/xaml/controls"
             xmlns:autoComplete="clr-namespace:Tango.AutoComplete.Editors;assembly=Tango.AutoComplete"
             xmlns:lvc="clr-namespace:LiveCharts.Wpf;assembly=LiveCharts.Wpf"
             xmlns:tooltips="clr-namespace:Tango.MachineStudio.Statistics.Tooltips"
             xmlns:sys="clr-namespace:System;assembly=mscorlib"
             xmlns:enumerations="clr-namespace:Tango.BL.Enumerations;assembly=Tango.BL"
             xmlns:controls="clr-namespace:Tango.SharedUI.Controls;assembly=Tango.SharedUI"
             xmlns:local="clr-namespace:Tango.MachineStudio.Statistics.Views"
             xmlns:model="clr-namespace:Tango.MachineStudio.Statistics.Models"
              xmlns:vs="clr-namespace:Tango.MachineStudio.Statistics.ViewModels"
             xmlns:wellknowntypes="clr-namespace:Google.Protobuf.WellKnownTypes;assembly=Google.Protobuf"
             mc:Ignorable="d" 
             d:DesignHeight="450" d:DesignWidth="1800" Foreground="{StaticResource JobFieldForeground}">
    <UserControl.Resources>
        <sharedConverters:BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter" />
        <sharedConverters:BooleanToYesNoConverter x:Key="BooleanToYesNoConverter"/>
        <sharedConverters:EnumToDescriptionConverter x:Key="EnumToDescriptionConverter" />
        <localConverters:DateTimeToStringFormatConverter x:Key="DateTimeToStringFormatConverter" />
        <sharedConverters:DateTimeUTCToShortDateTimeConverter x:Key="DateTimeUTCToShortDateTimeConverter"/>
        <localConverters:StringToBoolYesNoNullConverter x:Key="StringToBoolYesNoNullConverter"/>
        <localConverters:LiquidTypeToColorConverter x:Key="LiquidTypeToColorConverter"/>
        <localConverters:CollectionConverter x:Key="CollectionConverter"/>
        <localConverters:StringToFirstLetterConverter x:Key="StringToFirstLetterConverter"/>
        <localConverters:MidTankLevelToElementHeightConverter x:Key="MidTankLevelToElementHeightConverter"/>
        <localConverters:JobLengthConverter x:Key="JobLengthConverter"/>
        <localConverters:NanoLiterToLiterFormatConverter x:Key="NanoLiterToLiterFormatConverter"/>
        <localConverters:LiquidQuantityToFormatStringConverter x:Key="LiquidQuantityToFormatStringConverter"/>
        <localConverters:TooltipLiquidQuantityFormatConverter x:Key="TooltipLiquidQuantityFormatConverter"/>

        <ResourceDictionary x:Key="SelectAllTextBoxResource">
            <Style TargetType="TextBox">
                <EventSetter Event="GotFocus" Handler="TextBox_GotFocus"></EventSetter>
                <EventSetter Event="MouseDown" Handler="TextBox_PreviewMouseUp"></EventSetter>
            </Style>
        </ResourceDictionary>

        <ObjectDataProvider x:Key="HeadCleaning" MethodName="GetValues" ObjectType="{x:Type sys:Enum}">
            <ObjectDataProvider.MethodParameters>
                <x:Type TypeName="vs:HeadCleaningSelectionEnum"/>
            </ObjectDataProvider.MethodParameters>
        </ObjectDataProvider>

        <Style TargetType="{x:Type TextBlock}" x:Key="WrapText">
            <Setter Property="TextWrapping" Value="Wrap"/>
        </Style>

        <Style TargetType="lvc:PieSeries">
            <Setter Property="Stroke" Value="#99F9F9F9"></Setter>
            <Setter Property="StrokeThickness" Value="2"/>
            <Setter Property="Foreground"  Value="#FF1C1C1F" />
        </Style>
        <Style TargetType="lvc:PieChart">
            <Setter Property="Background" Value="Transparent"/>
            <Setter Property="LegendLocation" Value="None"/>
        </Style>
        
        <DataTemplate x:Key="PopUpDataTemplate">
            <CheckBox VerticalAlignment="Center" FontSize="11" DockPanel.Dock="Left" IsChecked="{Binding IsSelected}"  Click="CheckBox_StayChecked" Tag="{Binding Path=ItemsSource,  RelativeSource={RelativeSource AncestorType={x:Type ItemsControl}},Mode=OneWay}">
                <CheckBox.Content>
                    <TextBlock Margin="5 0 0 0" VerticalAlignment="Center" Text="{Binding Data}"></TextBlock>
                </CheckBox.Content>
            </CheckBox>
        </DataTemplate>

        <DataTemplate x:Key="PopupBoolDataTemplate">
            <CheckBox VerticalAlignment="Center" FontSize="11" DockPanel.Dock="Left" IsChecked="{Binding IsSelected}" Click="CheckBox_StayChecked" Tag="{Binding Path=ItemsSource,  RelativeSource={RelativeSource AncestorType={x:Type ItemsControl}},Mode=OneWay}">
                <CheckBox.Content>
                    <TextBlock Margin="5 0 0 0" VerticalAlignment="Center" Text="{Binding Data, Converter={StaticResource BooleanToYesNoConverter}}"/>
                </CheckBox.Content>
            </CheckBox>
        </DataTemplate>


        <Style x:Key="{x:Type ToolTip}" TargetType="{x:Type ToolTip}" BasedOn="{StaticResource MaterialDesignToolTip}">
            <Setter Property="Background"  Value="{StaticResource Logging.Background}" />
            <Setter Property="Foreground"  Value="{StaticResource MainWindow.Foreground}" />
        </Style>

    </UserControl.Resources>
    
    <Grid IsEnabled="{Binding IsFree}" >
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="3*"/>
            <ColumnDefinition Width="1*"/>
        </Grid.ColumnDefinitions>
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto"/>
            <RowDefinition Height="*"/>
            <RowDefinition Height="Auto"/>
        </Grid.RowDefinitions>
        <Grid Grid.Row="0" Background="{StaticResource WhiteBackgroundBrush}"  Width="Auto" Margin="20 0 0 1" >
            <Border Padding="14 14 12 14" BorderBrush="DimGray" BorderThickness="0" Background="{StaticResource Logging.Background}" HorizontalAlignment="Stretch" CornerRadius="2" >
                <Border.Effect>
                    <DropShadowEffect ShadowDepth="4" BlurRadius="10" Opacity="0.5"/>
                </Border.Effect>
                <Grid>
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="*"/>
                        <ColumnDefinition Width="Auto"/>
                    </Grid.ColumnDefinitions>

                    <Grid >
                        <Grid.RowDefinitions>
                            <RowDefinition Height="1*"/>
                            <RowDefinition Height="1*"/>
                        </Grid.RowDefinitions>
                        <StackPanel Orientation="Horizontal"  Grid.Row="0">
                            <StackPanel  Margin="10 5 0 0"  Orientation="Vertical"  HorizontalAlignment="Center">
                                <TextBlock Text="Machine:" VerticalAlignment="Center" FontSize="11"></TextBlock>
                                <ToggleButton  Width="140" Margin="0 10 0 0" x:Name="selectMachineButton" HorizontalAlignment="Left" FontSize="16" VerticalAlignment="Center">
                                    <ToggleButton.Template>
                                        <ControlTemplate>
                                            <Grid>
                                                <Border CornerRadius="3" BorderBrush="{StaticResource borderBrush}" BorderThickness="1" TextElement.Foreground="Black" Height="24">
                                                    <DockPanel>
                                                        <Button x:Name="selectMachineButton" Width="18" Padding="0" Height="16" DockPanel.Dock="Right" BorderBrush="{x:Null}" HorizontalAlignment="Left" Click="Button_Click" Style="{StaticResource MaterialDesignFlatButton}" Foreground="{StaticResource MainWindow.Foreground}">
                                                            <materialDesign:PackIcon Width="16"  Height="16"  Kind="ChevronDown" VerticalAlignment="Center" Foreground="{StaticResource MainWindow.Foreground}" HorizontalAlignment="Right"/>
                                                        </Button>
                                                        <TextBlock VerticalAlignment="Center"  Foreground="{StaticResource MainWindow.Foreground}" FontSize="11" Margin="5">
                                                            <TextBlock.Style>
                                                                <Style TargetType="{x:Type TextBlock}">
                                                                    <Setter Property="Text" Value="{Binding SelectedMachines.SynchedSource.Count, StringFormat={}Selected Machines({0})}">
                                                                    </Setter>
                                                                    <Style.Triggers>
                                                                        <DataTrigger Binding="{Binding SelectedMachines.SynchedSource.Count}" Value="0">
                                                                            <Setter Property="Text" Value="All machines"/>
                                                                        </DataTrigger>
                                                                    </Style.Triggers>
                                                                </Style>
                                                            </TextBlock.Style>
                                                        </TextBlock>
                                                    </DockPanel>
                                                </Border>
                                                <Popup AllowsTransparency="True" StaysOpen="False" IsOpen="{Binding RelativeSource={RelativeSource AncestorType=ToggleButton},Path=IsChecked }">
                                                    <Border Padding="3" CornerRadius="0 0 3 3" MinWidth="{Binding RelativeSource={RelativeSource AncestorType=ToggleButton},Path=Width}" Margin="5"  BorderBrush="{StaticResource AutoCompleteTextBox.Popup.BorderBrush}" >
                                                        <Border.Effect>
                                                            <DropShadowEffect Opacity="0.2" />
                                                        </Border.Effect>
                                                        <controls:AllSelectedCheckboxList Style="{StaticResource AllSelectedCheckBoxListStyle}" MaxHeight="600" ItemsSource="{Binding SelectedMachines}" Background="{StaticResource ComboBox.Floating.Background}" Foreground="{StaticResource MainWindow.Foreground}" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" SelectionMode="Multiple" AllSelected="True"  FontSize="11" FontFamily="{StaticResource FontName}">
                                                            <controls:AllSelectedCheckboxList.ItemTemplate>
                                                                <DataTemplate >
                                                                    <TextBlock Margin="5 0 0 0" VerticalAlignment="Center" Text="{Binding Data.SerialNumber}" ToolTip="{Binding Data.SerialNumber}" FontFamily="{StaticResource FontName}" Background="{DynamicResource TransparentBackgroundBrush}" FontSize="11"></TextBlock>

                                                                </DataTemplate>
                                                            </controls:AllSelectedCheckboxList.ItemTemplate>
                                                        </controls:AllSelectedCheckboxList>
                                                    </Border>
                                                </Popup>
                                            </Grid>
                                        </ControlTemplate>
                                    </ToggleButton.Template>
                                </ToggleButton>
                            </StackPanel>

                            <StackPanel   Margin="30 10 0 0" HorizontalAlignment="Center">
                                <TextBlock FontSize="11">Start Date:</TextBlock>
                                <DatePicker x:Name="startdatePicker" SelectedDateChanged="StartDatePicker_SelectedDateChanged"  Margin="0 5 0 0"  materialDesign:HintAssist.Hint="Pick start date"  Width="130" VerticalAlignment="Center" FontSize="11" >
                                    <DatePicker.SelectedDate>
                                        <Binding Path="StartSelectedDate"  UpdateSourceTrigger="PropertyChanged" NotifyOnValidationError="True">
                                            <Binding.ValidationRules>
                                                <localrule:DateExpiredRule x:Name="StartDateExpiredRule"/>
                                            </Binding.ValidationRules>
                                        </Binding>
                                    </DatePicker.SelectedDate>
                                </DatePicker>
                            </StackPanel>
                            <StackPanel   Margin="30 10 0 0" HorizontalAlignment="Center">
                                <TextBlock FontSize="11">End Date:</TextBlock>
                                <DatePicker x:Name="endDatePicker"  Margin="0 5 0 0" materialDesign:HintAssist.Hint="Pick end date"  Width="130" VerticalAlignment="Center" FontSize="11" SelectedDateChanged="EndDatePicker_SelectedDateChanged">
                                    <DatePicker.SelectedDate>
                                        <Binding Path="EndSelectedDate"  UpdateSourceTrigger="PropertyChanged" NotifyOnValidationError="True">
                                            <Binding.ValidationRules>
                                                <localrule:DateExpiredRule x:Name="EndDateExpiredRule"/>
                                            </Binding.ValidationRules>
                                        </Binding>
                                    </DatePicker.SelectedDate>
                                
                                </DatePicker>
                            </StackPanel>
                        </StackPanel>

                        <StackPanel Orientation="Horizontal" Grid.Row="1">
                            <StackPanel  Margin="10 10 0 0" Orientation="Vertical" HorizontalAlignment="Center">
                                <TextBlock  Text="Job Name:" VerticalAlignment="Center" FontSize="11"></TextBlock>
                                <autoComplete:AutoCompleteTextBox Margin="0 10 0 0" Provider="{Binding JobsProvider}" Width="140" FontSize="11" LoadingContent="Loading..." SelectedItem="{Binding SelectedJob,Mode=TwoWay}" materialDesign:HintAssist.Hint="All" DisplayMember="Name" materialDesign:HintAssist.IsFloating="False">
                                    <autoComplete:AutoCompleteTextBox.ItemTemplate>
                                        <DataTemplate>
                                            <StackPanel>
                                                <TextBlock Text="{Binding Name}" FontWeight="Bold" FontStyle="Italic"></TextBlock>
                                            </StackPanel>
                                        </DataTemplate>
                                    </autoComplete:AutoCompleteTextBox.ItemTemplate>
                                </autoComplete:AutoCompleteTextBox>
                            </StackPanel>
                            <StackPanel  Margin="30 10 0 0" Orientation="Vertical"  HorizontalAlignment="Center">
                                <TextBlock  Text="Source:" VerticalAlignment="Center" FontSize="11"></TextBlock>
                                <ToggleButton Width="130" Height="24" Margin="0 10 0 0" x:Name="selectJobRunSources" HorizontalAlignment="Left" FontSize="16" VerticalAlignment="Center">
                                    <ToggleButton.Template>
                                        <ControlTemplate>
                                            <Grid>
                                                <Border CornerRadius="3" BorderBrush="{StaticResource borderBrush}" BorderThickness="1" TextElement.Foreground="Black" >
                                                    <DockPanel>
                                                        <Button x:Name="jobRunSourcesButton" Width="18" Padding="0" Height="16" DockPanel.Dock="Right" BorderBrush="{x:Null}" HorizontalAlignment="Left" Click="JobRunSourcesButton_Click" Style="{StaticResource MaterialDesignFlatButton}" Foreground="{StaticResource MainWindow.Foreground}">
                                                            <materialDesign:PackIcon Width="16"  Height="16"  Kind="ChevronDown" VerticalAlignment="Center" Foreground="{StaticResource MainWindow.Foreground}" HorizontalAlignment="Right"/>
                                                        </Button>
                                                        <TextBlock VerticalAlignment="Center"  Foreground="{StaticResource MainWindow.Foreground}" FontSize="11" Margin="5" Text="{Binding JobRunSelectedSources.SynchedSource, Converter={StaticResource CollectionConverter}}"/>
                                                     </DockPanel>
                                                </Border>
                                                <Popup AllowsTransparency="True" StaysOpen="False" IsOpen="{Binding RelativeSource={RelativeSource AncestorType=ToggleButton},Path=IsChecked }">
                                                    <Border Padding="3" CornerRadius="0 0 3 3" MinWidth="{Binding RelativeSource={RelativeSource AncestorType=ToggleButton},Path=Width}" Margin="5" Background="{StaticResource TransparentBackgroundBrush200}" BorderBrush="{StaticResource AutoCompleteTextBox.Popup.BorderBrush}" >
                                                        <Border.Effect>
                                                            <DropShadowEffect Opacity="0.2" />
                                                        </Border.Effect>
                                                        <ItemsControl ItemsSource="{Binding JobRunSelectedSources}"  Foreground="{StaticResource MainWindow.Foreground}" ItemTemplate="{StaticResource PopUpDataTemplate}"/>

                                                    </Border>
                                                </Popup>
                                            </Grid>
                                        </ControlTemplate>
                                    </ToggleButton.Template>
                                </ToggleButton>
                            </StackPanel>
                            <StackPanel  Margin="30 10 0 0" Orientation="Vertical"  HorizontalAlignment="Center">
                                <TextBlock  Text="Gradient:" VerticalAlignment="Center" FontSize="11"></TextBlock>
                                <ToggleButton Height="24" Width="130" Margin="0 10 0 0" x:Name="selectIsGradient" HorizontalAlignment="Left" FontSize="16" VerticalAlignment="Center">
                                    <ToggleButton.Template>
                                        <ControlTemplate>
                                            <Grid>
                                                <Border CornerRadius="3" BorderBrush="{StaticResource borderBrush}" BorderThickness="1" TextElement.Foreground="Black" >
                                                    <DockPanel>
                                                        <Button x:Name="isGradientButton" Width="18" Padding="0" Height="16" DockPanel.Dock="Right" BorderBrush="{x:Null}" HorizontalAlignment="Left" Click="IsGradientButton_Click" Style="{StaticResource MaterialDesignFlatButton}" Foreground="{StaticResource MainWindow.Foreground}">
                                                            <materialDesign:PackIcon Width="16"  Height="16"  Kind="ChevronDown" VerticalAlignment="Center" Foreground="{StaticResource MainWindow.Foreground}" HorizontalAlignment="Right"/>
                                                        </Button>
                                                        <TextBlock VerticalAlignment="Center"  Foreground="{StaticResource MainWindow.Foreground}" FontSize="11" Margin="5 0 2 0">
                                                         <Run Text="{Binding IsGradientSelection.SynchedSource, Converter={StaticResource CollectionConverter}, ConverterParameter='No, Yes'}"></Run>
                                                        </TextBlock>
                                                    </DockPanel>
                                                </Border>
                                                <Popup AllowsTransparency="True" StaysOpen="False" IsOpen="{Binding RelativeSource={RelativeSource AncestorType=ToggleButton},Path=IsChecked }">
                                                    <Border Padding="3" CornerRadius="0 0 3 3" MinWidth="{Binding RelativeSource={RelativeSource AncestorType=ToggleButton},Path=Width}" Margin="5" Background="{StaticResource TransparentBackgroundBrush200}" BorderBrush="{StaticResource AutoCompleteTextBox.Popup.BorderBrush}">
                                                        <Border.Effect>
                                                            <DropShadowEffect Opacity="0.2" />
                                                        </Border.Effect>
                                                        <ItemsControl ItemsSource="{Binding IsGradientSelection}"  Foreground="{StaticResource MainWindow.Foreground}" ItemTemplate="{StaticResource PopupBoolDataTemplate}"/>

                                                    </Border>
                                                </Popup>
                                            </Grid>
                                        </ControlTemplate>
                                    </ToggleButton.Template>
                                </ToggleButton>
                            </StackPanel>
                            <StackPanel  Margin="30 10 0 0" Orientation="Vertical"  HorizontalAlignment="Center">
                                <TextBlock  Text="Length:" VerticalAlignment="Center" FontSize="11"></TextBlock>
                                <Border BorderThickness="1" CornerRadius="3" BorderBrush="{StaticResource borderBrush}" Margin="0 10 0 0" Height="24" Padding="10 0">
                                    <StackPanel Orientation="Horizontal">
                                    <TextBlock  Text="{Binding LengthLowerValue, UpdateSourceTrigger=PropertyChanged}" VerticalAlignment="Center" FontSize="11" Width="30"></TextBlock>
                                    <mahapps:RangeSlider Focusable="True" Height="40" Margin="5 5 5 5" Minimum="0" Maximum="10000" Width="140" ExtendedMode="True"
                                             LowerValue="{Binding LengthLowerValue,  Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
                                             UpperValue="{Binding LengthUpperValue,  Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" 
                                             VerticalAlignment="Center" IsSnapToTickEnabled="True" FontSize="8"/>
                                        <TextBlock  Text="{Binding LengthUpperValue}" VerticalAlignment="Center" FontSize="11" Width="30"></TextBlock>
                                    </StackPanel>
                                </Border>
                            </StackPanel>
                            <StackPanel  Margin="30 10 0 0" Orientation="Vertical"  HorizontalAlignment="Center">
                                <TextBlock  Text="Status:" VerticalAlignment="Center" FontSize="11"></TextBlock>
                                <ToggleButton Height="24" Width="170"  Margin="0 10 0 0" x:Name="selectJobRunStatus" HorizontalAlignment="Left" FontSize="16" VerticalAlignment="Center">
                                    <ToggleButton.Template>
                                        <ControlTemplate>
                                            <Grid>
                                                <Border CornerRadius="3" BorderBrush="{StaticResource borderBrush}" BorderThickness="1" TextElement.Foreground="Black" >
                                                    <DockPanel>
                                                        <Button x:Name="jobRunStatusButton" Width="18" Padding="0" Height="16" DockPanel.Dock="Right" BorderBrush="{x:Null}" HorizontalAlignment="Left" Click="JobRunStatusButton_Click" Style="{StaticResource MaterialDesignFlatButton}" Foreground="{StaticResource MainWindow.Foreground}">
                                                            <materialDesign:PackIcon Width="16"  Height="16"  Kind="ChevronDown" VerticalAlignment="Center" Foreground="{StaticResource MainWindow.Foreground}" HorizontalAlignment="Right"/>
                                                        </Button>
                                                        <TextBlock VerticalAlignment="Center"  Foreground="{StaticResource MainWindow.Foreground}" FontSize="11" Margin="5" Text="{Binding JobRunSelectedStatuses.SynchedSource, Converter={StaticResource CollectionConverter}}"/>
                                                    </DockPanel>
                                                </Border>
                                                <Popup AllowsTransparency="True"  StaysOpen="False" IsOpen="{Binding RelativeSource={RelativeSource AncestorType=ToggleButton},Path=IsChecked }">
                                                    <Border Padding="3" CornerRadius="0 0 3 3" MinWidth="{Binding RelativeSource={RelativeSource AncestorType=ToggleButton},Path=Width}" Margin="5" Background="{StaticResource TransparentBackgroundBrush200}" BorderBrush="{StaticResource AutoCompleteTextBox.Popup.BorderBrush}" >
                                                        <Border.Effect>
                                                            <DropShadowEffect Opacity="0.2" />
                                                        </Border.Effect>
                                                        <ItemsControl ItemsSource="{Binding JobRunSelectedStatuses}"  Foreground="{StaticResource MainWindow.Foreground}" ItemTemplate="{StaticResource PopUpDataTemplate}"/>
                                                    </Border>
                                                </Popup>
                                            </Grid>
                                        </ControlTemplate>
                                    </ToggleButton.Template>
                                </ToggleButton>
                            </StackPanel>
                            <StackPanel  Margin="30 10 0 0"  Orientation="Vertical"  HorizontalAlignment="Center">
                                <TextBlock Text="Threads:" VerticalAlignment="Center" FontSize="11"></TextBlock>
                                <ToggleButton  Width="100" Margin="0 10 0 0" x:Name="selectThreadsButton" HorizontalAlignment="Left" FontSize="16" VerticalAlignment="Center">
                                    <ToggleButton.Template>
                                        <ControlTemplate>
                                            <Grid>
                                                <Border CornerRadius="3" BorderBrush="{StaticResource borderBrush}" BorderThickness="1" TextElement.Foreground="Black" Height="24">
                                                    <DockPanel>
                                                        <Button x:Name="selectThreadButton" Width="18" Padding="0" Height="16" DockPanel.Dock="Right" BorderBrush="{x:Null}" HorizontalAlignment="Left" Click="SelectMachineButton_Click"  Style="{StaticResource MaterialDesignFlatButton}" Foreground="{StaticResource MainWindow.Foreground}">
                                                            <materialDesign:PackIcon Width="16"  Height="16"  Kind="ChevronDown" VerticalAlignment="Center" Foreground="{StaticResource MainWindow.Foreground}" HorizontalAlignment="Right"/>
                                                        </Button>
                                                        <TextBlock VerticalAlignment="Center"  Foreground="{StaticResource MainWindow.Foreground}" FontSize="11" Margin="5" >
                                                            <TextBlock.Style>
                                                                <Style TargetType="{x:Type TextBlock}">
                                                                    <Setter Property="Text" Value="{Binding SelectedThreads.SynchedSource.Count, StringFormat={}Selected Threads({0})}">
                                                                    </Setter>
                                                                    <Style.Triggers>
                                                                        <DataTrigger Binding="{Binding SelectedThreads.SynchedSource.Count}" Value="0">
                                                                            <Setter Property="Text" Value="All threads"/>
                                                                        </DataTrigger>
                                                                    </Style.Triggers>
                                                                </Style>
                                                            </TextBlock.Style>
                                                        </TextBlock>
                                                    </DockPanel>
                                                </Border>
                                                <Popup AllowsTransparency="True"  StaysOpen="False" IsOpen="{Binding RelativeSource={RelativeSource AncestorType=ToggleButton},Path=IsChecked }">
                                                    <Border Padding="3" CornerRadius="0 0 3 3" MinWidth="{Binding RelativeSource={RelativeSource AncestorType=ToggleButton},Path=Width}" Margin="5" BorderBrush="{StaticResource AutoCompleteTextBox.Popup.BorderBrush}" >
                                                        <Border.Effect>
                                                            <DropShadowEffect Opacity="0.2" />
                                                        </Border.Effect>
                                                        <controls:AllSelectedCheckboxList Style="{StaticResource AllSelectedCheckBoxListStyle}" MaxHeight="600" ItemsSource="{Binding SelectedThreads}" Background="{StaticResource ComboBox.Floating.Background}" Foreground="{StaticResource MainWindow.Foreground}" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" SelectionMode="Multiple" AllSelected="True"  FontSize="11" FontFamily="{StaticResource FontName}">
                                                            <controls:AllSelectedCheckboxList.ItemTemplate>
                                                                <DataTemplate >
                                                                    <TextBlock Margin="5 0 0 0" VerticalAlignment="Center" Text="{Binding Data.Name}" ToolTip="{Binding Data.Name}" FontFamily="{StaticResource FontName}"></TextBlock>
                                                                </DataTemplate>
                                                            </controls:AllSelectedCheckboxList.ItemTemplate>
                                                        </controls:AllSelectedCheckboxList>
                                                    </Border>
                                                </Popup>
                                            </Grid>
                                        </ControlTemplate>
                                    </ToggleButton.Template>
                                </ToggleButton>
                            </StackPanel>
                            <StackPanel  Margin="30 10 0 0" Orientation="Vertical"  HorizontalAlignment="Center">
                                <TextBlock  Text="HeadCleaning:" VerticalAlignment="Center" FontSize="11"></TextBlock>
                                <ToggleButton Height="24" Width="120" Margin="0 10 0 0" x:Name="isHeadCleaningToggleButton" HorizontalAlignment="Left" FontSize="16" VerticalAlignment="Center">
                                    <ToggleButton.Template>
                                        <ControlTemplate>
                                            <Grid>
                                                <Border CornerRadius="3" BorderBrush="{StaticResource borderBrush}" BorderThickness="1" TextElement.Foreground="Black" >
                                                    <DockPanel>
                                                        <Button x:Name="IsHeadCleaningButton" Width="18" Padding="0" Height="16" DockPanel.Dock="Right" BorderBrush="{x:Null}" HorizontalAlignment="Left" Click="IsHeadCleaningButton_Click" Style="{StaticResource MaterialDesignFlatButton}" Foreground="{StaticResource MainWindow.Foreground}">
                                                            <materialDesign:PackIcon Width="16"  Height="16"  Kind="ChevronDown" VerticalAlignment="Center" Foreground="{StaticResource MainWindow.Foreground}" HorizontalAlignment="Right"/>
                                                        </Button>
                                                        <TextBlock VerticalAlignment="Center"  Foreground="{StaticResource MainWindow.Foreground}" FontSize="11" Margin="5 0 2 0" Text="{Binding HeadCleaningSelected, Converter={StaticResource EnumToDescriptionConverter}}">
                                                            
                                                        </TextBlock>
                                                    </DockPanel>
                                                </Border>
                                                <Popup AllowsTransparency="True" StaysOpen="False" IsOpen="{Binding RelativeSource={RelativeSource AncestorType=ToggleButton},Path=IsChecked }">
                                                    <Border Padding="3" CornerRadius="0 0 3 3" MinWidth="{Binding RelativeSource={RelativeSource AncestorType=ToggleButton},Path=Width}" Margin="5" Background="{StaticResource TransparentBackgroundBrush200}" BorderBrush="{StaticResource AutoCompleteTextBox.Popup.BorderBrush}">
                                                        <Border.Effect>
                                                            <DropShadowEffect Opacity="0.2" />
                                                        </Border.Effect>
                                                        <ListBox x:Name="HeadCleaningListBoxItem"  ItemsSource="{Binding Source={StaticResource HeadCleaning}}"  Foreground="{StaticResource MainWindow.Foreground}" SelectedItem="{Binding HeadCleaningSelected, Mode=TwoWay}" SelectionMode="Single" >
                                                            <ListBox.ItemTemplate>
                                                                <DataTemplate>
                                                                    <CheckBox x:Name="HeadCleaningCheckBox"  Selector.IsSelected="True"  VerticalAlignment="Center" FontSize="11" DockPanel.Dock="Left" IsChecked="{Binding IsSelected, Mode=TwoWay, RelativeSource={RelativeSource AncestorType={x:Type ListBoxItem}}, UpdateSourceTrigger=PropertyChanged}" Click="CheckBox_PreventUndoCheck">
                                                                        <CheckBox.Content>
                                                                            <TextBlock Margin="5 0 0 0" VerticalAlignment="Center" Text="{Binding Converter={StaticResource EnumToDescriptionConverter}}"/>
                                                                        </CheckBox.Content>
                                                                    </CheckBox>
                                                                </DataTemplate>
                                                            </ListBox.ItemTemplate>
                                                        </ListBox>
                                                    </Border>
                                                </Popup>
                                            </Grid>
                                        </ControlTemplate>
                                    </ToggleButton.Template>
                                </ToggleButton>
                            </StackPanel>
                        </StackPanel>
                    </Grid>
                    <Button Grid.Column="1" HorizontalAlignment="Right" Command="{Binding LoadJobRunsCommand}"  Margin="0 0 10 0" Padding="30 15" Height="Auto" VerticalAlignment="Center" Content="ANALYZE">
                        <Button.Style>
                            <Style TargetType="Button" BasedOn="{StaticResource {x:Type Button}}">
                                <Setter Property="IsEnabled" Value="False"/>
                                <Style.Triggers>
                                    <MultiDataTrigger>
                                        <MultiDataTrigger.Conditions>
                                            <Condition Binding="{Binding Path=(Validation.HasError), Source={x:Reference startdatePicker}}" Value="False"/>
                                            <Condition Binding="{Binding Path=(Validation.HasError), Source={x:Reference endDatePicker}}" Value="False"/>
                                        </MultiDataTrigger.Conditions>
                                        <Setter Property="IsEnabled" Value="True"/>
                                    </MultiDataTrigger>
                                </Style.Triggers>
                            </Style>
                        </Button.Style>
                    </Button>
                </Grid>
            </Border>
        </Grid>

        <DataGrid x:Name="ItemsGrid" GridLinesVisibility="None" Grid.Row="1" Margin="20 0 0 10" SelectionMode="Single" SelectionUnit="FullRow"  BorderBrush="{StaticResource borderBrush}" IsReadOnly="True" BorderThickness="1" RowHeight="80" 
                           Background="{StaticResource TransparentBackgroundBrush}"  AlternatingRowBackground="{StaticResource Transparent200}" AutoGenerateColumns="False" CanUserReorderColumns="False"
                           CanUserAddRows="False" CanUserDeleteRows="False" ItemsSource="{Binding JobRuns}" HorizontalScrollBarVisibility="Disabled"  CanUserResizeColumns="False" CanUserResizeRows="False"
                           SelectedItem="{Binding SelectedJobRun}" CanUserSortColumns="True" HorizontalAlignment="Stretch" HorizontalContentAlignment="Stretch" FontSize="11">

            <DataGrid.Resources>
                <Style TargetType="DataGridColumnHeader" BasedOn="{StaticResource {x:Type DataGridColumnHeader}}">
                    <Setter Property="HorizontalAlignment" Value="Left"></Setter>
                    <Setter Property="HorizontalContentAlignment" Value="Left"></Setter>
                    <Setter Property="Padding" Value="0 8 0 8"></Setter>
                    <Setter Property="Margin" Value="0 0 0 0"></Setter>
                    <Setter Property="FontWeight" Value="SemiBold"/>
                </Style>
            </DataGrid.Resources>

            <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>
                    <Setter Property="VerticalAlignment" Value="Center"/>
                    <Setter Property="HorizontalAlignment" Value="Left"/>
                    <Setter Property="Margin" Value="0 0 10 0"/>
                    <Setter Property="Template">
                        <Setter.Value>
                            <ControlTemplate TargetType="{x:Type DataGridCell}">
                                <ContentPresenter VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
                            </ControlTemplate>
                        </Setter.Value>
                    </Setter>
                    <Style.Triggers>
                        <Trigger Property="IsSelected" Value="True">
                            <Setter Property="Background" Value="Transparent"></Setter>
                            <Setter Property="Foreground" Value="{StaticResource AccentColorBrush}" />
                        </Trigger>
                    </Style.Triggers>
                </Style>
            </DataGrid.CellStyle>
            <DataGrid.RowStyle>
                <Style TargetType="DataGridRow" BasedOn="{StaticResource {x:Type DataGridRow}}">
                    <Setter Property="BorderThickness" Value="0 0 0 1"/>
                    <Setter Property="BorderBrush" Value="LightGray"/>
                    <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.Columns>
                <DataGridTemplateColumn Header="" Width="50">
                    <DataGridTemplateColumn.CellTemplate>
                        <DataTemplate>
                            <materialDesign:PackIcon Width="24" Height="24" Margin="8 -5 0 0">
                                <materialDesign:PackIcon.Style>
                                    <Style TargetType="materialDesign:PackIcon">
                                        <Setter Property="Kind" Value="Check"></Setter>
                                        <Style.Triggers>
                                            <DataTrigger Binding="{Binding JobRun.JobRunStatus}" Value="Completed">
                                                <Setter Property="Kind" Value="Check"></Setter>
                                                <Setter Property="Foreground" Value="{StaticResource GreenOpenFileBrush}"></Setter>
                                            </DataTrigger>
                                            <DataTrigger Binding="{Binding JobRun.JobRunStatus}" Value="Aborted">
                                                <Setter Property="Kind" Value="Alert"></Setter>
                                                <Setter Property="Foreground" Value="{StaticResource OrangeBrush}"></Setter>
                                            </DataTrigger>
                                            <DataTrigger Binding="{Binding JobRun.JobRunStatus}" Value="Failed">
                                                <Setter Property="Kind" Value="AlertOctagon"></Setter>
                                                <Setter Property="Foreground" Value="{StaticResource RedBrush100}"></Setter>
                                            </DataTrigger>
                                        </Style.Triggers>
                                    </Style>
                                </materialDesign:PackIcon.Style>
                            </materialDesign:PackIcon>
                        </DataTemplate>
                    </DataGridTemplateColumn.CellTemplate>
                </DataGridTemplateColumn>
                <DataGridTextColumn Header="ID" Binding="{Binding JobRun.ID}" Width="50" ElementStyle="{StaticResource WrapText}"/>
                <DataGridTextColumn Header="Machine" Binding="{Binding Machine.SerialNumber}" Width="100" ></DataGridTextColumn>
                <DataGridTextColumn Header="User" Binding="{Binding User.Contact.FullName,TargetNullValue='PPC',FallbackValue='PPC'}" Width="100" ElementStyle="{StaticResource WrapText}" />
                <DataGridTextColumn Header="Job Name" Binding="{Binding JobRun.JobName}" Width="100" ElementStyle="{StaticResource WrapText}"/>
                <DataGridTextColumn Header="Thread" Binding="{Binding Rml.Name}" Width="80" ElementStyle="{StaticResource WrapText}"/>
                <DataGridTextColumn Header="Length" Binding="{Binding JobRun.JobLength, StringFormat={}{0:0.00}}" Width="60" />
                <DataGridTextColumn Header="Source" Binding="{Binding JobRun.Source, Converter={StaticResource EnumToDescriptionConverter}}" Width="60" />
                <DataGridTextColumn Header="Upload &#10;Duration" Binding="{Binding UploadDuration, Converter={StaticResource DateTimeToStringFormatConverter}, FallbackValue='N/A',TargetNullValue='N/A'}" Width="80"/>
                <DataGridTextColumn Header="Heating &#10;Duration" Binding="{Binding HeatingDuration, Converter={StaticResource DateTimeToStringFormatConverter}, FallbackValue='N/A',TargetNullValue='N/A'}" Width="80" />
                <DataGridTextColumn Header="Start Time" Binding="{Binding JobRun.ActualStartDate, Converter={StaticResource DateTimeUTCToShortDateTimeConverter}}" Width="95" />
                <DataGridTextColumn Header="IsGradient" Binding="{Binding JobRun.IsGradient}" Width="70" />
                <DataGridTextColumn Header="GR" Binding="{Binding JobRun.GradientResolutionCm}" Width="30" />
                <DataGridTextColumn Header="Status" Binding="{Binding JobRun.JobRunStatus, Converter={StaticResource EnumToDescriptionConverter}}" Width="70"/>
                <DataGridTextColumn Header="End Time" Binding="{Binding JobRun.EndDate, Converter={StaticResource DateTimeUTCToShortDateTimeConverter}}" Width="95" />
                <DataGridTextColumn Header="End &#10;Position" Binding="{Binding JobRun.EndPosition, StringFormat={}{0:0.00}}" Width="70" />
                <DataGridTemplateColumn Header="Liquid Quantities" Width="1*">
                    <DataGridTemplateColumn.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>
                            <Setter Property="VerticalAlignment" Value="Center"/>
                            <Setter Property="HorizontalAlignment" Value="Stretch"/>
                            <Setter Property="Margin" Value="0 0 10 0"/>
                            <Setter Property="Template">
                                <Setter.Value>
                                    <ControlTemplate TargetType="{x:Type DataGridCell}">
                                        <ContentPresenter VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
                                    </ControlTemplate>
                                </Setter.Value>
                            </Setter>
                            <Style.Triggers>
                                <Trigger Property="IsSelected" Value="True">
                                    <Setter Property="Background" Value="Transparent"></Setter>
                                    <Setter Property="Foreground" Value="{StaticResource AccentColorBrush}" />
                                </Trigger>
                            </Style.Triggers>
                        </Style>
                    </DataGridTemplateColumn.CellStyle>
                    <DataGridTemplateColumn.CellTemplate>
                        <DataTemplate>
                            <Grid  HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
                                <Grid.RowDefinitions>
                                    <RowDefinition Height="1*"/>
                                    <RowDefinition Height="20"/>
                                </Grid.RowDefinitions>
                                <Grid.ColumnDefinitions>
                                    <ColumnDefinition Width="1*" MaxWidth="200"/>
                                </Grid.ColumnDefinitions>
                                <ItemsControl ItemsSource="{Binding JobRun.LiquidQuantitiesFast,Mode=OneWay}" Margin="0 0 0 0" Height="70">
                                <ItemsControl.ItemContainerStyle>
                                    <Style TargetType="ContentPresenter">
                                        <Setter Property="Visibility" Value="Visible"></Setter>
                                        <Style.Triggers>
                                            <DataTrigger Binding="{Binding Quantity}" Value="0">
                                                <Setter Property="Visibility" Value="Collapsed"></Setter>
                                            </DataTrigger>
                                        </Style.Triggers>
                                    </Style>
                                </ItemsControl.ItemContainerStyle>
                                <ItemsControl.ItemsPanel>
                                    <ItemsPanelTemplate>
                                        <StackPanel Orientation="Horizontal" IsItemsHost="True"></StackPanel>
                                    </ItemsPanelTemplate>
                                </ItemsControl.ItemsPanel>
                                    <ItemsControl.ItemTemplate>
                                        <DataTemplate>
                                            <DockPanel  ToolTip="{Binding Quantity,  Converter={StaticResource TooltipLiquidQuantityFormatConverter}, ConverterParameter='#,#\\'}" ToolTipService.Placement="Center" ToolTipService.VerticalOffset="10">
                                                <Grid DockPanel.Dock="Top" Height="40" Margin="0 5 8 0" Width="16" >
                                                    <Border x:Name="LiquidTypeBorder"  BorderThickness="1" BorderBrush="{StaticResource borderBrush}"  CornerRadius="2" >
                                                        <Canvas x:Name="LiquidCanvas" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" Margin="0" ClipToBounds="True" ToolTip="{Binding Quantity}" ToolTipService.Placement="Left" ToolTipService.VerticalOffset="10">
                                                            <Border  Height="{Binding RelativeSource={RelativeSource AncestorType=Canvas}, Path=ActualHeight }" Width="{Binding RelativeSource={RelativeSource AncestorType=Canvas}, Path=ActualWidth }" >
                                                                <Border.Background>
                                                                    <SolidColorBrush Color="{Binding LiquidType,Converter={StaticResource LiquidTypeToColorConverter}}" />
                                                                </Border.Background>
                                                                <Border.Style>
                                                                    <Style>
                                                                        <Setter Property="Canvas.Top" >
                                                                            <Setter.Value>
                                                                                <MultiBinding Converter="{StaticResource MidTankLevelToElementHeightConverter}">
                                                                                    <Binding RelativeSource="{RelativeSource Self}" Path="ActualHeight" />
                                                                                    <Binding Path="Quantity" />
                                                                                </MultiBinding>
                                                                            </Setter.Value>
                                                                        </Setter>
                                                                    </Style>
                                                                </Border.Style>
                                                            </Border>
                                                            <Border Background="Transparent" ToolTip="{Binding Quantity, Converter={StaticResource TooltipLiquidQuantityFormatConverter}, ConverterParameter='#,#\\'}" Height="{Binding RelativeSource={RelativeSource AncestorType=Canvas}, Path=ActualHeight }" Width="{Binding RelativeSource={RelativeSource AncestorType=Canvas}, Path=ActualWidth }"></Border>
                                                        </Canvas>
                                                    </Border>
                                                </Grid>
                                                <TextBlock DockPanel.Dock="Bottom" FontSize="9" VerticalAlignment="Center" HorizontalAlignment="Center" Margin="0 0 10 0" Text="{Binding LiquidType,Converter={StaticResource StringToFirstLetterConverter}}" Foreground="Gray"/>
                                            </DockPanel>

                                        </DataTemplate>
                                    </ItemsControl.ItemTemplate>
                                </ItemsControl>
                                <Border Grid.Row="1" Grid.Column="0" Background="Transparent" HorizontalAlignment="Stretch" Height="8" BorderThickness="1" BorderBrush="{StaticResource borderBrush}">
                                    <Rectangle Margin="0 0 -1 0" Fill="{StaticResource AccentColorBrush}" HorizontalAlignment="Left" VerticalAlignment="Stretch" ToolTip="{Binding JobRun.EndPosition}">
                                        <Rectangle.Width>
                                            <MultiBinding Converter="{StaticResource JobLengthConverter}">
                                                <Binding Path="JobRun.JobLength" />
                                                <Binding Path="JobRun.EndPosition"/>
                                                <Binding Path="ActualWidth" RelativeSource="{RelativeSource AncestorType=Border}"/>
                                            </MultiBinding>
                                        </Rectangle.Width>
                                    </Rectangle>
                                </Border>
                            </Grid>
                        </DataTemplate>
                    </DataGridTemplateColumn.CellTemplate>
                </DataGridTemplateColumn>
            </DataGrid.Columns>
        </DataGrid>
        <Border Grid.Row="1" Grid.Column="1" Grid.RowSpan="2" Margin="20, 0, 20, 20" BorderBrush="{StaticResource borderBrush}" Background="{StaticResource TransparentBackgroundBrush}" BorderThickness="1">
            
            <StackPanel>
                <TextBlock Margin="10" Text="{Binding SelectedJobName}"></TextBlock>
            </StackPanel>
        </Border>
        <Border Grid.Row="2" Margin="20, 0, 0, 20" Height="200" BorderBrush="{StaticResource borderBrush}" Background="{StaticResource TransparentBackgroundBrush}" BorderThickness="1">
            <Grid  >
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="*"/>
                    <ColumnDefinition Width="2"/>
                    <ColumnDefinition Width="*"/>
                    <ColumnDefinition Width="2"/>
                    <ColumnDefinition Width="*"/>
                </Grid.ColumnDefinitions>
                <Border Grid.Column="0" BorderBrush="{StaticResource borderBrush}" Padding="5" BorderThickness="1" CornerRadius="5" Margin="10">
                    <StackPanel Orientation="Vertical" Margin="5">
                        <ItemsControl ItemsSource="{Binding StatisticsValueCollection.StatisticsCollection}">
                            <ItemsControl.ItemTemplate>
                                <DataTemplate>
                                    <StackPanel Orientation="Horizontal" Margin="0 3">
                                        <TextBlock Text="{Binding Name}" FontWeight="SemiBold"/>
                                        <TextBlock Text=": "/>
                                        <TextBlock Text="{Binding Value, StringFormat={}{0:N2}}"/>
                                        <TextBlock Text="{Binding Unit}"/>
                                    </StackPanel>
                                </DataTemplate>
                            </ItemsControl.ItemTemplate>
                        </ItemsControl>
                        <TextBlock Visibility="Collapsed" Margin="0 10 0 0" Text="Total Thread Consumption per thread:" FontWeight="SemiBold">
                            <TextBlock.Style>
                                <Style TargetType="TextBlock">
                                    <Setter Property="Visibility" Value="Visible" />
                                    <Style.Triggers>
                                        <DataTrigger Binding="{Binding StatisticsValueCollection.ThreadConsumptionPerThreadCollection.Count}" Value="0">
                                            <Setter Property="Visibility" Value="Collapsed" />
                                        </DataTrigger>
                                    </Style.Triggers>
                                </Style>
                            </TextBlock.Style>
                        </TextBlock>
                        <ItemsControl Visibility="Collapsed" ItemsSource="{Binding StatisticsValueCollection.ThreadConsumptionPerThreadCollection}">
                            <ItemsControl.ItemsPanel>
                                <ItemsPanelTemplate>
                                    <UniformGrid Rows="3" />
                                </ItemsPanelTemplate>
                            </ItemsControl.ItemsPanel>
                            <ItemsControl.Resources>
                                <DataTemplate DataType="{x:Type model:StatisticsValue}">
                                    <StackPanel Orientation="Horizontal">
                                        <TextBlock Text="{Binding Name}" FontWeight="SemiBold"/>
                                        <TextBlock Text=": "/>
                                        <TextBlock Text="{Binding Value, StringFormat={}{0:0.0}}"/>
                                        <TextBlock Text="{Binding Unit}"/>
                                    </StackPanel>
                                </DataTemplate>
                                <DataTemplate DataType="{x:Type model:MoreValue}">
                                    <Border BorderThickness="0">
                                        <TextBlock Text="{Binding Text}" Tag="{Binding Path=DataContext.StatisticsValueCollection.ThreadConsumptionPerThread, RelativeSource={RelativeSource Mode=FindAncestor,  AncestorType={x:Type ItemsControl}}}"   HorizontalAlignment="Left"   VerticalAlignment="Center" >
                                            <TextBlock.ToolTip >
                                                <ToolTip DataContext="{Binding RelativeSource={RelativeSource Self},Path=PlacementTarget.Tag}" Placement="Right" Background="{StaticResource Logging.Background}">
                                                    <Border CornerRadius="5">
                                                        <ItemsControl  ItemsSource="{Binding }">
                                                            <ItemsControl.ItemTemplate>
                                                                <DataTemplate>
                                                                    <StackPanel Orientation="Horizontal" Margin="2">
                                                                        <TextBlock Margin="5 0 0 0" Text="{Binding Name}" FontWeight="SemiBold"/>
                                                                        <TextBlock Text=": "/>
                                                                        <TextBlock Text="{Binding Value, StringFormat={}{0:N0}}"/>
                                                                        <TextBlock Text="{Binding Unit}"/>
                                                                    </StackPanel>
                                                                </DataTemplate>
                                                            </ItemsControl.ItemTemplate>
                                                        </ItemsControl>
                                                    </Border>
                                                </ToolTip>
                                            </TextBlock.ToolTip>
                                        </TextBlock>
                                    </Border>
                                </DataTemplate>
                            </ItemsControl.Resources>
                        </ItemsControl>
                    </StackPanel>
                </Border>
                <Border Grid.Column="1" HorizontalAlignment="Center" VerticalAlignment="Stretch" Width="2" Background="{StaticResource borderBrush}" Margin="0 4" Visibility="Visible"></Border>
                <Border Grid.Column="2" BorderBrush="{StaticResource borderBrush}" Padding="5" BorderThickness="1" CornerRadius="5" Margin="10">
                    <DockPanel>
                        <UniformGrid Columns="3">
                            <DockPanel>
                                <TextBlock DockPanel.Dock="Top" FontSize="12" FontWeight="Bold" HorizontalAlignment="Center" Padding="2" Text="PPC/MS"></TextBlock>
                                <lvc:PieChart  Series="{Binding StatisticsValueCollection.PieJobSource.SeriesCollection}" >
                                    <lvc:PieChart.DataTooltip>
                                        <tooltips:PieChartTooltipControl Visibility="Visible" />
                                    </lvc:PieChart.DataTooltip>
                                </lvc:PieChart>
                            </DockPanel>
                            <DockPanel>
                                <TextBlock DockPanel.Dock="Top" FontSize="12" FontWeight="Bold" HorizontalAlignment="Center" Padding="2" Text="Failed/Aborted/Completed"></TextBlock>
                                <lvc:PieChart  Series="{Binding StatisticsValueCollection.PieJobRunStatus.SeriesCollection}">
                                    <lvc:PieChart.DataTooltip>
                                        <tooltips:PieChartTooltipControl Visibility="Visible" />
                                    </lvc:PieChart.DataTooltip>
                                </lvc:PieChart>
                            </DockPanel>
                            <DockPanel>
                                <TextBlock DockPanel.Dock="Top" FontSize="12" FontWeight="Bold" HorizontalAlignment="Center" Padding="2" Text="Gradient/Solid"></TextBlock>
                                <lvc:PieChart  Series="{Binding StatisticsValueCollection.PieGradientSolid.SeriesCollection}"  >
                                    <lvc:PieChart.DataTooltip>
                                        <tooltips:PieChartTooltipControl Visibility="Visible" />
                                    </lvc:PieChart.DataTooltip>
                                </lvc:PieChart>
                            </DockPanel>
                        </UniformGrid>
                    </DockPanel>
                </Border>

                <Border Grid.Column="3" HorizontalAlignment="Center" VerticalAlignment="Stretch" Width="2" Background="{StaticResource borderBrush}" Margin="0 6" CornerRadius="1"/>

                <Border Grid.Column="4" BorderBrush="{StaticResource borderBrush}" Padding="5" BorderThickness="1" CornerRadius="5" Margin="10">
                    <DockPanel>
                        <ItemsControl DockPanel.Dock="Top" ItemsSource="{Binding StatisticsValueCollection.LiquidQuantities}">
                        <ItemsControl.ItemsPanel>
                            <ItemsPanelTemplate>
                                    <UniformGrid Columns="3"/>
                            </ItemsPanelTemplate>
                        </ItemsControl.ItemsPanel>
                        <ItemsControl.ItemTemplate>
                            <DataTemplate>
                                    <Border Background="Transparent" ToolTip="{Binding Quantity, Converter={StaticResource TooltipLiquidQuantityFormatConverter}, ConverterParameter='#,#\\'}">
                                        <StackPanel Orientation="Horizontal" Margin="4">
                                        <Ellipse Width="30" Height="30">
                                            <Ellipse.Fill>
                                                <SolidColorBrush Color="{Binding LiquidType,Converter={StaticResource LiquidTypeToColorConverter}}" />
                                            </Ellipse.Fill>
                                        </Ellipse>
                                        <StackPanel Orientation="Vertical" Margin="4">
                                            <TextBlock Text="{Binding LiquidType,Converter={StaticResource EnumToDescriptionConverter}}" FontWeight="SemiBold"></TextBlock>
                                            <TextBlock >
                                             <Run Text="{Binding Quantity, Converter={StaticResource NanoLiterToLiterFormatConverter}, ConverterParameter='0.00'}"></Run>
                                            <Run Text=" liters"></Run>
                                            </TextBlock>
                                        </StackPanel>
                                    </StackPanel>
                                    </Border>
                                </DataTemplate>
                        </ItemsControl.ItemTemplate>
                        </ItemsControl>
                        <Border Background="Transparent" ToolTip="{Binding StatisticsValueCollection.TotalLiquidQuantities, Converter={StaticResource TooltipLiquidQuantityFormatConverter}, ConverterParameter='#,#\\'}">
                        <TextBlock DockPanel.Dock="Bottom" Margin="4 10 0 0 ">
                            <Run Text="Total liquid quantities for all: " FontWeight="SemiBold"/>
                            <Run Text="{Binding StatisticsValueCollection.TotalLiquidQuantities, Converter={StaticResource NanoLiterToLiterFormatConverter}, ConverterParameter='0.00'}"></Run>
                            <Run Text=" liters"></Run>
                            <TextBlock.Style>
                                <Style TargetType="TextBlock">
                                    <Setter Property="Visibility" Value="Visible" />
                                    <Style.Triggers>
                                        <DataTrigger Binding="{Binding StatisticsValueCollection.LiquidQuantities.Count}" Value="0">
                                            <Setter Property="Visibility" Value="Collapsed" />
                                        </DataTrigger>
                                    </Style.Triggers>
                                </Style>
                            </TextBlock.Style>
                        </TextBlock>
                        </Border>
                    </DockPanel>
                </Border>
            </Grid>
        </Border>
        <Grid Grid.Row="0" Grid.Column="1" Margin="20 0 20 0">
            <Border  Padding="14 14 12 14" BorderBrush="DimGray" BorderThickness="0" Background="{StaticResource Logging.Background}" HorizontalAlignment="Stretch" CornerRadius="2" >
                <Border.Effect>
                    <DropShadowEffect ShadowDepth="4" BlurRadius="10" Opacity="0.5"/>
                </Border.Effect>

                <Button Grid.Column="1" HorizontalAlignment="Right" Command="{Binding ExportToExcelCommand}"  Margin="0 0 10 0" Padding="10 15" Height="Auto" VerticalAlignment="Center" Width="Auto">EXPORT TO EXCEL</Button>
            </Border>
        </Grid>
    </Grid>
</UserControl>