This commit is contained in:
2026-04-17 14:55:32 -04:00
commit bc3ac1d4c9
18017 changed files with 4371742 additions and 0 deletions

View File

@@ -0,0 +1,6 @@
using DTS.Common.Base;
namespace DTS.Common.Interface
{
public interface ITestSettingsView : IBaseView { }
}

View File

@@ -0,0 +1,187 @@
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
x:Class="DTS.Common.Resources.MainTabControlResource"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Style x:Key="MainTabControlStyle" TargetType="{x:Type TabItem}">
<Setter Property="Foreground" Value="{DynamicResource TextBrush}" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type TabItem}">
<ControlTemplate.Resources>
<Storyboard x:Key="HoverOn">
<DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="HoverBorder" Storyboard.TargetProperty="(UIElement.Opacity)">
<SplineDoubleKeyFrame KeyTime="00:00:00.1000000" Value="1"/>
</DoubleAnimationUsingKeyFrames>
</Storyboard>
<Storyboard x:Key="HoverOff">
<DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="HoverBorder" Storyboard.TargetProperty="(UIElement.Opacity)">
<SplineDoubleKeyFrame KeyTime="00:00:00.3000000" Value="0"/>
</DoubleAnimationUsingKeyFrames>
</Storyboard>
<Storyboard x:Key="SelectedOn">
<DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="SelectedBorder" Storyboard.TargetProperty="(UIElement.Opacity)">
<SplineDoubleKeyFrame KeyTime="00:00:00.1000000" Value="1"/>
</DoubleAnimationUsingKeyFrames>
</Storyboard>
<Storyboard x:Key="SelectedOff">
<DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="SelectedBorder" Storyboard.TargetProperty="(UIElement.Opacity)">
<SplineDoubleKeyFrame KeyTime="00:00:00.3000000" Value="0"/>
</DoubleAnimationUsingKeyFrames>
</Storyboard>
</ControlTemplate.Resources>
<Grid x:Name="grid" Margin="2,1,2,3">
<Grid.LayoutTransform>
<TransformGroup>
<ScaleTransform ScaleX="1" ScaleY="1"/>
<SkewTransform AngleX="0" AngleY="0"/>
<RotateTransform Angle="0"/>
<TranslateTransform X="0" Y="0"/>
</TransformGroup>
</Grid.LayoutTransform>
<Border x:Name="border" BorderBrush="{x:Null}" CornerRadius="5" Opacity="0.5">
<Border.Background>
<LinearGradientBrush EndPoint="0.5,0.976" StartPoint="0.5,0.039">
<GradientStop Color="#7F595959" Offset="0" />
<GradientStop Color="#19FFFFFF" Offset="1" />
</LinearGradientBrush>
</Border.Background>
<ContentPresenter ContentSource="Header" Content="{Binding RelativeSource={RelativeSource AncestorType=TabItem}, Path=Content.HeaderInfo}"
VerticalAlignment="Center" HorizontalAlignment="Center" Margin="12,5" RecognizesAccessKey="True" />
</Border>
<Border x:Name="SelectedBorder" BorderBrush="{x:Null}" CornerRadius="5" Opacity="0" Background="{DynamicResource SelectedBackgroundBrush}"/>
<Border x:Name="HoverBorder" BorderBrush="{x:Null}" CornerRadius="5" Opacity="0">
<Border.Background>
<LinearGradientBrush EndPoint="0.5,0.976" StartPoint="0.5,0.039">
<GradientStop Color="#7F595959" Offset="0" />
<GradientStop Color="#19FFFFFF" Offset="1" />
</LinearGradientBrush>
</Border.Background>
</Border>
<Grid>
<ContentPresenter x:Name="ContentSite" ContentSource="Header" Content="{Binding RelativeSource={RelativeSource AncestorType=TabItem}, Path=Content.HeaderInfo}"
VerticalAlignment="Center" HorizontalAlignment="Center" Margin="6,1,6,1" RecognizesAccessKey="True" />
</Grid>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="TabStripPlacement" Value="Left">
<Setter Property="LayoutTransform" TargetName="grid">
<Setter.Value>
<TransformGroup>
<ScaleTransform ScaleX="1" ScaleY="1" />
<SkewTransform AngleX="0" AngleY="0" />
<RotateTransform Angle="-90" />
<TranslateTransform X="0" Y="0" />
</TransformGroup>
</Setter.Value>
</Setter>
</Trigger>
<Trigger Property="TabStripPlacement" Value="Right">
<Setter Property="LayoutTransform" TargetName="grid">
<Setter.Value>
<TransformGroup>
<ScaleTransform ScaleX="1" ScaleY="1" />
<SkewTransform AngleX="0" AngleY="0" />
<RotateTransform Angle="90" />
<TranslateTransform X="0" Y="0" />
</TransformGroup>
</Setter.Value>
</Setter>
</Trigger>
<Trigger Property="TabStripPlacement" Value="Bottom">
<Setter Property="LayoutTransform" TargetName="ContentSite">
<Setter.Value>
<TransformGroup>
<ScaleTransform ScaleX="1" ScaleY="1" />
<SkewTransform AngleX="0" AngleY="0" />
<RotateTransform Angle="180" />
<TranslateTransform X="0" Y="0" />
</TransformGroup>
</Setter.Value>
</Setter>
<Setter Property="LayoutTransform" TargetName="grid">
<Setter.Value>
<TransformGroup>
<ScaleTransform ScaleX="1" ScaleY="1"/>
<SkewTransform AngleX="0" AngleY="0"/>
<RotateTransform Angle="180"/>
<TranslateTransform X="0" Y="0"/>
</TransformGroup>
</Setter.Value>
</Setter>
</Trigger>
<Trigger Property="TabStripPlacement" Value="Top">
<Setter Property="LayoutTransform" TargetName="ContentSite">
<Setter.Value>
<TransformGroup>
<ScaleTransform ScaleX="1" ScaleY="1" />
<SkewTransform AngleX="0" AngleY="0" />
<RotateTransform Angle="-180" />
<TranslateTransform X="0" Y="0" />
</TransformGroup>
</Setter.Value>
</Setter>
<Setter Property="LayoutTransform" TargetName="grid">
<Setter.Value>
<TransformGroup>
<ScaleTransform ScaleX="1" ScaleY="1"/>
<SkewTransform AngleX="0" AngleY="0"/>
<RotateTransform Angle="-180"/>
<TranslateTransform X="0" Y="0"/>
</TransformGroup>
</Setter.Value>
</Setter>
</Trigger>
<MultiTrigger>
<MultiTrigger.ExitActions>
<BeginStoryboard Storyboard="{StaticResource HoverOff}" x:Name="HoverOff_BeginStoryboard"/>
</MultiTrigger.ExitActions>
<MultiTrigger.EnterActions>
<BeginStoryboard Storyboard="{StaticResource HoverOn}"/>
</MultiTrigger.EnterActions>
<MultiTrigger.Conditions>
<Condition Property="IsMouseOver" Value="True" />
<Condition Property="Selector.IsSelected" Value="False" />
</MultiTrigger.Conditions>
</MultiTrigger>
<Trigger Property="IsSelected" Value="True">
<Trigger.ExitActions>
<BeginStoryboard Storyboard="{StaticResource SelectedOff}" x:Name="SelectedOff_BeginStoryboard"/>
</Trigger.ExitActions>
<Trigger.EnterActions>
<BeginStoryboard Storyboard="{StaticResource SelectedOn}" x:Name="SelectedOn_BeginStoryboard"/>
</Trigger.EnterActions>
<Setter Property="Panel.ZIndex" Value="100" />
</Trigger>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="IsMouseOver" Value="True" SourceName="grid" />
<Condition Property="Selector.IsSelected" Value="True" />
</MultiTrigger.Conditions>
<Setter Property="Background" TargetName="border" Value="{DynamicResource SelectedBackgroundBrush}" />
<Setter Property="Opacity" TargetName="border" Value="0.9" />
</MultiTrigger>
<Trigger Property="IsEnabled" Value="False">
<Setter Property="Foreground" Value="{DynamicResource DisabledForegroundBrush}" />
<Setter Property="Background" TargetName="border" Value="{DynamicResource DisabledBackgroundBrush}"/>
<Setter Property="Opacity" TargetName="grid" Value="0.3"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
<Style.Triggers>
<Trigger Property="Selector.IsSelected" Value="True">
<Setter Property="Foreground" >
<Setter.Value>
<SolidColorBrush Color="{DynamicResource BlackColor}"/>
</Setter.Value>
</Setter>
</Trigger>
</Style.Triggers>
</Style>
<Style x:Key="{x:Type TabItem}" TargetType="TabItem" >
<Setter Property="ToolTipService.ToolTip" Value="" />
<Setter Property="ToolTipService.ShowOnDisabled" Value="True" />
<EventSetter Event="ToolTipOpening" Handler="ToolTipEventHandler" />
</Style>
</ResourceDictionary>

View File

@@ -0,0 +1,38 @@
using System.Data;
using DTS.Common.Interface.Tags;
using DTS.Common.Interface.Sensors;
namespace DTS.Common.Classes.Sensors
{
public class SensorDbRecord : TagAwareBase, ISensorDbRecord
{
public override TagTypes TagType => TagTypes.SensorModels;
protected int _id = 0;
public int id
{
get => _id;
set => SetProperty(ref _id, value, "id");
}
protected short _sensorType = 0;
public short SensorType
{
get => _sensorType;
set => SetProperty(ref _sensorType, value, "SensorType");
}
protected string _serialNumber = string.Empty;
public string SerialNumber
{
get => _serialNumber;
set => SetProperty(ref _serialNumber, value, "SerialNumber");
}
public SensorDbRecord(IDataReader reader)
{
id = Utility.GetInt(reader, "id", 0);
SensorType = Utility.GetShort(reader, "SensorType", 0);
SerialNumber = Utility.GetString(reader, "SerialNumber");
}
}
}

View File

@@ -0,0 +1,27 @@
using DTS.Common.Interface.GroupTemplate;
using Microsoft.Practices.Prism.Events;
namespace DTS.Common.Events.GroupTemplates.TemplateChannelList
{
/// <summary>
/// The GroupTemplateListGroupTemplateSelectedEvent event.
/// </summary>
///
/// <remarks>called when a template is selected.</remarks>
///
public class TemplateChannelListRequiredChangedEvent : CompositePresentationEvent<TemplateChannelListRequiredChangeEventArgs> { }
public class TemplateChannelListRequiredChangeEventArgs
{
public object Consumer { get; }
public IGroupTemplateChannel [] Channels { get; }
public TemplateChannelListRequiredChangeEventArgs(object o, IGroupTemplateChannel[] channels)
{
Consumer = o;
Channels = channels;
}
}
}

View File

@@ -0,0 +1,11 @@
using DTS.Common.Base;
namespace DTS.Common.Interface.Groups
{
/// <summary>
/// the importview is responsible for presenting feedback of progress while creating and commiting groups
/// </summary>
public interface IGroupImportImportView:IBaseView
{
}
}