Files
DP44/Common/DTS.CommonCore/Controls/TestIDControl.xaml.cs
2026-04-17 14:55:32 -04:00

155 lines
5.7 KiB
C#

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Windows;
using System.Windows.Controls;
namespace DTS.Common.Controls
{
//Remove this control after deleting the TTS module and migrating to new test setup wizard
/// <inheritdoc cref="UserControl" />
/// <summary>
/// Interaction logic for TestIdControl.xaml
/// </summary>
public partial class TestIdControl : UserControl, INotifyPropertyChanged
{
#region INotifyPropertyChanged
public event PropertyChangedEventHandler PropertyChanged;
protected bool SetProperty<T>(ref T storage, T value, string propertyName = null)
{
if (Equals(storage, value)) return false;
storage = value;
OnPropertyChanged(propertyName);
return true;
}
protected void OnPropertyChanged(string propertyName = null)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
#endregion
private static readonly TestIdPreFixSuffixHelper TEST_ID_SUFFIX_VALUE_NONE_ITEM =
new TestIdPreFixSuffixHelper(TestIdFixedPrefixSuffixValues.None);
private static readonly TestIdPreFixSuffixHelper TEST_ID_SUFFIX_VALUE_TIME_STAMP_ITEM =
new TestIdPreFixSuffixHelper(TestIdFixedPrefixSuffixValues.TimeStamp);
private static readonly TestIdPreFixSuffixHelper TEST_ID_SUFFIX_VALUE_TEST_SETUP_ITEM =
new TestIdPreFixSuffixHelper(TestIdFixedPrefixSuffixValues.TestSetupName);
public TestIdControl()
{
InitializeComponent();
}
private string _testSetupLabel = string.Empty;
public string TestSetupLabel
{
get => _testSetupLabel;
set
{
_testSetupLabel = value;
OnPropertyChanged("TestSetupLabel");
OnPropertyChanged("TestSetupLabelVisibility");
}
}
public Visibility TestSetupLabelVisibility => string.IsNullOrEmpty(TestSetupLabel)
? Visibility.Collapsed
: Visibility.Visible;
public string TestIdEditableText { get; set; } = string.Empty;
public void PopulateAllTestIdPrefixSuffixValues(string [] serializedValues)
{
_allTestIdPrefixSuffixValues = new List<TestIdPreFixSuffixHelper>
{
TEST_ID_SUFFIX_VALUE_NONE_ITEM,
TEST_ID_SUFFIX_VALUE_TIME_STAMP_ITEM,
TEST_ID_SUFFIX_VALUE_TEST_SETUP_ITEM
};
// Second, populate all values from the db
var dbList = new List<string>();
dbList.AddRange(serializedValues);
foreach (var s in dbList)
{
_allTestIdPrefixSuffixValues.Add(new TestIdPreFixSuffixHelper(s));
}
OnPropertyChanged("AllTestIDPrefixSuffixValues");
}
private List<TestIdPreFixSuffixHelper> _allTestIdPrefixSuffixValues;
public TestIdPreFixSuffixHelper[] AllTestIdPrefixSuffixValues => _allTestIdPrefixSuffixValues?.ToArray() ?? new TestIdPreFixSuffixHelper[0];
public TestIdPreFixSuffixHelper SelectedTestIdPrefixValueItem { get; set; } = TEST_ID_SUFFIX_VALUE_NONE_ITEM;
public TestIdPreFixSuffixHelper SelectedTestIdSuffixValueItem { get; set; } = TEST_ID_SUFFIX_VALUE_TIME_STAMP_ITEM;
public string TestName
{
get; set;
}
public string GetTestId()
{
var testIdList = new List<string>();
var prefix = GetRunTimeTestIdPrefixOrSuffix(SelectedTestIdPrefixValueItem);
if (prefix != string.Empty)
{
testIdList.Add(prefix);
}
if (!string.IsNullOrEmpty(TestSetupLabel))
{
testIdList.Add(TestSetupLabel);
}
if (TestIdEditableText != string.Empty)
{
testIdList.Add(TestIdEditableText);
}
var suffix = GetRunTimeTestIdPrefixOrSuffix(SelectedTestIdSuffixValueItem);
if (suffix != string.Empty)
{
testIdList.Add(suffix);
}
return string.Join("_", testIdList);
/*
CurrentTest.TestId = TestId;
CurrentTest.TestIdNode = CurrentTest.TestId;
_page.HeaderRibbon.tbCurrentTestIdString = TestId;*/
}
private string GetRunTimeTestIdPrefixOrSuffix(TestIdPreFixSuffixHelper prefixOrSuffix)
{
var rv = string.Empty;
if (prefixOrSuffix == null) { return rv; }
switch (prefixOrSuffix.TestIdPreFixSuffix.FixedValue)
{
case TestIdFixedPrefixSuffixValues.TestSetupName:
rv = TestName;
break;
case TestIdFixedPrefixSuffixValues.TimeStamp:
rv = GetTestIdTimestamp();
break;
case TestIdFixedPrefixSuffixValues.NotFixed:
rv = prefixOrSuffix.TestIdPreFixSuffix.ToString();
break;
case TestIdFixedPrefixSuffixValues.None:
default:
// do nothing
break;
}
return rv;
}
public string GetTestIdTimestamp()
{
return $"{DateTime.Now.Year:0000}_{DateTime.Now.Month:00}_{DateTime.Now.Day:00} {DateTime.Now.Hour:00}_{DateTime.Now.Minute:00}";
}
}
}