155 lines
5.7 KiB
C#
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}";
|
|
}
|
|
}
|
|
|
|
|
|
}
|