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 @@
12

View File

@@ -0,0 +1 @@
12

View File

@@ -0,0 +1,262 @@
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.OleDb;
using System.Data.SqlClient;
using System.IO;
using System.Windows.Input;
using DTS.Common.Classes.ChannelCodes;
using DTS.Common.Enums;
using DTS.Common.Enums.Channels;
using DTS.Common.Interface.Channels.ChannelCodes;
using DTS.Common.Storage;
namespace ChannelCodes.Model
{
public class ChannelCode : DTS.Common.Classes.ChannelCodes.ChannelCode, IChannelCode
{
//in case this object is held onto longer before cleanup, attempt to empty
//private storage
~ChannelCode()
{
_code = null;
_name = null;
PossibleChannels?.Clear();
PasteCommand = null;
}
/// <summary>
/// whether the current id is valid or not
/// </summary>
/// <returns></returns>
public bool HasValidId()
{
return Id >= 0;
}
public bool IsBlank()
{
return string.IsNullOrEmpty(Name) && string.IsNullOrEmpty(Code);
}
/// <summary>
/// this dates back from when there was a dropdown to select the type of code,
/// I'm not sure it's used anymore (2019-04-11)
/// </summary>
public int SelectedChannelType
{
get
{
switch (CodeType)
{
case ChannelEnumsAndConstants.ChannelCodeType.ISO:
return 0;
case ChannelEnumsAndConstants.ChannelCodeType.User:
return 1;
default:
return 0;
}
}
set
{
switch (value)
{
case 0: CodeType = ChannelEnumsAndConstants.ChannelCodeType.ISO; break;
case 1: CodeType = ChannelEnumsAndConstants.ChannelCodeType.User; break;
}
}
}
private void RegisterCommands()
{
PasteCommand = new PasteCommandClass(PASTE_ID);
CommandManager.RegisterClassCommandBinding(GetType(),
new CommandBinding(PasteCommand, Paste));
}
public ChannelCode(IChannelCode channelCode)
: base(channelCode)
{
RegisterCommands();
}
private void Paste(object sender, ExecutedRoutedEventArgs e)
{
}
public ChannelCode()
{
CodeType = ChannelEnumsAndConstants.ChannelCodeType.ISO;
RegisterCommands();
}
public ChannelCode(IDataRecord sqlReader, IDictionary<short, string> channelCodeLookup)
{
RegisterCommands();
Id = Convert.ToInt32(sqlReader["Id"]);
Code = (string)sqlReader["Code"];
Name = (string)sqlReader["Name"];
var codeType = Convert.ToInt16(sqlReader["CodeTypeInt"]);
if (channelCodeLookup.ContainsKey(codeType))
{
var key = channelCodeLookup[codeType];
switch (key)
{
case ChannelEnumsAndConstants.UserCodeTypeString:
CodeType = ChannelEnumsAndConstants.ChannelCodeType.User;
break;
case ChannelEnumsAndConstants.IsoCodeTypeString:
CodeType = ChannelEnumsAndConstants.ChannelCodeType.ISO;
break;
}
}
}
/// <summary>
/// get all existing channel codes from the db
/// </summary>
/// <param name="lookup">a lookup from channel code type (short) to channel code type string as in the db</param>
/// <returns></returns>
public static ChannelCode[] GetExistingChannelCodes(IDictionary<short, string> lookup)
{
var channelCodes = new List<ChannelCode>();
using (var cmd = DbOperations.GetSQLCommand(true))
{
try
{
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = @"sp_ChannelCodesGet";
cmd.Parameters.Add(new SqlParameter("@Id", SqlDbType.Int) { Value = null });
cmd.Parameters.Add(new SqlParameter("@Code", SqlDbType.NVarChar, 255) { Value = null });
cmd.Parameters.Add(new SqlParameter("@Name", SqlDbType.NVarChar, 255) { Value = null });
cmd.Parameters.Add(new SqlParameter("@CodeType", SqlDbType.SmallInt) { Value = null });
var reader = cmd.ExecuteReader();
while (reader.Read())
{
channelCodes.Add(new ChannelCode(reader, lookup));
}
}
finally
{
cmd.Connection.Dispose();
}
}
return channelCodes.ToArray();
}
/// <summary>
/// retrieves all channel codes and returns as a list
/// </summary>
public static IList<IChannelCode> ChannelCodes
{
get
{
var lookup = ChannelCodeType.GetChannelCodeTypeLookup();
var channelCodes = new List<IChannelCode>();
channelCodes.AddRange(GetExistingChannelCodes(lookup));
channelCodes.AddRange(ISOChannelCodes);
return channelCodes;
}
}
private static readonly object RefreshLock = new object();
public Dictionary<string, string> PossibleChannels { get; private set; }
private static IList<IChannelCode> _isoChannelCodes;
/// <summary>
/// retrieves a list of iso channel codes from the db
/// </summary>
public static IList<IChannelCode> ISOChannelCodes
{
get
{
if (null != _isoChannelCodes) return _isoChannelCodes;
//we only need to fetch these values once, they're not going to change.
var channelCodes = new List<IChannelCode>();
lock (RefreshLock)
{
var sourceFile = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "ISOPossibleChannels.txt");
using (StreamReader sr = File.OpenText(sourceFile))
{
string s = string.Empty;
while ((s = sr.ReadLine()) != null)
{
var splitString = s.Split(',');
var isoCode = splitString[0];
var textL1 = splitString[1];
var newChannelCode = new ChannelCode()
{
Code = isoCode,
Name = textL1,
CodeType = ChannelEnumsAndConstants.ChannelCodeType.ISO
};
if (!channelCodes.Contains(newChannelCode))
{
channelCodes.Add(newChannelCode);
}
}
}
}
_isoChannelCodes = channelCodes;
return _isoChannelCodes;
}
}
/// <summary>
/// not used? maybe was a part of migration?
/// </summary>
/// <param name="reader"></param>
/// <param name="field"></param>
/// <returns></returns>
protected static long GetLong(OleDbDataReader reader, string field)
{
return DBNull.Value == reader[field] ? long.MinValue : Convert.ToInt64(reader[field]);
}
/// <summary>
/// not used, maybe was a part of migration?
/// </summary>
/// <param name="reader"></param>
/// <param name="field"></param>
/// <returns></returns>
protected static DateTime GetDate(OleDbDataReader reader, string field)
{
return DBNull.Value != reader[field] ? (DateTime)reader[field] : DateTime.MinValue;
}
/// <summary>
/// deletes channel code
/// deleting a channel code only removes it from the lookup, doesn't remove it from any existing channels
/// </summary>
public void Delete()
{
_ = DbOperations.ChannelCodesDelete(Id, null, null, null);
}
/// <summary>
/// commits any channel codes to the db
/// this only affects the channel code lookup, not any existing channels
/// </summary>
/// <param name="lookup"></param>
public void Save(IDictionary<ChannelEnumsAndConstants.ChannelCodeType, short> lookup)
{
var restrictedLookup = (IReadOnlyDictionary<ChannelEnumsAndConstants.ChannelCodeType, short>)lookup;
_ = DbOperations.ChannelCodesUpdate(restrictedLookup, this);
}
/// <summary>
/// inserts a new channel code into the db
/// </summary>
/// <param name="lookup"></param>
public void Insert(IDictionary<ChannelEnumsAndConstants.ChannelCodeType, short> lookup)
{
var restrictedLookup = (IReadOnlyDictionary<ChannelEnumsAndConstants.ChannelCodeType, short>)lookup;
var hr = DbOperations.ChannelCodesInsert(restrictedLookup, this, out var id);
if (0 == hr)
{
Id = id;
}
}
}
}

View File

@@ -0,0 +1,185 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{266B86D0-6A3F-4B52-8749-FA87ECB0230F}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>ChannelCodes</RootNamespace>
<AssemblyName>ChannelCodes</AssemblyName>
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<TargetFrameworkProfile />
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
<DebugSymbols>true</DebugSymbols>
<OutputPath>bin\x64\Debug\</OutputPath>
<DefineConstants>CODE_ANALYSIS;DEBUG;TRACE</DefineConstants>
<DebugType>full</DebugType>
<PlatformTarget>x64</PlatformTarget>
<RunCodeAnalysis>false</RunCodeAnalysis>
<ErrorReport>prompt</ErrorReport>
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
<OutputPath>bin\x64\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<Optimize>true</Optimize>
<DebugType>pdbonly</DebugType>
<PlatformTarget>x64</PlatformTarget>
<ErrorReport>prompt</ErrorReport>
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'">
<DebugSymbols>true</DebugSymbols>
<OutputPath>bin\x86\Debug\</OutputPath>
<DefineConstants>CODE_ANALYSIS;DEBUG;TRACE</DefineConstants>
<DebugType>full</DebugType>
<PlatformTarget>x86</PlatformTarget>
<RunCodeAnalysis>true</RunCodeAnalysis>
<ErrorReport>prompt</ErrorReport>
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x86'">
<OutputPath>bin\x86\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<Optimize>true</Optimize>
<DebugType>pdbonly</DebugType>
<PlatformTarget>x86</PlatformTarget>
<ErrorReport>prompt</ErrorReport>
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<ItemGroup>
<Reference Include="Microsoft.Practices.ServiceLocation">
<HintPath>..\..\..\..\Common\DTS.Common\lib\PrismLibrary\Microsoft.Practices.ServiceLocation.dll</HintPath>
</Reference>
<Reference Include="Microsoft.VisualBasic" />
<Reference Include="Microsoft.Xaml.Behaviors">
<HintPath>..\..\..\..\Common\DTS.Common\lib\PrismLibrary\Microsoft.Xaml.Behaviors.dll</HintPath>
</Reference>
<Reference Include="PresentationCore" />
<Reference Include="PresentationFramework" />
<Reference Include="Prism">
<HintPath>..\..\..\..\Common\DTS.Common\lib\PrismLibrary\Prism.dll</HintPath>
</Reference>
<Reference Include="Prism.Unity.Wpf">
<HintPath>..\..\..\..\Common\DTS.Common\lib\PrismLibrary\Prism.Unity.Wpf.dll</HintPath>
</Reference>
<Reference Include="Prism.Wpf">
<HintPath>..\..\..\..\Common\DTS.Common\lib\PrismLibrary\Prism.Wpf.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.ComponentModel.Composition" />
<Reference Include="System.Core" />
<Reference Include="System.Security" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xaml" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data" />
<Reference Include="System.Net.Http" />
<Reference Include="System.Xml" />
<Reference Include="Unity.Abstractions">
<HintPath>..\..\..\..\Common\DTS.Common\lib\PrismLibrary\Unity.Abstractions.dll</HintPath>
</Reference>
<Reference Include="Unity.Container">
<HintPath>..\..\..\..\Common\DTS.Common\lib\PrismLibrary\Unity.Container.dll</HintPath>
</Reference>
<Reference Include="WindowsBase" />
<Reference Include="Xceed.Wpf.Toolkit">
<HintPath>..\..\..\..\Common\DTS.Common\lib\Xceed.Wpf.Toolkit\Xceed.Wpf.Toolkit.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup>
<Compile Include="Model\ChannelCode.cs" />
<Compile Include="Model\ChannelCodeType.cs" />
<Compile Include="Properties\Settings.Designer.cs">
<AutoGen>True</AutoGen>
<DesignTimeSharedInput>True</DesignTimeSharedInput>
<DependentUpon>Settings.settings</DependentUpon>
</Compile>
<Compile Include="ChannelCodesModule.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="Resources\StringResources.Designer.cs">
<DependentUpon>StringResources.resx</DependentUpon>
<AutoGen>True</AutoGen>
<DesignTime>True</DesignTime>
</Compile>
<Compile Include="Resources\TranslateExtension.cs" />
<Compile Include="ViewModel\ChannelCodesListViewModel.cs" />
<Compile Include="View\ChannelCodesListView.xaml.cs">
<DependentUpon>ChannelCodesListView.xaml</DependentUpon>
</Compile>
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="Resources\StringResources.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>StringResources.Designer.cs</LastGenOutput>
<SubType>Designer</SubType>
</EmbeddedResource>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\..\..\Common\DTS.Common.Core\DTS.Common.Core.csproj">
<Project>{fab1f470-1574-4301-b56e-d3364aa93679}</Project>
<Name>DTS.Common.Core</Name>
</ProjectReference>
<ProjectReference Include="..\..\..\..\Common\DTS.Common.DAS.Concepts\DTS.Common.DAS.Concepts.csproj">
<Project>{03D8C736-36EB-4CD1-A6D9-130452B23239}</Project>
<Name>DTS.Common.DAS.Concepts</Name>
</ProjectReference>
<ProjectReference Include="..\..\..\..\Common\DTS.Common.ISO\DTS.Common.ISO.csproj">
<Project>{4dccddd1-032f-430c-9a6f-231daca4fbd0}</Project>
<Name>DTS.Common.ISO</Name>
</ProjectReference>
<ProjectReference Include="..\..\..\..\Common\DTS.Common.Storage\DTS.Common.Storage.csproj">
<Project>{e0d1a7d0-dce8-403d-ba85-5a5d66ba1313}</Project>
<Name>DTS.Common.Storage</Name>
</ProjectReference>
<ProjectReference Include="..\..\..\..\Common\DTS.Common.Utilities\DTS.Common.Utilities.csproj">
<Project>{03eace47-ea59-44ac-b49d-956e4dc4d618}</Project>
<Name>DTS.Common.Utilities</Name>
</ProjectReference>
<ProjectReference Include="..\..\..\..\Common\DTS.Common\DTS.Common.csproj">
<Project>{114edc77-f3b5-4576-a91b-40818d503b55}</Project>
<Name>DTS.Common</Name>
</ProjectReference>
<ProjectReference Include="..\..\..\IService\IService.csproj">
<Project>{c9c45b72-05a3-4962-bc13-a78b1f4b1925}</Project>
<Name>IService</Name>
</ProjectReference>
<ProjectReference Include="..\..\..\SensorDB\SensorDB.csproj">
<Project>{444ef10c-046e-47ad-a9a5-17318d488723}</Project>
<Name>SensorDB</Name>
</ProjectReference>
<ProjectReference Include="..\..\..\Users\Users.csproj">
<Project>{BE8D217D-6DA9-4BCA-B62A-A82325B33979}</Project>
<Name>Users</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<None Include="App.config" />
<None Include="Properties\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator>
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
</None>
</ItemGroup>
<ItemGroup>
<Page Include="View\ChannelCodesListView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="Resources\ISOPossibleChannels.txt">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</EmbeddedResource>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<PropertyGroup>
<PostBuildEvent>
</PostBuildEvent>
</PropertyGroup>
</Project>

View File

@@ -0,0 +1,279 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.42000
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace ChannelCodes.Resources {
using System;
/// <summary>
/// A strongly-typed resource class, for looking up localized strings, etc.
/// </summary>
// This class was auto-generated by the StronglyTypedResourceBuilder
// class via a tool like ResGen or Visual Studio.
// To add or remove a member, edit your .ResX file then rerun ResGen
// with the /str option, or rebuild your VS project.
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
internal class StringResources {
private static global::System.Resources.ResourceManager resourceMan;
private static global::System.Globalization.CultureInfo resourceCulture;
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
internal StringResources() {
}
/// <summary>
/// Returns the cached ResourceManager instance used by this class.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Resources.ResourceManager ResourceManager {
get {
if (object.ReferenceEquals(resourceMan, null)) {
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("ChannelCodes.Resources.StringResources", typeof(StringResources).Assembly);
resourceMan = temp;
}
return resourceMan;
}
}
/// <summary>
/// Overrides the current thread's CurrentUICulture property for all
/// resource lookups using this strongly typed resource class.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Globalization.CultureInfo Culture {
get {
return resourceCulture;
}
set {
resourceCulture = value;
}
}
/// <summary>
/// Looks up a localized string similar to All.
/// </summary>
internal static string All {
get {
return ResourceManager.GetString("All", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Channel code.
/// </summary>
internal static string ChannelCode {
get {
return ResourceManager.GetString("ChannelCode", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Type.
/// </summary>
internal static string ChannelType {
get {
return ResourceManager.GetString("ChannelType", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Display name.
/// </summary>
internal static string DisplayName {
get {
return ResourceManager.GetString("DisplayName", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Error: ISO channel {0} is duplicated.
/// </summary>
internal static string DuplicateISOChannelCode {
get {
return ResourceManager.GetString("DuplicateISOChannelCode", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Error: {0} does not have a unique ISO channel name.
/// </summary>
internal static string DuplicateISOChannelName {
get {
return ResourceManager.GetString("DuplicateISOChannelName", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Error: {0} does not have a unique ISO code.
/// </summary>
internal static string DuplicateISOCode {
get {
return ResourceManager.GetString("DuplicateISOCode", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Error: User channel {0} is duplicated.
/// </summary>
internal static string DuplicateUserChannelCode {
get {
return ResourceManager.GetString("DuplicateUserChannelCode", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Error: {0} does not have a unique user channel name.
/// </summary>
internal static string DuplicateUserChannelName {
get {
return ResourceManager.GetString("DuplicateUserChannelName", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Warning: {0} does not have a unique user code.
/// </summary>
internal static string DuplicateUserCode {
get {
return ResourceManager.GetString("DuplicateUserCode", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Invalid pasted channel code, line: {0}.
/// </summary>
internal static string InvalidLine {
get {
return ResourceManager.GetString("InvalidLine", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to ISO 13499.
/// </summary>
internal static string ISO {
get {
return ResourceManager.GetString("ISO", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to ISO 13499 channel name.
/// </summary>
internal static string ISOChannelName {
get {
return ResourceManager.GetString("ISOChannelName", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to ISO 13499 code.
/// </summary>
internal static string ISOCode {
get {
return ResourceManager.GetString("ISOCode", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Warning: {0} has an ISO code that is not unique.
/// </summary>
internal static string ISOConflict {
get {
return ResourceManager.GetString("ISOConflict", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Error: {0} missing ISO channel name.
/// </summary>
internal static string MissingISOChannelName {
get {
return ResourceManager.GetString("MissingISOChannelName", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Error: {0} is missing an ISO code.
/// </summary>
internal static string MissingISOCode {
get {
return ResourceManager.GetString("MissingISOCode", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Error: {0} is missing a user channel name.
/// </summary>
internal static string MissingUserChannelName {
get {
return ResourceManager.GetString("MissingUserChannelName", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Error: {0} is missing a user code.
/// </summary>
internal static string MissingUserCode {
get {
return ResourceManager.GetString("MissingUserCode", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Remove.
/// </summary>
internal static string Remove {
get {
return ResourceManager.GetString("Remove", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to User.
/// </summary>
internal static string User {
get {
return ResourceManager.GetString("User", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to User channel name.
/// </summary>
internal static string UserChannelName {
get {
return ResourceManager.GetString("UserChannelName", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to User code.
/// </summary>
internal static string UserCode {
get {
return ResourceManager.GetString("UserCode", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to There are multiple entries with the same user code and channel name.
/// </summary>
internal static string UserConflict {
get {
return ResourceManager.GetString("UserConflict", resourceCulture);
}
}
}
}

View File

@@ -0,0 +1,6 @@
<?xml version='1.0' encoding='utf-8'?>
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" GeneratedClassNamespace="ChannelCodes.Properties" GeneratedClassName="Settings">
<Profiles />
<Settings>
</Settings>
</SettingsFile>

View File

@@ -0,0 +1,36 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("ChannelCodes")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("DTS")]
[assembly: AssemblyProduct("ChannelCodes")]
[assembly: AssemblyCopyright("Copyright © 2018")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]
// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("fceac9fc-ac16-4e58-a64f-e4778846ac26")]
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]

View File

@@ -0,0 +1,156 @@
<base:BaseView x:Class="ChannelCodes.ChannelCodesListView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:base="clr-namespace:DTS.Common.Base;assembly=DTS.Common"
xmlns:converters="clr-namespace:DTS.Common.Converters;assembly=DTS.Common"
xmlns:controls="clr-namespace:DTS.Common.Controls;assembly=DTS.Common"
xmlns:behaviors="clr-namespace:DTS.Common.Behaviors;assembly=DTS.Common"
xmlns:strings="clr-namespace:ChannelCodes"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
mc:Ignorable="d"
d:DesignHeight="768" d:DesignWidth="1366"
x:Name="ChannelListView">
<base:BaseView.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="pack://application:,,,/DTS.Common;component/Themes/CommonStyles.xaml"/>
<ResourceDictionary Source="pack://application:,,,/DTS.Common;component/Controls/combobox.xaml"/>
</ResourceDictionary.MergedDictionaries>
<Style TargetType="ListView">
<Setter Property="ItemContainerStyle" Value="{StaticResource TTS_ListViewItemStyle}"/>
</Style>
<Style TargetType="TextBox" BasedOn="{StaticResource TTS_TextBoxStyle}"/>
<Style TargetType="TextBlock" BasedOn="{StaticResource TTS_TextBlockStyle}"/>
<Style TargetType="CheckBox" BasedOn="{StaticResource PageContentCheckBoxStyle}" />
<Style TargetType="ComboBox" BasedOn="{StaticResource TTS_ComboBoxStyle}"/>
<Style TargetType="Button" BasedOn="{StaticResource TTS_ButtonStyle}"/>
<Style TargetType="GridViewColumnHeader" BasedOn="{StaticResource Gray_GridViewColumnHeaderStyle}"/>
<Style TargetType="RadioButton" BasedOn="{StaticResource FlatRadioButtonStyle}" >
<Setter Property="Height" Value="24" />
<Setter Property="Margin" Value="5" />
</Style>
<converters:StatusToBorderThicknessConverter x:Key="StatusToBorderThickness" />
<converters:StatusToColorConverter x:Key="StatusToColor" />
<converters:InverseBooleanConverter x:Key="InverseBooleanConverter" />
</ResourceDictionary>
</base:BaseView.Resources>
<Grid Background="{DynamicResource Brush_ApplicationContentBackground}" ScrollViewer.CanContentScroll="True" ScrollViewer.VerticalScrollBarVisibility="Auto">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<StackPanel Orientation="Horizontal" Grid.Row="0">
<RadioButton GroupName="Filters" Content="{strings:TranslateExtension ISO}" Checked="ISO_Checked" IsChecked="True" AutomationProperties.AutomationId="btnChannelCodeDetailsISO"/>
<RadioButton GroupName="Filters" Content="{strings:TranslateExtension User}" Checked="User_Checked" AutomationProperties.AutomationId="btnChannelCodeDetailsUser"/>
</StackPanel>
<ListView ItemsSource="{Binding ISOChannelCodes, UpdateSourceTrigger=PropertyChanged}" Grid.Row="1"
AutomationProperties.AutomationId="ISOChannelCodeListView" Visibility="{Binding ISOVisibility}" SelectionMode="Extended" SelectionChanged="ISOCodes_SelectionChanged"
KeyboardNavigation.TabNavigation="Continue" x:Name="ISOChannelCodesListView" PreviewMouseLeftButtonUp="ISOChannelCodesListView_PreviewMouseLeftButtonUp">
<ListView.ItemContainerStyle>
<Style TargetType="{x:Type ListViewItem}">
<Setter Property="KeyboardNavigation.IsTabStop" Value="False" />
</Style>
</ListView.ItemContainerStyle>
<ListView.View>
<controls:AutoSizedGridView AutomationProperties.AutomationId="ChannelCodesListGridView">
<GridViewColumn AutomationProperties.AutomationId="ChannelCodeColumn" Width="315">
<GridViewColumn.Header>
<controls:GridViewColumnHeaderSearchable Tag="ISOCode" HeaderTitle="{strings:TranslateExtension ISOCode}" Search="GridViewColumnHeaderSearchable_OnSearch"
x:Name="ISOCodeColumnHeader" ClickHandler="GridViewColumnHeader_OnClick"/>
</GridViewColumn.Header>
<GridViewColumn.CellTemplate>
<ItemContainerTemplate>
<controls:ChannelCodeBuilder Width="300" AutomationProperties.AutomationId="ChannelCodeTextBox" Code="{Binding Code, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
KeyDown="ChannelCodeTextBox_KeyDown" TextChanged="ChannelCodeTextBoxIso_TextChanged" CodeType="ISO"
ChannelCodeSelected="ChannelCodeBuilder_OnChannelCodeSelected"
SelectionChanged="ChannelCodeBuilder_SelectionChanged"
ChannelCodesFunc="{Binding DataContext.ChannelCodesFunc, RelativeSource={RelativeSource AncestorType={x:Type ListView}}}"
ShowChannelCodeLookupHelper="{Binding DataContext.ShowChannelCodeLookupHelper, RelativeSource={RelativeSource AncestorType={x:Type ListView}}}"
ShowISOStringBuilder="{Binding DataContext.ShowISOStringBuilder, RelativeSource={RelativeSource AncestorType={x:Type ListView}}}"
UniqueISOCodesRequired="{Binding DataContext.UniqueISOCodesRequired, RelativeSource={RelativeSource AncestorType={x:Type ListView}}}"
PasteId="ChannelCode" behaviors:TextBoxPasteBehavior.PasteCommand="{Binding PasteCommand}" Tag="ISOCode"
BorderBrush="{Binding ItemStatus, Converter={StaticResource StatusToColor}}"
BorderThickness="{Binding ItemStatus, Converter={StaticResource StatusToBorderThickness}}"
IsEnabled="{Binding DataContext.IsReadOnly, Converter={StaticResource InverseBooleanConverter}, RelativeSource={RelativeSource AncestorType={x:Type ListView}}}"/>
</ItemContainerTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
<GridViewColumn AutomationProperties.AutomationId="DisplayNameColumn" Width="315">
<GridViewColumn.Header>
<controls:GridViewColumnHeaderSearchable Tag="ISOChannelName" HeaderTitle="{strings:TranslateExtension ISOChannelName}"
Search="GridViewColumnHeaderSearchable_OnSearch" x:Name="ISOChannelNameColumnHeader"/>
</GridViewColumn.Header>
<GridViewColumn.CellTemplate>
<ItemContainerTemplate>
<TextBox Width="300" AutomationProperties.AutomationId="DisplayNameTextBox"
Text="{Binding Name, UpdateSourceTrigger=PropertyChanged}" KeyDown="DisplayNameTextBox_KeyDown" SelectionChanged="DisplayNameTextBoxIso_SelectionChanged" TextChanged="DisplayNameTextBoxIso_TextChanged" MaxLength="250"
behaviors:TextBoxPasteBehavior.PasteCommand="{Binding PasteCommand}" Tag="ISOChannelName"
BorderBrush="{Binding ItemStatus, Converter={StaticResource StatusToColor}}"
BorderThickness="{Binding ItemStatus, Converter={StaticResource StatusToBorderThickness}}"
IsEnabled="{Binding DataContext.IsReadOnly, Converter={StaticResource InverseBooleanConverter}, RelativeSource={RelativeSource AncestorType={x:Type ListView}}}" />
</ItemContainerTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
</controls:AutoSizedGridView>
</ListView.View>
</ListView>
<ListView ItemsSource="{Binding UserChannelCodes, UpdateSourceTrigger=PropertyChanged}" Grid.Row="1"
AutomationProperties.AutomationId="UserChannelCodeListView" Visibility="{Binding UserVisibility}" SelectionMode="Extended" SelectionChanged="UserCodes_SelectionChanged"
KeyboardNavigation.TabNavigation="Continue" x:Name="UserChannelCodesListView" PreviewMouseLeftButtonUp="UserChannelCodesListView_PreviewMouseLeftButtonUp">
<ListView.ItemContainerStyle>
<Style>
<Setter Property="KeyboardNavigation.IsTabStop" Value="False" />
</Style>
</ListView.ItemContainerStyle>
<ListView.View>
<controls:AutoSizedGridView AutomationProperties.AutomationId="ChannelCodesListGridView">
<GridViewColumn AutomationProperties.AutomationId="ChannelCodeColumn" Width="315">
<GridViewColumn.Header>
<controls:GridViewColumnHeaderSearchable Tag="UserCode" HeaderTitle="{strings:TranslateExtension UserCode}" Search="GridViewColumnHeaderSearchable_OnSearch"
ListviewId="{Binding ListViewId}" x:Name="UserCodeColumnHeader" ClickHandler="GridViewColumnHeader_OnClick"/>
</GridViewColumn.Header>
<GridViewColumn.CellTemplate>
<ItemContainerTemplate>
<controls:ChannelCodeBuilder Width="300" AutomationProperties.AutomationId="ChannelCodeTextBox" Code="{Binding Code, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
KeyDown="ChannelCodeTextBox_KeyDown" TextChanged="ChannelCodeTextBoxUser_TextChanged" CodeType="User"
ChannelCodeSelected="ChannelCodeBuilder_OnChannelCodeSelected"
ChannelCodesFunc="{Binding DataContext.ChannelCodesFunc, RelativeSource={RelativeSource AncestorType={x:Type ListView}}}"
ShowChannelCodeLookupHelper="{Binding DataContext.ShowChannelCodeLookupHelper, RelativeSource={RelativeSource AncestorType={x:Type ListView}}}"
ShowISOStringBuilder="{Binding DataContext.ShowISOStringBuilder, RelativeSource={RelativeSource AncestorType={x:Type ListView}}}"
UniqueISOCodesRequired="{Binding DataContext.UniqueISOCodesRequired, RelativeSource={RelativeSource AncestorType={x:Type ListView}}}"
PasteId="ChannelCode" behaviors:TextBoxPasteBehavior.PasteCommand="{Binding PasteCommand}" Tag="UserCode"
BorderBrush="{Binding ItemStatus, Converter={StaticResource StatusToColor}}"
SelectionChanged="ChannelCodeTextBoxUser_SelectionChanged"
BorderThickness="{Binding ItemStatus, Converter={StaticResource StatusToBorderThickness}}"
IsEnabled="{Binding DataContext.IsReadOnly, Converter={StaticResource InverseBooleanConverter}, RelativeSource={RelativeSource AncestorType={x:Type ListView}}}" />
</ItemContainerTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
<GridViewColumn AutomationProperties.AutomationId="DisplayNameColumn" Width="315">
<GridViewColumn.Header>
<controls:GridViewColumnHeaderSearchable Tag="UserChannelName" HeaderTitle="{strings:TranslateExtension UserChannelName}" Search="GridViewColumnHeaderSearchable_OnSearch"
ListviewId="{Binding ListViewId}" x:Name="UserChannelNameColumnHeader"/>
</GridViewColumn.Header>
<GridViewColumn.CellTemplate>
<ItemContainerTemplate>
<TextBox Width="300" AutomationProperties.AutomationId="DisplayNameTextBox"
Text="{Binding Name, UpdateSourceTrigger=PropertyChanged}" KeyDown="DisplayNameTextBox_KeyDown"
TextChanged="DisplayNameTextBoxUser_TextChanged" MaxLength="250"
behaviors:TextBoxPasteBehavior.PasteCommand="{Binding PasteCommand}" Tag="UserChannelName"
BorderBrush="{Binding ItemStatus, Converter={StaticResource StatusToColor}}"
BorderThickness="{Binding ItemStatus, Converter={StaticResource StatusToBorderThickness}}"
SelectionChanged="DisplayNameTextBoxUser_SelectionChanged"
IsEnabled="{Binding DataContext.IsReadOnly, Converter={StaticResource InverseBooleanConverter}, RelativeSource={RelativeSource AncestorType={x:Type ListView}}}" />
</ItemContainerTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
</controls:AutoSizedGridView>
</ListView.View>
</ListView>
</Grid>
</base:BaseView>

View File

@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<section name="ChannelCodes.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false"/>
</sectionGroup>
</configSections>
<userSettings>
<ChannelCodes.Properties.Settings>
</ChannelCodes.Properties.Settings>
</userSettings>
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8"/></startup></configuration>

View File

@@ -0,0 +1,140 @@
using System;
using System.ComponentModel.Composition;
using System.Windows.Media.Imaging;
using DTS.Common;
using Prism.Modularity;
using Unity;
using ChannelCodes;
using DTS.Common.Interface;
using DTS.Common.Interface.Channels.ChannelCodes;
using Prism.Ioc;
// ReSharper disable CheckNamespace
// ReSharper disable RedundantAttributeUsageProperty
// ReSharper disable UnusedParameter.Local
[assembly: ChannelCodesModuleName]
[assembly: ChannelCodesModuleImageAttribute]
namespace ChannelCodes
{
[Export(typeof(IModule))]
[Module(ModuleName = "ChannelCodesModule")]
public class ChannelCodesModule : IModule
{
/// <summary>
/// Injected unity container
/// </summary>
private readonly IUnityContainer _unityContainer;
/// <summary>
/// Initializes a new instance of the <see cref="ChannelCodesModule"/> class.
/// </summary>
/// <param name="unityContainer">Obtained reference of the unity container by using dependency injection.</param>
public ChannelCodesModule(IUnityContainer unityContainer)
{
_unityContainer = unityContainer;
}
public void Initialize()
{
// Register View & View-Model with Unity dependency injection container as a singleton.
_unityContainer.RegisterType<IChannelCodesListViewModel, ChannelCodesListViewModel>();
_unityContainer.RegisterType<IChannelCodesListView, ChannelCodesListView>();
}
public void OnInitialized(IContainerProvider containerProvider)
{
}
public void RegisterTypes(IContainerRegistry containerRegistry)
{
Initialize();
}
}
/// <summary>
/// Attribute class contains assembly name
/// </summary>
[AttributeUsage(AttributeTargets.Assembly, AllowMultiple = false)]
public class ChannelCodesModuleNameAttribute : TextAttribute
{
public ChannelCodesModuleNameAttribute() : this(null) { }
public ChannelCodesModuleNameAttribute(string s)
{
AssemblyName = AssemblyNames.ChannelCodes.ToString();
}
public override string AssemblyName { get; }
public override Type GetAttributeType()
{
return typeof(TextAttribute);
}
public override string GetAssemblyName()
{
return AssemblyName;
}
}
/// <summary>
/// Attribute class contains assembly image and name - used on the Main screen to SummaryModule available components
/// </summary>
[AttributeUsage(AttributeTargets.Assembly, AllowMultiple = false)]
public class ChannelCodesModuleImageAttribute : ImageAttribute
{
private BitmapImage _img;
public ChannelCodesModuleImageAttribute() : this(null) { }
public override BitmapImage AssemblyImage
{
get { _img = AssemblyInfo.GetImage(AssemblyNames.ChannelCodes.ToString()); return _img; }
}
public ChannelCodesModuleImageAttribute(string s)
{
_img = AssemblyInfo.GetImage(AssemblyNames.ChannelCodes.ToString());
}
public override Type GetAttributeType()
{
return typeof(ImageAttribute);
}
public override BitmapImage GetAssemblyImage()
{
return AssemblyImage;
}
private string _name;
public override string AssemblyName
{
get { _name = AssemblyNames.ChannelCodes.ToString(); return _name; }
}
public override string GetAssemblyName()
{
return AssemblyName;
}
private string _group;
public override string AssemblyGroup
{
get { _group = eAssemblyGroups.Prepare.ToString(); return _group; }
}
public override string GetAssemblyGroup()
{
return AssemblyGroup;
}
private eAssemblyRegion _region;
public override eAssemblyRegion AssemblyRegion
{
get { _region = eAssemblyRegion.ChannelCodesRegion; return _region; }
}
public override eAssemblyRegion GetAssemblyRegion()
{
return AssemblyRegion;
}
}
}

View File

@@ -0,0 +1,44 @@
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using DTS.Common.Storage;
namespace ChannelCodes.Model
{
public abstract class ChannelCodeType
{
/// <summary>
/// retrieves all possible channel code types
/// </summary>
/// <returns></returns>
public static IDictionary<short, string> GetChannelCodeTypeLookup()
{
var lookup = new Dictionary<short, string>();
using (var cmd = DbOperations.GetSQLCommand(true))
{
try
{
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = @"sp_ChannelCodeTypeGet";
cmd.Parameters.Add(new SqlParameter("@Id", SqlDbType.TinyInt) { Value = null });
cmd.Parameters.Add(new SqlParameter("@CodeType", SqlDbType.NVarChar, 50) { Value = null });
var reader = cmd.ExecuteReader();
while (reader.Read())
{
var id = Convert.ToInt16(reader["Id"]);
var codeType = (string)reader["CodeType"];
lookup[id] = codeType;
}
}
finally
{
cmd.Connection.Dispose();
}
}
return lookup;
}
}
}

View File

@@ -0,0 +1,192 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="All" xml:space="preserve">
<value>All</value>
</data>
<data name="ChannelCode" xml:space="preserve">
<value>Channel code</value>
</data>
<data name="ChannelType" xml:space="preserve">
<value>Type</value>
</data>
<data name="DisplayName" xml:space="preserve">
<value>Display name</value>
</data>
<data name="InvalidLine" xml:space="preserve">
<value>Invalid pasted channel code, line: {0}</value>
</data>
<data name="ISO" xml:space="preserve">
<value>ISO 13499</value>
</data>
<data name="ISOChannelName" xml:space="preserve">
<value>ISO 13499 channel name</value>
</data>
<data name="ISOCode" xml:space="preserve">
<value>ISO 13499 code</value>
</data>
<data name="ISOConflict" xml:space="preserve">
<value>Warning: {0} has an ISO code that is not unique</value>
</data>
<data name="MissingISOChannelName" xml:space="preserve">
<value>Error: {0} missing ISO channel name</value>
</data>
<data name="MissingISOCode" xml:space="preserve">
<value>Error: {0} is missing an ISO code</value>
</data>
<data name="MissingUserChannelName" xml:space="preserve">
<value>Error: {0} is missing a user channel name</value>
</data>
<data name="MissingUserCode" xml:space="preserve">
<value>Error: {0} is missing a user code</value>
</data>
<data name="Remove" xml:space="preserve">
<value>Remove</value>
</data>
<data name="User" xml:space="preserve">
<value>User</value>
</data>
<data name="UserChannelName" xml:space="preserve">
<value>User channel name</value>
</data>
<data name="UserCode" xml:space="preserve">
<value>User code</value>
</data>
<data name="UserConflict" xml:space="preserve">
<value>There are multiple entries with the same user code and channel name</value>
</data>
<data name="DuplicateISOChannelName" xml:space="preserve">
<value>Error: {0} does not have a unique ISO channel name</value>
</data>
<data name="DuplicateISOCode" xml:space="preserve">
<value>Error: {0} does not have a unique ISO code</value>
</data>
<data name="DuplicateUserChannelName" xml:space="preserve">
<value>Error: {0} does not have a unique user channel name</value>
</data>
<data name="DuplicateUserCode" xml:space="preserve">
<value>Warning: {0} does not have a unique user code</value>
</data>
<data name="DuplicateISOChannelCode" xml:space="preserve">
<value>Error: ISO channel {0} is duplicated</value>
</data>
<data name="DuplicateUserChannelCode" xml:space="preserve">
<value>Error: User channel {0} is duplicated</value>
</data>
</root>

View File

@@ -0,0 +1,279 @@
using System.Collections.Generic;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Media;
using DTS.Common.Controls;
using DTS.Common.Enums.Channels;
using DTS.Common.Interface.Channels.ChannelCodes;
using DTS.Common.Utils;
// ReSharper disable CheckNamespace
namespace ChannelCodes
{
/// <inheritdoc cref="IChannelCodesListView" />
/// <summary>
/// Interaction logic for ChannelCodesListView.xaml
/// </summary>
public partial class ChannelCodesListView : IChannelCodesListView
{
public ChannelCodesListView()
{
InitializeComponent();
}
private void GridViewColumnHeaderSearchable_OnSearch(object sender, RoutedEventArgs e)
{
var searchTerm = (string)e.OriginalSource;
var columnTag = (sender as GridViewColumnHeaderSearchable)?.Tag;
var viewModel = (IChannelCodesListViewModel)DataContext;
viewModel.Filter(columnTag, searchTerm);
}
//private void ChannelType_SelectionChanged(object sender, SelectionChangedEventArgs e)
//{
// if( e.RemovedItems.Count == 0) { return; }
// if( !(DataContext is ChannelCodesListViewModel vm)) { return; }
// if( !(((System.Windows.Controls.Control) e.Source).DataContext is IChannelCode channelCode)) { return; }
// vm.MarkModified(channelCode);
//}
private void GridViewColumnHeader_OnClick(object sender, RoutedEventArgs e)
{
var vm = (IChannelCodesListViewModel)DataContext;
var columnTag = (sender as GridViewColumnHeaderSearchable)?.Tag ?? Utils.FindChild<GridViewColumnHeaderSearchable>((DependencyObject)e.OriginalSource, null)?.Tag;
vm?.Sort(columnTag, true);
}
private void ChannelCodeTextBox_KeyDown(object sender, System.Windows.Input.KeyEventArgs e)
{
if (!(DataContext is ChannelCodesListViewModel vm)) { return; }
if (!(((System.Windows.Controls.Control)e.Source).DataContext is IChannelCode channelCode)) { return; }
vm.MarkModified(channelCode);
}
private void ChannelCodeTextBoxUser_TextChanged(object sender, TextChangedEventArgs e)
{
if (!(DataContext is ChannelCodesListViewModel vm)) { return; }
if (!(sender is Control control)) { return; }
if (!(control.DataContext is IChannelCode channelCode)) { return; }
var notUsed1 = new List<string>();
var notUsed2 = new List<string>();
vm.MarkModified(channelCode);
vm.ValidateUser(ref notUsed1, ref notUsed2);
}
private void ChannelCodeTextBoxIso_TextChanged(object sender, TextChangedEventArgs e)
{
if (!(DataContext is ChannelCodesListViewModel vm)) { return; }
if (!(sender is Control control)) { return; }
if (!(control.DataContext is IChannelCode channelCode)) { return; }
vm.MarkModified(channelCode);
var notUsed1 = new List<string>();
var notUsed2 = new List<string>();
vm.ValidateISO(ref notUsed1, ref notUsed2);
}
private void DisplayNameTextBox_KeyDown(object sender, System.Windows.Input.KeyEventArgs e)
{
if (!(DataContext is ChannelCodesListViewModel vm)) { return; }
if (!(((System.Windows.Controls.Control)e.Source).DataContext is IChannelCode channelCode)) { return; }
vm.MarkModified(channelCode);
}
private void DisplayNameTextBoxUser_TextChanged(object sender, TextChangedEventArgs e)
{
if (!(DataContext is ChannelCodesListViewModel vm)) { return; }
if (!(e.Source is TextBox textBox)) { return; }
if (!(textBox.DataContext is IChannelCode channelCode)) { return; }
vm.MarkModified(channelCode);
var notUsed1 = new List<string>();
var notUsed2 = new List<string>();
vm.ValidateUser(ref notUsed1, ref notUsed2);
}
private void DisplayNameTextBoxIso_TextChanged(object sender, TextChangedEventArgs e)
{
if (!(DataContext is ChannelCodesListViewModel vm)) { return; }
if (!(e.Source is TextBox textBox)) { return; }
if (!(textBox.DataContext is IChannelCode channelCode)) { return; }
vm.MarkModified(channelCode);
var notUsed1 = new List<string>();
var notUsed2 = new List<string>();
vm.ValidateISO(ref notUsed1, ref notUsed2);
}
private void ISO_Checked(object sender, RoutedEventArgs e)
{
if (!(DataContext is ChannelCodesListViewModel vm)) { return; }
vm.ViewMode = ChannelCodesListViewModel.ViewModes.ISO;
}
private void User_Checked(object sender, RoutedEventArgs e)
{
if (!(DataContext is ChannelCodesListViewModel vm)) { return; }
vm.ViewMode = ChannelCodesListViewModel.ViewModes.User;
}
private void ISOCodes_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
if (!(DataContext is ChannelCodesListViewModel vm)) { return; }
if (!(sender is ListView lv)) { return; }
var list = new List<IChannelCode>();
foreach (var item in lv.SelectedItems)
{
if (!(item is IChannelCode code))
{
continue;
}
list.Add(code);
}
vm.SetISOSelection(list.ToArray());
}
private void UserCodes_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
if (!(DataContext is ChannelCodesListViewModel vm)) { return; }
if (!(sender is ListView lv)) { return; }
var list = new List<IChannelCode>();
foreach (var item in lv.SelectedItems)
{
if (!(item is IChannelCode code))
{
continue;
}
list.Add(code);
}
vm.SetUserSelection(list.ToArray());
}
private void ChannelCodeBuilder_OnChannelCodeSelected(object sender, string code, string name, ChannelEnumsAndConstants.ChannelCodeType codetype)
{
if (!(DataContext is ChannelCodesListViewModel viewModel)) { return; }
if (!(sender is Control control)) { return; }
if (!(control.DataContext is IChannelCode channelCode)) { return; }
channelCode.Code = code;
if (string.IsNullOrWhiteSpace(channelCode.Name))
{
channelCode.Name = name;
}
viewModel.MarkModified(channelCode);
}
private void ISOChannelCodesListView_PreviewMouseLeftButtonUp(object sender, System.Windows.Input.MouseButtonEventArgs e)
{
var point = e.GetPosition(ISOChannelCodesListView);
//we have to do multiple hittests unfortunately, because borders and rectangles...
var result = VisualTreeHelper.HitTest((UIElement)sender, point);
if (null == result) { return; }
if (!(result.VisualHit is UIElement element)) { return; }
var result2 = ISOChannelCodesListView.InputHitTest(point);
if (!(result2 is UIElement element2)) { return; }
//clicking on the bottom of the listview produces a scrollviewer, if we get that we can return
if (element is ScrollViewer)
{
return;
}
var vm = (IChannelCodesListViewModel)DataContext;
if (element is TextBlock tb)
{
if (tb.Text == ChannelCodes.Resources.StringResources.ISOCode) { vm?.Sort(ISOCodeColumnHeader.Tag, true); }
if (tb.Text == ChannelCodes.Resources.StringResources.ISOChannelName) { vm?.Sort(ISOChannelNameColumnHeader.Tag, true); }
return;
}
if (ISOCodeColumnHeader.IsDescendantOf(element) || ISOCodeColumnHeader.IsDescendantOf(element2))
{
vm?.Sort(ISOCodeColumnHeader.Tag, true);
return;
}
if (ISOChannelNameColumnHeader.IsDescendantOf(element) || ISOChannelNameColumnHeader.IsDescendantOf(element2))
{
vm?.Sort(ISOChannelNameColumnHeader.Tag, true);
}
}
private void UserChannelCodesListView_PreviewMouseLeftButtonUp(object sender, System.Windows.Input.MouseButtonEventArgs e)
{
var point = e.GetPosition(UserChannelCodesListView);
//we have to do multiple hittests unfortunately, because borders and rectangles...
var result = VisualTreeHelper.HitTest((UIElement)sender, point);
if (null == result) { return; }
if (!(result.VisualHit is UIElement element)) { return; }
var result2 = UserChannelCodesListView.InputHitTest(point);
if (!(result2 is UIElement element2)) { return; }
//clicking on the bottom of the listview produces a scrollviewer, if we get that we can return
if (element is ScrollViewer)
{
return;
}
var vm = (IChannelCodesListViewModel)DataContext;
if (element is TextBlock tb)
{
if (tb.Text == ChannelCodes.Resources.StringResources.UserCode) { vm?.Sort(UserCodeColumnHeader.Tag, true); }
if (tb.Text == ChannelCodes.Resources.StringResources.UserChannelName) { vm?.Sort(UserChannelNameColumnHeader.Tag, true); }
return;
}
if (UserCodeColumnHeader.IsDescendantOf(element) || UserCodeColumnHeader.IsDescendantOf(element2))
{
vm?.Sort(UserCodeColumnHeader.Tag, true);
return;
}
if (UserChannelNameColumnHeader.IsDescendantOf(element) || UserChannelNameColumnHeader.IsDescendantOf(element2))
{
vm?.Sort(UserChannelNameColumnHeader.Tag, true);
}
}
//FB 25725 ISO selection has been changed, update the iso selection
private void DisplayNameTextBoxIso_SelectionChanged(object sender, RoutedEventArgs e)
{
if (!(DataContext is ChannelCodesListViewModel vm)) { return; }
if (!(((Control)e.Source).DataContext is IChannelCode channelCode)) { return; }
vm.SetISOSelection(new List<IChannelCode> { channelCode }.ToArray());
}
//FB 25725 ISO selection has been changed, update the iso selection
private void ChannelCodeBuilder_SelectionChanged(object sender, RoutedEventArgs e)
{
if (!(DataContext is ChannelCodesListViewModel vm)) { return; }
if (!(sender is Control control)) { return; }
if (!(control.DataContext is IChannelCode channelCode)) { return; }
vm.SetISOSelection(new List<IChannelCode> { channelCode }.ToArray());
}
//FB 25725 User code selection has been changed, update the user code selection
private void DisplayNameTextBoxUser_SelectionChanged(object sender, RoutedEventArgs e)
{
if (!(DataContext is ChannelCodesListViewModel vm)) { return; }
if (!(((Control)e.Source).DataContext is IChannelCode channelCode)) { return; }
vm.SetUserSelection(new List<IChannelCode> { channelCode }.ToArray());
}
//FB 25725 User code selection has been changed, update the user code selection
private void ChannelCodeTextBoxUser_SelectionChanged(object sender, RoutedEventArgs e)
{
if (!(DataContext is ChannelCodesListViewModel vm)) { return; }
if (!(sender is Control control)) { return; }
if (!(control.DataContext is IChannelCode channelCode)) { return; }
vm.SetUserSelection(new List<IChannelCode> { channelCode }.ToArray());
}
}
}

View File

@@ -0,0 +1,26 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.42000
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace ChannelCodes.Properties {
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.10.0.0")]
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
public static Settings Default {
get {
return defaultInstance;
}
}
}
}

View File

@@ -0,0 +1,21 @@
using System;
using System.Windows.Markup;
using ChannelCodes.Resources;
namespace ChannelCodes
{
[MarkupExtensionReturnType(typeof(string))]
public class TranslateExtension : MarkupExtension
{
private readonly string _key;
public TranslateExtension(string key) { _key = key; }
private const string NotFound = "#stringnotfound#";
public override object ProvideValue(IServiceProvider serviceProvider)
{
if (string.IsNullOrEmpty(_key)) { return NotFound; }
return StringResources.ResourceManager.GetString(_key) ?? NotFound + " " + _key;
}
}
}

Binary file not shown.

View File

@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<section name="ChannelCodes.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false"/>
</sectionGroup>
</configSections>
<userSettings>
<ChannelCodes.Properties.Settings>
</ChannelCodes.Properties.Settings>
</userSettings>
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8"/></startup></configuration>

View File

@@ -0,0 +1,185 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{266B86D0-6A3F-4B52-8749-FA87ECB0230F}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>ChannelCodes</RootNamespace>
<AssemblyName>ChannelCodes</AssemblyName>
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<TargetFrameworkProfile />
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
<DebugSymbols>true</DebugSymbols>
<OutputPath>bin\x64\Debug\</OutputPath>
<DefineConstants>CODE_ANALYSIS;DEBUG;TRACE</DefineConstants>
<DebugType>full</DebugType>
<PlatformTarget>x64</PlatformTarget>
<RunCodeAnalysis>false</RunCodeAnalysis>
<ErrorReport>prompt</ErrorReport>
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
<OutputPath>bin\x64\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<Optimize>true</Optimize>
<DebugType>pdbonly</DebugType>
<PlatformTarget>x64</PlatformTarget>
<ErrorReport>prompt</ErrorReport>
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'">
<DebugSymbols>true</DebugSymbols>
<OutputPath>bin\x86\Debug\</OutputPath>
<DefineConstants>CODE_ANALYSIS;DEBUG;TRACE</DefineConstants>
<DebugType>full</DebugType>
<PlatformTarget>x86</PlatformTarget>
<RunCodeAnalysis>true</RunCodeAnalysis>
<ErrorReport>prompt</ErrorReport>
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x86'">
<OutputPath>bin\x86\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<Optimize>true</Optimize>
<DebugType>pdbonly</DebugType>
<PlatformTarget>x86</PlatformTarget>
<ErrorReport>prompt</ErrorReport>
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<ItemGroup>
<Reference Include="Microsoft.Practices.ServiceLocation">
<HintPath>..\..\..\..\Common\DTS.Common\lib\PrismLibrary\Microsoft.Practices.ServiceLocation.dll</HintPath>
</Reference>
<Reference Include="Microsoft.VisualBasic" />
<Reference Include="Microsoft.Xaml.Behaviors">
<HintPath>..\..\..\..\Common\DTS.Common\lib\PrismLibrary\Microsoft.Xaml.Behaviors.dll</HintPath>
</Reference>
<Reference Include="PresentationCore" />
<Reference Include="PresentationFramework" />
<Reference Include="Prism">
<HintPath>..\..\..\..\Common\DTS.Common\lib\PrismLibrary\Prism.dll</HintPath>
</Reference>
<Reference Include="Prism.Unity.Wpf">
<HintPath>..\..\..\..\Common\DTS.Common\lib\PrismLibrary\Prism.Unity.Wpf.dll</HintPath>
</Reference>
<Reference Include="Prism.Wpf">
<HintPath>..\..\..\..\Common\DTS.Common\lib\PrismLibrary\Prism.Wpf.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.ComponentModel.Composition" />
<Reference Include="System.Core" />
<Reference Include="System.Security" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xaml" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data" />
<Reference Include="System.Net.Http" />
<Reference Include="System.Xml" />
<Reference Include="Unity.Abstractions">
<HintPath>..\..\..\..\Common\DTS.Common\lib\PrismLibrary\Unity.Abstractions.dll</HintPath>
</Reference>
<Reference Include="Unity.Container">
<HintPath>..\..\..\..\Common\DTS.Common\lib\PrismLibrary\Unity.Container.dll</HintPath>
</Reference>
<Reference Include="WindowsBase" />
<Reference Include="Xceed.Wpf.Toolkit">
<HintPath>..\..\..\..\Common\DTS.Common\lib\Xceed.Wpf.Toolkit\Xceed.Wpf.Toolkit.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup>
<Compile Include="Model\ChannelCode.cs" />
<Compile Include="Model\ChannelCodeType.cs" />
<Compile Include="Properties\Settings.Designer.cs">
<AutoGen>True</AutoGen>
<DesignTimeSharedInput>True</DesignTimeSharedInput>
<DependentUpon>Settings.settings</DependentUpon>
</Compile>
<Compile Include="ChannelCodesModule.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="Resources\StringResources.Designer.cs">
<DependentUpon>StringResources.resx</DependentUpon>
<AutoGen>True</AutoGen>
<DesignTime>True</DesignTime>
</Compile>
<Compile Include="Resources\TranslateExtension.cs" />
<Compile Include="ViewModel\ChannelCodesListViewModel.cs" />
<Compile Include="View\ChannelCodesListView.xaml.cs">
<DependentUpon>ChannelCodesListView.xaml</DependentUpon>
</Compile>
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="Resources\StringResources.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>StringResources.Designer.cs</LastGenOutput>
<SubType>Designer</SubType>
</EmbeddedResource>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\..\..\Common\DTS.Common.Core\DTS.Common.Core.csproj">
<Project>{fab1f470-1574-4301-b56e-d3364aa93679}</Project>
<Name>DTS.Common.Core</Name>
</ProjectReference>
<ProjectReference Include="..\..\..\..\Common\DTS.Common.DAS.Concepts\DTS.Common.DAS.Concepts.csproj">
<Project>{03D8C736-36EB-4CD1-A6D9-130452B23239}</Project>
<Name>DTS.Common.DAS.Concepts</Name>
</ProjectReference>
<ProjectReference Include="..\..\..\..\Common\DTS.Common.ISO\DTS.Common.ISO.csproj">
<Project>{4dccddd1-032f-430c-9a6f-231daca4fbd0}</Project>
<Name>DTS.Common.ISO</Name>
</ProjectReference>
<ProjectReference Include="..\..\..\..\Common\DTS.Common.Storage\DTS.Common.Storage.csproj">
<Project>{e0d1a7d0-dce8-403d-ba85-5a5d66ba1313}</Project>
<Name>DTS.Common.Storage</Name>
</ProjectReference>
<ProjectReference Include="..\..\..\..\Common\DTS.Common.Utilities\DTS.Common.Utilities.csproj">
<Project>{03eace47-ea59-44ac-b49d-956e4dc4d618}</Project>
<Name>DTS.Common.Utilities</Name>
</ProjectReference>
<ProjectReference Include="..\..\..\..\Common\DTS.Common\DTS.Common.csproj">
<Project>{114edc77-f3b5-4576-a91b-40818d503b55}</Project>
<Name>DTS.Common</Name>
</ProjectReference>
<ProjectReference Include="..\..\..\IService\IService.csproj">
<Project>{c9c45b72-05a3-4962-bc13-a78b1f4b1925}</Project>
<Name>IService</Name>
</ProjectReference>
<ProjectReference Include="..\..\..\SensorDB\SensorDB.csproj">
<Project>{444ef10c-046e-47ad-a9a5-17318d488723}</Project>
<Name>SensorDB</Name>
</ProjectReference>
<ProjectReference Include="..\..\..\Users\Users.csproj">
<Project>{BE8D217D-6DA9-4BCA-B62A-A82325B33979}</Project>
<Name>Users</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<None Include="App.config" />
<None Include="Properties\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator>
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
</None>
</ItemGroup>
<ItemGroup>
<Page Include="View\ChannelCodesListView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="Resources\ISOPossibleChannels.txt">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</EmbeddedResource>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<PropertyGroup>
<PostBuildEvent>
</PostBuildEvent>
</PropertyGroup>
</Project>

View File

@@ -0,0 +1,140 @@
using System;
using System.ComponentModel.Composition;
using System.Windows.Media.Imaging;
using DTS.Common;
using Prism.Modularity;
using Unity;
using ChannelCodes;
using DTS.Common.Interface;
using DTS.Common.Interface.Channels.ChannelCodes;
using Prism.Ioc;
// ReSharper disable CheckNamespace
// ReSharper disable RedundantAttributeUsageProperty
// ReSharper disable UnusedParameter.Local
[assembly: ChannelCodesModuleName]
[assembly: ChannelCodesModuleImageAttribute]
namespace ChannelCodes
{
[Export(typeof(IModule))]
[Module(ModuleName = "ChannelCodesModule")]
public class ChannelCodesModule : IModule
{
/// <summary>
/// Injected unity container
/// </summary>
private readonly IUnityContainer _unityContainer;
/// <summary>
/// Initializes a new instance of the <see cref="ChannelCodesModule"/> class.
/// </summary>
/// <param name="unityContainer">Obtained reference of the unity container by using dependency injection.</param>
public ChannelCodesModule(IUnityContainer unityContainer)
{
_unityContainer = unityContainer;
}
public void Initialize()
{
// Register View & View-Model with Unity dependency injection container as a singleton.
_unityContainer.RegisterType<IChannelCodesListViewModel, ChannelCodesListViewModel>();
_unityContainer.RegisterType<IChannelCodesListView, ChannelCodesListView>();
}
public void OnInitialized(IContainerProvider containerProvider)
{
}
public void RegisterTypes(IContainerRegistry containerRegistry)
{
Initialize();
}
}
/// <summary>
/// Attribute class contains assembly name
/// </summary>
[AttributeUsage(AttributeTargets.Assembly, AllowMultiple = false)]
public class ChannelCodesModuleNameAttribute : TextAttribute
{
public ChannelCodesModuleNameAttribute() : this(null) { }
public ChannelCodesModuleNameAttribute(string s)
{
AssemblyName = AssemblyNames.ChannelCodes.ToString();
}
public override string AssemblyName { get; }
public override Type GetAttributeType()
{
return typeof(TextAttribute);
}
public override string GetAssemblyName()
{
return AssemblyName;
}
}
/// <summary>
/// Attribute class contains assembly image and name - used on the Main screen to SummaryModule available components
/// </summary>
[AttributeUsage(AttributeTargets.Assembly, AllowMultiple = false)]
public class ChannelCodesModuleImageAttribute : ImageAttribute
{
private BitmapImage _img;
public ChannelCodesModuleImageAttribute() : this(null) { }
public override BitmapImage AssemblyImage
{
get { _img = AssemblyInfo.GetImage(AssemblyNames.ChannelCodes.ToString()); return _img; }
}
public ChannelCodesModuleImageAttribute(string s)
{
_img = AssemblyInfo.GetImage(AssemblyNames.ChannelCodes.ToString());
}
public override Type GetAttributeType()
{
return typeof(ImageAttribute);
}
public override BitmapImage GetAssemblyImage()
{
return AssemblyImage;
}
private string _name;
public override string AssemblyName
{
get { _name = AssemblyNames.ChannelCodes.ToString(); return _name; }
}
public override string GetAssemblyName()
{
return AssemblyName;
}
private string _group;
public override string AssemblyGroup
{
get { _group = eAssemblyGroups.Prepare.ToString(); return _group; }
}
public override string GetAssemblyGroup()
{
return AssemblyGroup;
}
private eAssemblyRegion _region;
public override eAssemblyRegion AssemblyRegion
{
get { _region = eAssemblyRegion.ChannelCodesRegion; return _region; }
}
public override eAssemblyRegion GetAssemblyRegion()
{
return AssemblyRegion;
}
}
}

View File

@@ -0,0 +1,262 @@
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.OleDb;
using System.Data.SqlClient;
using System.IO;
using System.Windows.Input;
using DTS.Common.Classes.ChannelCodes;
using DTS.Common.Enums;
using DTS.Common.Enums.Channels;
using DTS.Common.Interface.Channels.ChannelCodes;
using DTS.Common.Storage;
namespace ChannelCodes.Model
{
public class ChannelCode : DTS.Common.Classes.ChannelCodes.ChannelCode, IChannelCode
{
//in case this object is held onto longer before cleanup, attempt to empty
//private storage
~ChannelCode()
{
_code = null;
_name = null;
PossibleChannels?.Clear();
PasteCommand = null;
}
/// <summary>
/// whether the current id is valid or not
/// </summary>
/// <returns></returns>
public bool HasValidId()
{
return Id >= 0;
}
public bool IsBlank()
{
return string.IsNullOrEmpty(Name) && string.IsNullOrEmpty(Code);
}
/// <summary>
/// this dates back from when there was a dropdown to select the type of code,
/// I'm not sure it's used anymore (2019-04-11)
/// </summary>
public int SelectedChannelType
{
get
{
switch (CodeType)
{
case ChannelEnumsAndConstants.ChannelCodeType.ISO:
return 0;
case ChannelEnumsAndConstants.ChannelCodeType.User:
return 1;
default:
return 0;
}
}
set
{
switch (value)
{
case 0: CodeType = ChannelEnumsAndConstants.ChannelCodeType.ISO; break;
case 1: CodeType = ChannelEnumsAndConstants.ChannelCodeType.User; break;
}
}
}
private void RegisterCommands()
{
PasteCommand = new PasteCommandClass(PASTE_ID);
CommandManager.RegisterClassCommandBinding(GetType(),
new CommandBinding(PasteCommand, Paste));
}
public ChannelCode(IChannelCode channelCode)
: base(channelCode)
{
RegisterCommands();
}
private void Paste(object sender, ExecutedRoutedEventArgs e)
{
}
public ChannelCode()
{
CodeType = ChannelEnumsAndConstants.ChannelCodeType.ISO;
RegisterCommands();
}
public ChannelCode(IDataRecord sqlReader, IDictionary<short, string> channelCodeLookup)
{
RegisterCommands();
Id = Convert.ToInt32(sqlReader["Id"]);
Code = (string)sqlReader["Code"];
Name = (string)sqlReader["Name"];
var codeType = Convert.ToInt16(sqlReader["CodeTypeInt"]);
if (channelCodeLookup.ContainsKey(codeType))
{
var key = channelCodeLookup[codeType];
switch (key)
{
case ChannelEnumsAndConstants.UserCodeTypeString:
CodeType = ChannelEnumsAndConstants.ChannelCodeType.User;
break;
case ChannelEnumsAndConstants.IsoCodeTypeString:
CodeType = ChannelEnumsAndConstants.ChannelCodeType.ISO;
break;
}
}
}
/// <summary>
/// get all existing channel codes from the db
/// </summary>
/// <param name="lookup">a lookup from channel code type (short) to channel code type string as in the db</param>
/// <returns></returns>
public static ChannelCode[] GetExistingChannelCodes(IDictionary<short, string> lookup)
{
var channelCodes = new List<ChannelCode>();
using (var cmd = DbOperations.GetSQLCommand(true))
{
try
{
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = @"sp_ChannelCodesGet";
cmd.Parameters.Add(new SqlParameter("@Id", SqlDbType.Int) { Value = null });
cmd.Parameters.Add(new SqlParameter("@Code", SqlDbType.NVarChar, 255) { Value = null });
cmd.Parameters.Add(new SqlParameter("@Name", SqlDbType.NVarChar, 255) { Value = null });
cmd.Parameters.Add(new SqlParameter("@CodeType", SqlDbType.SmallInt) { Value = null });
var reader = cmd.ExecuteReader();
while (reader.Read())
{
channelCodes.Add(new ChannelCode(reader, lookup));
}
}
finally
{
cmd.Connection.Dispose();
}
}
return channelCodes.ToArray();
}
/// <summary>
/// retrieves all channel codes and returns as a list
/// </summary>
public static IList<IChannelCode> ChannelCodes
{
get
{
var lookup = ChannelCodeType.GetChannelCodeTypeLookup();
var channelCodes = new List<IChannelCode>();
channelCodes.AddRange(GetExistingChannelCodes(lookup));
channelCodes.AddRange(ISOChannelCodes);
return channelCodes;
}
}
private static readonly object RefreshLock = new object();
public Dictionary<string, string> PossibleChannels { get; private set; }
private static IList<IChannelCode> _isoChannelCodes;
/// <summary>
/// retrieves a list of iso channel codes from the db
/// </summary>
public static IList<IChannelCode> ISOChannelCodes
{
get
{
if (null != _isoChannelCodes) return _isoChannelCodes;
//we only need to fetch these values once, they're not going to change.
var channelCodes = new List<IChannelCode>();
lock (RefreshLock)
{
var sourceFile = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "ISOPossibleChannels.txt");
using (StreamReader sr = File.OpenText(sourceFile))
{
string s = string.Empty;
while ((s = sr.ReadLine()) != null)
{
var splitString = s.Split(',');
var isoCode = splitString[0];
var textL1 = splitString[1];
var newChannelCode = new ChannelCode()
{
Code = isoCode,
Name = textL1,
CodeType = ChannelEnumsAndConstants.ChannelCodeType.ISO
};
if (!channelCodes.Contains(newChannelCode))
{
channelCodes.Add(newChannelCode);
}
}
}
}
_isoChannelCodes = channelCodes;
return _isoChannelCodes;
}
}
/// <summary>
/// not used? maybe was a part of migration?
/// </summary>
/// <param name="reader"></param>
/// <param name="field"></param>
/// <returns></returns>
protected static long GetLong(OleDbDataReader reader, string field)
{
return DBNull.Value == reader[field] ? long.MinValue : Convert.ToInt64(reader[field]);
}
/// <summary>
/// not used, maybe was a part of migration?
/// </summary>
/// <param name="reader"></param>
/// <param name="field"></param>
/// <returns></returns>
protected static DateTime GetDate(OleDbDataReader reader, string field)
{
return DBNull.Value != reader[field] ? (DateTime)reader[field] : DateTime.MinValue;
}
/// <summary>
/// deletes channel code
/// deleting a channel code only removes it from the lookup, doesn't remove it from any existing channels
/// </summary>
public void Delete()
{
_ = DbOperations.ChannelCodesDelete(Id, null, null, null);
}
/// <summary>
/// commits any channel codes to the db
/// this only affects the channel code lookup, not any existing channels
/// </summary>
/// <param name="lookup"></param>
public void Save(IDictionary<ChannelEnumsAndConstants.ChannelCodeType, short> lookup)
{
var restrictedLookup = (IReadOnlyDictionary<ChannelEnumsAndConstants.ChannelCodeType, short>)lookup;
_ = DbOperations.ChannelCodesUpdate(restrictedLookup, this);
}
/// <summary>
/// inserts a new channel code into the db
/// </summary>
/// <param name="lookup"></param>
public void Insert(IDictionary<ChannelEnumsAndConstants.ChannelCodeType, short> lookup)
{
var restrictedLookup = (IReadOnlyDictionary<ChannelEnumsAndConstants.ChannelCodeType, short>)lookup;
var hr = DbOperations.ChannelCodesInsert(restrictedLookup, this, out var id);
if (0 == hr)
{
Id = id;
}
}
}
}

View File

@@ -0,0 +1,44 @@
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using DTS.Common.Storage;
namespace ChannelCodes.Model
{
public abstract class ChannelCodeType
{
/// <summary>
/// retrieves all possible channel code types
/// </summary>
/// <returns></returns>
public static IDictionary<short, string> GetChannelCodeTypeLookup()
{
var lookup = new Dictionary<short, string>();
using (var cmd = DbOperations.GetSQLCommand(true))
{
try
{
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = @"sp_ChannelCodeTypeGet";
cmd.Parameters.Add(new SqlParameter("@Id", SqlDbType.TinyInt) { Value = null });
cmd.Parameters.Add(new SqlParameter("@CodeType", SqlDbType.NVarChar, 50) { Value = null });
var reader = cmd.ExecuteReader();
while (reader.Read())
{
var id = Convert.ToInt16(reader["Id"]);
var codeType = (string)reader["CodeType"];
lookup[id] = codeType;
}
}
finally
{
cmd.Connection.Dispose();
}
}
return lookup;
}
}
}

View File

@@ -0,0 +1,36 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("ChannelCodes")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("DTS")]
[assembly: AssemblyProduct("ChannelCodes")]
[assembly: AssemblyCopyright("Copyright © 2018")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]
// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("fceac9fc-ac16-4e58-a64f-e4778846ac26")]
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]

View File

@@ -0,0 +1,26 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.42000
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace ChannelCodes.Properties {
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.10.0.0")]
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
public static Settings Default {
get {
return defaultInstance;
}
}
}
}

View File

@@ -0,0 +1,6 @@
<?xml version='1.0' encoding='utf-8'?>
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" GeneratedClassNamespace="ChannelCodes.Properties" GeneratedClassName="Settings">
<Profiles />
<Settings>
</Settings>
</SettingsFile>

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,279 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.42000
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace ChannelCodes.Resources {
using System;
/// <summary>
/// A strongly-typed resource class, for looking up localized strings, etc.
/// </summary>
// This class was auto-generated by the StronglyTypedResourceBuilder
// class via a tool like ResGen or Visual Studio.
// To add or remove a member, edit your .ResX file then rerun ResGen
// with the /str option, or rebuild your VS project.
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
internal class StringResources {
private static global::System.Resources.ResourceManager resourceMan;
private static global::System.Globalization.CultureInfo resourceCulture;
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
internal StringResources() {
}
/// <summary>
/// Returns the cached ResourceManager instance used by this class.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Resources.ResourceManager ResourceManager {
get {
if (object.ReferenceEquals(resourceMan, null)) {
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("ChannelCodes.Resources.StringResources", typeof(StringResources).Assembly);
resourceMan = temp;
}
return resourceMan;
}
}
/// <summary>
/// Overrides the current thread's CurrentUICulture property for all
/// resource lookups using this strongly typed resource class.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Globalization.CultureInfo Culture {
get {
return resourceCulture;
}
set {
resourceCulture = value;
}
}
/// <summary>
/// Looks up a localized string similar to All.
/// </summary>
internal static string All {
get {
return ResourceManager.GetString("All", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Channel code.
/// </summary>
internal static string ChannelCode {
get {
return ResourceManager.GetString("ChannelCode", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Type.
/// </summary>
internal static string ChannelType {
get {
return ResourceManager.GetString("ChannelType", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Display name.
/// </summary>
internal static string DisplayName {
get {
return ResourceManager.GetString("DisplayName", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Error: ISO channel {0} is duplicated.
/// </summary>
internal static string DuplicateISOChannelCode {
get {
return ResourceManager.GetString("DuplicateISOChannelCode", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Error: {0} does not have a unique ISO channel name.
/// </summary>
internal static string DuplicateISOChannelName {
get {
return ResourceManager.GetString("DuplicateISOChannelName", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Error: {0} does not have a unique ISO code.
/// </summary>
internal static string DuplicateISOCode {
get {
return ResourceManager.GetString("DuplicateISOCode", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Error: User channel {0} is duplicated.
/// </summary>
internal static string DuplicateUserChannelCode {
get {
return ResourceManager.GetString("DuplicateUserChannelCode", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Error: {0} does not have a unique user channel name.
/// </summary>
internal static string DuplicateUserChannelName {
get {
return ResourceManager.GetString("DuplicateUserChannelName", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Warning: {0} does not have a unique user code.
/// </summary>
internal static string DuplicateUserCode {
get {
return ResourceManager.GetString("DuplicateUserCode", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Invalid pasted channel code, line: {0}.
/// </summary>
internal static string InvalidLine {
get {
return ResourceManager.GetString("InvalidLine", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to ISO 13499.
/// </summary>
internal static string ISO {
get {
return ResourceManager.GetString("ISO", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to ISO 13499 channel name.
/// </summary>
internal static string ISOChannelName {
get {
return ResourceManager.GetString("ISOChannelName", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to ISO 13499 code.
/// </summary>
internal static string ISOCode {
get {
return ResourceManager.GetString("ISOCode", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Warning: {0} has an ISO code that is not unique.
/// </summary>
internal static string ISOConflict {
get {
return ResourceManager.GetString("ISOConflict", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Error: {0} missing ISO channel name.
/// </summary>
internal static string MissingISOChannelName {
get {
return ResourceManager.GetString("MissingISOChannelName", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Error: {0} is missing an ISO code.
/// </summary>
internal static string MissingISOCode {
get {
return ResourceManager.GetString("MissingISOCode", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Error: {0} is missing a user channel name.
/// </summary>
internal static string MissingUserChannelName {
get {
return ResourceManager.GetString("MissingUserChannelName", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Error: {0} is missing a user code.
/// </summary>
internal static string MissingUserCode {
get {
return ResourceManager.GetString("MissingUserCode", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Remove.
/// </summary>
internal static string Remove {
get {
return ResourceManager.GetString("Remove", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to User.
/// </summary>
internal static string User {
get {
return ResourceManager.GetString("User", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to User channel name.
/// </summary>
internal static string UserChannelName {
get {
return ResourceManager.GetString("UserChannelName", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to User code.
/// </summary>
internal static string UserCode {
get {
return ResourceManager.GetString("UserCode", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to There are multiple entries with the same user code and channel name.
/// </summary>
internal static string UserConflict {
get {
return ResourceManager.GetString("UserConflict", resourceCulture);
}
}
}
}

View File

@@ -0,0 +1,192 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="All" xml:space="preserve">
<value>All</value>
</data>
<data name="ChannelCode" xml:space="preserve">
<value>Channel code</value>
</data>
<data name="ChannelType" xml:space="preserve">
<value>Type</value>
</data>
<data name="DisplayName" xml:space="preserve">
<value>Display name</value>
</data>
<data name="InvalidLine" xml:space="preserve">
<value>Invalid pasted channel code, line: {0}</value>
</data>
<data name="ISO" xml:space="preserve">
<value>ISO 13499</value>
</data>
<data name="ISOChannelName" xml:space="preserve">
<value>ISO 13499 channel name</value>
</data>
<data name="ISOCode" xml:space="preserve">
<value>ISO 13499 code</value>
</data>
<data name="ISOConflict" xml:space="preserve">
<value>Warning: {0} has an ISO code that is not unique</value>
</data>
<data name="MissingISOChannelName" xml:space="preserve">
<value>Error: {0} missing ISO channel name</value>
</data>
<data name="MissingISOCode" xml:space="preserve">
<value>Error: {0} is missing an ISO code</value>
</data>
<data name="MissingUserChannelName" xml:space="preserve">
<value>Error: {0} is missing a user channel name</value>
</data>
<data name="MissingUserCode" xml:space="preserve">
<value>Error: {0} is missing a user code</value>
</data>
<data name="Remove" xml:space="preserve">
<value>Remove</value>
</data>
<data name="User" xml:space="preserve">
<value>User</value>
</data>
<data name="UserChannelName" xml:space="preserve">
<value>User channel name</value>
</data>
<data name="UserCode" xml:space="preserve">
<value>User code</value>
</data>
<data name="UserConflict" xml:space="preserve">
<value>There are multiple entries with the same user code and channel name</value>
</data>
<data name="DuplicateISOChannelName" xml:space="preserve">
<value>Error: {0} does not have a unique ISO channel name</value>
</data>
<data name="DuplicateISOCode" xml:space="preserve">
<value>Error: {0} does not have a unique ISO code</value>
</data>
<data name="DuplicateUserChannelName" xml:space="preserve">
<value>Error: {0} does not have a unique user channel name</value>
</data>
<data name="DuplicateUserCode" xml:space="preserve">
<value>Warning: {0} does not have a unique user code</value>
</data>
<data name="DuplicateISOChannelCode" xml:space="preserve">
<value>Error: ISO channel {0} is duplicated</value>
</data>
<data name="DuplicateUserChannelCode" xml:space="preserve">
<value>Error: User channel {0} is duplicated</value>
</data>
</root>

View File

@@ -0,0 +1,21 @@
using System;
using System.Windows.Markup;
using ChannelCodes.Resources;
namespace ChannelCodes
{
[MarkupExtensionReturnType(typeof(string))]
public class TranslateExtension : MarkupExtension
{
private readonly string _key;
public TranslateExtension(string key) { _key = key; }
private const string NotFound = "#stringnotfound#";
public override object ProvideValue(IServiceProvider serviceProvider)
{
if (string.IsNullOrEmpty(_key)) { return NotFound; }
return StringResources.ResourceManager.GetString(_key) ?? NotFound + " " + _key;
}
}
}

View File

@@ -0,0 +1,156 @@
<base:BaseView x:Class="ChannelCodes.ChannelCodesListView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:base="clr-namespace:DTS.Common.Base;assembly=DTS.Common"
xmlns:converters="clr-namespace:DTS.Common.Converters;assembly=DTS.Common"
xmlns:controls="clr-namespace:DTS.Common.Controls;assembly=DTS.Common"
xmlns:behaviors="clr-namespace:DTS.Common.Behaviors;assembly=DTS.Common"
xmlns:strings="clr-namespace:ChannelCodes"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
mc:Ignorable="d"
d:DesignHeight="768" d:DesignWidth="1366"
x:Name="ChannelListView">
<base:BaseView.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="pack://application:,,,/DTS.Common;component/Themes/CommonStyles.xaml"/>
<ResourceDictionary Source="pack://application:,,,/DTS.Common;component/Controls/combobox.xaml"/>
</ResourceDictionary.MergedDictionaries>
<Style TargetType="ListView">
<Setter Property="ItemContainerStyle" Value="{StaticResource TTS_ListViewItemStyle}"/>
</Style>
<Style TargetType="TextBox" BasedOn="{StaticResource TTS_TextBoxStyle}"/>
<Style TargetType="TextBlock" BasedOn="{StaticResource TTS_TextBlockStyle}"/>
<Style TargetType="CheckBox" BasedOn="{StaticResource PageContentCheckBoxStyle}" />
<Style TargetType="ComboBox" BasedOn="{StaticResource TTS_ComboBoxStyle}"/>
<Style TargetType="Button" BasedOn="{StaticResource TTS_ButtonStyle}"/>
<Style TargetType="GridViewColumnHeader" BasedOn="{StaticResource Gray_GridViewColumnHeaderStyle}"/>
<Style TargetType="RadioButton" BasedOn="{StaticResource FlatRadioButtonStyle}" >
<Setter Property="Height" Value="24" />
<Setter Property="Margin" Value="5" />
</Style>
<converters:StatusToBorderThicknessConverter x:Key="StatusToBorderThickness" />
<converters:StatusToColorConverter x:Key="StatusToColor" />
<converters:InverseBooleanConverter x:Key="InverseBooleanConverter" />
</ResourceDictionary>
</base:BaseView.Resources>
<Grid Background="{DynamicResource Brush_ApplicationContentBackground}" ScrollViewer.CanContentScroll="True" ScrollViewer.VerticalScrollBarVisibility="Auto">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<StackPanel Orientation="Horizontal" Grid.Row="0">
<RadioButton GroupName="Filters" Content="{strings:TranslateExtension ISO}" Checked="ISO_Checked" IsChecked="True" AutomationProperties.AutomationId="btnChannelCodeDetailsISO"/>
<RadioButton GroupName="Filters" Content="{strings:TranslateExtension User}" Checked="User_Checked" AutomationProperties.AutomationId="btnChannelCodeDetailsUser"/>
</StackPanel>
<ListView ItemsSource="{Binding ISOChannelCodes, UpdateSourceTrigger=PropertyChanged}" Grid.Row="1"
AutomationProperties.AutomationId="ISOChannelCodeListView" Visibility="{Binding ISOVisibility}" SelectionMode="Extended" SelectionChanged="ISOCodes_SelectionChanged"
KeyboardNavigation.TabNavigation="Continue" x:Name="ISOChannelCodesListView" PreviewMouseLeftButtonUp="ISOChannelCodesListView_PreviewMouseLeftButtonUp">
<ListView.ItemContainerStyle>
<Style TargetType="{x:Type ListViewItem}">
<Setter Property="KeyboardNavigation.IsTabStop" Value="False" />
</Style>
</ListView.ItemContainerStyle>
<ListView.View>
<controls:AutoSizedGridView AutomationProperties.AutomationId="ChannelCodesListGridView">
<GridViewColumn AutomationProperties.AutomationId="ChannelCodeColumn" Width="315">
<GridViewColumn.Header>
<controls:GridViewColumnHeaderSearchable Tag="ISOCode" HeaderTitle="{strings:TranslateExtension ISOCode}" Search="GridViewColumnHeaderSearchable_OnSearch"
x:Name="ISOCodeColumnHeader" ClickHandler="GridViewColumnHeader_OnClick"/>
</GridViewColumn.Header>
<GridViewColumn.CellTemplate>
<ItemContainerTemplate>
<controls:ChannelCodeBuilder Width="300" AutomationProperties.AutomationId="ChannelCodeTextBox" Code="{Binding Code, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
KeyDown="ChannelCodeTextBox_KeyDown" TextChanged="ChannelCodeTextBoxIso_TextChanged" CodeType="ISO"
ChannelCodeSelected="ChannelCodeBuilder_OnChannelCodeSelected"
SelectionChanged="ChannelCodeBuilder_SelectionChanged"
ChannelCodesFunc="{Binding DataContext.ChannelCodesFunc, RelativeSource={RelativeSource AncestorType={x:Type ListView}}}"
ShowChannelCodeLookupHelper="{Binding DataContext.ShowChannelCodeLookupHelper, RelativeSource={RelativeSource AncestorType={x:Type ListView}}}"
ShowISOStringBuilder="{Binding DataContext.ShowISOStringBuilder, RelativeSource={RelativeSource AncestorType={x:Type ListView}}}"
UniqueISOCodesRequired="{Binding DataContext.UniqueISOCodesRequired, RelativeSource={RelativeSource AncestorType={x:Type ListView}}}"
PasteId="ChannelCode" behaviors:TextBoxPasteBehavior.PasteCommand="{Binding PasteCommand}" Tag="ISOCode"
BorderBrush="{Binding ItemStatus, Converter={StaticResource StatusToColor}}"
BorderThickness="{Binding ItemStatus, Converter={StaticResource StatusToBorderThickness}}"
IsEnabled="{Binding DataContext.IsReadOnly, Converter={StaticResource InverseBooleanConverter}, RelativeSource={RelativeSource AncestorType={x:Type ListView}}}"/>
</ItemContainerTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
<GridViewColumn AutomationProperties.AutomationId="DisplayNameColumn" Width="315">
<GridViewColumn.Header>
<controls:GridViewColumnHeaderSearchable Tag="ISOChannelName" HeaderTitle="{strings:TranslateExtension ISOChannelName}"
Search="GridViewColumnHeaderSearchable_OnSearch" x:Name="ISOChannelNameColumnHeader"/>
</GridViewColumn.Header>
<GridViewColumn.CellTemplate>
<ItemContainerTemplate>
<TextBox Width="300" AutomationProperties.AutomationId="DisplayNameTextBox"
Text="{Binding Name, UpdateSourceTrigger=PropertyChanged}" KeyDown="DisplayNameTextBox_KeyDown" SelectionChanged="DisplayNameTextBoxIso_SelectionChanged" TextChanged="DisplayNameTextBoxIso_TextChanged" MaxLength="250"
behaviors:TextBoxPasteBehavior.PasteCommand="{Binding PasteCommand}" Tag="ISOChannelName"
BorderBrush="{Binding ItemStatus, Converter={StaticResource StatusToColor}}"
BorderThickness="{Binding ItemStatus, Converter={StaticResource StatusToBorderThickness}}"
IsEnabled="{Binding DataContext.IsReadOnly, Converter={StaticResource InverseBooleanConverter}, RelativeSource={RelativeSource AncestorType={x:Type ListView}}}" />
</ItemContainerTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
</controls:AutoSizedGridView>
</ListView.View>
</ListView>
<ListView ItemsSource="{Binding UserChannelCodes, UpdateSourceTrigger=PropertyChanged}" Grid.Row="1"
AutomationProperties.AutomationId="UserChannelCodeListView" Visibility="{Binding UserVisibility}" SelectionMode="Extended" SelectionChanged="UserCodes_SelectionChanged"
KeyboardNavigation.TabNavigation="Continue" x:Name="UserChannelCodesListView" PreviewMouseLeftButtonUp="UserChannelCodesListView_PreviewMouseLeftButtonUp">
<ListView.ItemContainerStyle>
<Style>
<Setter Property="KeyboardNavigation.IsTabStop" Value="False" />
</Style>
</ListView.ItemContainerStyle>
<ListView.View>
<controls:AutoSizedGridView AutomationProperties.AutomationId="ChannelCodesListGridView">
<GridViewColumn AutomationProperties.AutomationId="ChannelCodeColumn" Width="315">
<GridViewColumn.Header>
<controls:GridViewColumnHeaderSearchable Tag="UserCode" HeaderTitle="{strings:TranslateExtension UserCode}" Search="GridViewColumnHeaderSearchable_OnSearch"
ListviewId="{Binding ListViewId}" x:Name="UserCodeColumnHeader" ClickHandler="GridViewColumnHeader_OnClick"/>
</GridViewColumn.Header>
<GridViewColumn.CellTemplate>
<ItemContainerTemplate>
<controls:ChannelCodeBuilder Width="300" AutomationProperties.AutomationId="ChannelCodeTextBox" Code="{Binding Code, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
KeyDown="ChannelCodeTextBox_KeyDown" TextChanged="ChannelCodeTextBoxUser_TextChanged" CodeType="User"
ChannelCodeSelected="ChannelCodeBuilder_OnChannelCodeSelected"
ChannelCodesFunc="{Binding DataContext.ChannelCodesFunc, RelativeSource={RelativeSource AncestorType={x:Type ListView}}}"
ShowChannelCodeLookupHelper="{Binding DataContext.ShowChannelCodeLookupHelper, RelativeSource={RelativeSource AncestorType={x:Type ListView}}}"
ShowISOStringBuilder="{Binding DataContext.ShowISOStringBuilder, RelativeSource={RelativeSource AncestorType={x:Type ListView}}}"
UniqueISOCodesRequired="{Binding DataContext.UniqueISOCodesRequired, RelativeSource={RelativeSource AncestorType={x:Type ListView}}}"
PasteId="ChannelCode" behaviors:TextBoxPasteBehavior.PasteCommand="{Binding PasteCommand}" Tag="UserCode"
BorderBrush="{Binding ItemStatus, Converter={StaticResource StatusToColor}}"
SelectionChanged="ChannelCodeTextBoxUser_SelectionChanged"
BorderThickness="{Binding ItemStatus, Converter={StaticResource StatusToBorderThickness}}"
IsEnabled="{Binding DataContext.IsReadOnly, Converter={StaticResource InverseBooleanConverter}, RelativeSource={RelativeSource AncestorType={x:Type ListView}}}" />
</ItemContainerTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
<GridViewColumn AutomationProperties.AutomationId="DisplayNameColumn" Width="315">
<GridViewColumn.Header>
<controls:GridViewColumnHeaderSearchable Tag="UserChannelName" HeaderTitle="{strings:TranslateExtension UserChannelName}" Search="GridViewColumnHeaderSearchable_OnSearch"
ListviewId="{Binding ListViewId}" x:Name="UserChannelNameColumnHeader"/>
</GridViewColumn.Header>
<GridViewColumn.CellTemplate>
<ItemContainerTemplate>
<TextBox Width="300" AutomationProperties.AutomationId="DisplayNameTextBox"
Text="{Binding Name, UpdateSourceTrigger=PropertyChanged}" KeyDown="DisplayNameTextBox_KeyDown"
TextChanged="DisplayNameTextBoxUser_TextChanged" MaxLength="250"
behaviors:TextBoxPasteBehavior.PasteCommand="{Binding PasteCommand}" Tag="UserChannelName"
BorderBrush="{Binding ItemStatus, Converter={StaticResource StatusToColor}}"
BorderThickness="{Binding ItemStatus, Converter={StaticResource StatusToBorderThickness}}"
SelectionChanged="DisplayNameTextBoxUser_SelectionChanged"
IsEnabled="{Binding DataContext.IsReadOnly, Converter={StaticResource InverseBooleanConverter}, RelativeSource={RelativeSource AncestorType={x:Type ListView}}}" />
</ItemContainerTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
</controls:AutoSizedGridView>
</ListView.View>
</ListView>
</Grid>
</base:BaseView>

View File

@@ -0,0 +1,279 @@
using System.Collections.Generic;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Media;
using DTS.Common.Controls;
using DTS.Common.Enums.Channels;
using DTS.Common.Interface.Channels.ChannelCodes;
using DTS.Common.Utils;
// ReSharper disable CheckNamespace
namespace ChannelCodes
{
/// <inheritdoc cref="IChannelCodesListView" />
/// <summary>
/// Interaction logic for ChannelCodesListView.xaml
/// </summary>
public partial class ChannelCodesListView : IChannelCodesListView
{
public ChannelCodesListView()
{
InitializeComponent();
}
private void GridViewColumnHeaderSearchable_OnSearch(object sender, RoutedEventArgs e)
{
var searchTerm = (string)e.OriginalSource;
var columnTag = (sender as GridViewColumnHeaderSearchable)?.Tag;
var viewModel = (IChannelCodesListViewModel)DataContext;
viewModel.Filter(columnTag, searchTerm);
}
//private void ChannelType_SelectionChanged(object sender, SelectionChangedEventArgs e)
//{
// if( e.RemovedItems.Count == 0) { return; }
// if( !(DataContext is ChannelCodesListViewModel vm)) { return; }
// if( !(((System.Windows.Controls.Control) e.Source).DataContext is IChannelCode channelCode)) { return; }
// vm.MarkModified(channelCode);
//}
private void GridViewColumnHeader_OnClick(object sender, RoutedEventArgs e)
{
var vm = (IChannelCodesListViewModel)DataContext;
var columnTag = (sender as GridViewColumnHeaderSearchable)?.Tag ?? Utils.FindChild<GridViewColumnHeaderSearchable>((DependencyObject)e.OriginalSource, null)?.Tag;
vm?.Sort(columnTag, true);
}
private void ChannelCodeTextBox_KeyDown(object sender, System.Windows.Input.KeyEventArgs e)
{
if (!(DataContext is ChannelCodesListViewModel vm)) { return; }
if (!(((System.Windows.Controls.Control)e.Source).DataContext is IChannelCode channelCode)) { return; }
vm.MarkModified(channelCode);
}
private void ChannelCodeTextBoxUser_TextChanged(object sender, TextChangedEventArgs e)
{
if (!(DataContext is ChannelCodesListViewModel vm)) { return; }
if (!(sender is Control control)) { return; }
if (!(control.DataContext is IChannelCode channelCode)) { return; }
var notUsed1 = new List<string>();
var notUsed2 = new List<string>();
vm.MarkModified(channelCode);
vm.ValidateUser(ref notUsed1, ref notUsed2);
}
private void ChannelCodeTextBoxIso_TextChanged(object sender, TextChangedEventArgs e)
{
if (!(DataContext is ChannelCodesListViewModel vm)) { return; }
if (!(sender is Control control)) { return; }
if (!(control.DataContext is IChannelCode channelCode)) { return; }
vm.MarkModified(channelCode);
var notUsed1 = new List<string>();
var notUsed2 = new List<string>();
vm.ValidateISO(ref notUsed1, ref notUsed2);
}
private void DisplayNameTextBox_KeyDown(object sender, System.Windows.Input.KeyEventArgs e)
{
if (!(DataContext is ChannelCodesListViewModel vm)) { return; }
if (!(((System.Windows.Controls.Control)e.Source).DataContext is IChannelCode channelCode)) { return; }
vm.MarkModified(channelCode);
}
private void DisplayNameTextBoxUser_TextChanged(object sender, TextChangedEventArgs e)
{
if (!(DataContext is ChannelCodesListViewModel vm)) { return; }
if (!(e.Source is TextBox textBox)) { return; }
if (!(textBox.DataContext is IChannelCode channelCode)) { return; }
vm.MarkModified(channelCode);
var notUsed1 = new List<string>();
var notUsed2 = new List<string>();
vm.ValidateUser(ref notUsed1, ref notUsed2);
}
private void DisplayNameTextBoxIso_TextChanged(object sender, TextChangedEventArgs e)
{
if (!(DataContext is ChannelCodesListViewModel vm)) { return; }
if (!(e.Source is TextBox textBox)) { return; }
if (!(textBox.DataContext is IChannelCode channelCode)) { return; }
vm.MarkModified(channelCode);
var notUsed1 = new List<string>();
var notUsed2 = new List<string>();
vm.ValidateISO(ref notUsed1, ref notUsed2);
}
private void ISO_Checked(object sender, RoutedEventArgs e)
{
if (!(DataContext is ChannelCodesListViewModel vm)) { return; }
vm.ViewMode = ChannelCodesListViewModel.ViewModes.ISO;
}
private void User_Checked(object sender, RoutedEventArgs e)
{
if (!(DataContext is ChannelCodesListViewModel vm)) { return; }
vm.ViewMode = ChannelCodesListViewModel.ViewModes.User;
}
private void ISOCodes_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
if (!(DataContext is ChannelCodesListViewModel vm)) { return; }
if (!(sender is ListView lv)) { return; }
var list = new List<IChannelCode>();
foreach (var item in lv.SelectedItems)
{
if (!(item is IChannelCode code))
{
continue;
}
list.Add(code);
}
vm.SetISOSelection(list.ToArray());
}
private void UserCodes_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
if (!(DataContext is ChannelCodesListViewModel vm)) { return; }
if (!(sender is ListView lv)) { return; }
var list = new List<IChannelCode>();
foreach (var item in lv.SelectedItems)
{
if (!(item is IChannelCode code))
{
continue;
}
list.Add(code);
}
vm.SetUserSelection(list.ToArray());
}
private void ChannelCodeBuilder_OnChannelCodeSelected(object sender, string code, string name, ChannelEnumsAndConstants.ChannelCodeType codetype)
{
if (!(DataContext is ChannelCodesListViewModel viewModel)) { return; }
if (!(sender is Control control)) { return; }
if (!(control.DataContext is IChannelCode channelCode)) { return; }
channelCode.Code = code;
if (string.IsNullOrWhiteSpace(channelCode.Name))
{
channelCode.Name = name;
}
viewModel.MarkModified(channelCode);
}
private void ISOChannelCodesListView_PreviewMouseLeftButtonUp(object sender, System.Windows.Input.MouseButtonEventArgs e)
{
var point = e.GetPosition(ISOChannelCodesListView);
//we have to do multiple hittests unfortunately, because borders and rectangles...
var result = VisualTreeHelper.HitTest((UIElement)sender, point);
if (null == result) { return; }
if (!(result.VisualHit is UIElement element)) { return; }
var result2 = ISOChannelCodesListView.InputHitTest(point);
if (!(result2 is UIElement element2)) { return; }
//clicking on the bottom of the listview produces a scrollviewer, if we get that we can return
if (element is ScrollViewer)
{
return;
}
var vm = (IChannelCodesListViewModel)DataContext;
if (element is TextBlock tb)
{
if (tb.Text == ChannelCodes.Resources.StringResources.ISOCode) { vm?.Sort(ISOCodeColumnHeader.Tag, true); }
if (tb.Text == ChannelCodes.Resources.StringResources.ISOChannelName) { vm?.Sort(ISOChannelNameColumnHeader.Tag, true); }
return;
}
if (ISOCodeColumnHeader.IsDescendantOf(element) || ISOCodeColumnHeader.IsDescendantOf(element2))
{
vm?.Sort(ISOCodeColumnHeader.Tag, true);
return;
}
if (ISOChannelNameColumnHeader.IsDescendantOf(element) || ISOChannelNameColumnHeader.IsDescendantOf(element2))
{
vm?.Sort(ISOChannelNameColumnHeader.Tag, true);
}
}
private void UserChannelCodesListView_PreviewMouseLeftButtonUp(object sender, System.Windows.Input.MouseButtonEventArgs e)
{
var point = e.GetPosition(UserChannelCodesListView);
//we have to do multiple hittests unfortunately, because borders and rectangles...
var result = VisualTreeHelper.HitTest((UIElement)sender, point);
if (null == result) { return; }
if (!(result.VisualHit is UIElement element)) { return; }
var result2 = UserChannelCodesListView.InputHitTest(point);
if (!(result2 is UIElement element2)) { return; }
//clicking on the bottom of the listview produces a scrollviewer, if we get that we can return
if (element is ScrollViewer)
{
return;
}
var vm = (IChannelCodesListViewModel)DataContext;
if (element is TextBlock tb)
{
if (tb.Text == ChannelCodes.Resources.StringResources.UserCode) { vm?.Sort(UserCodeColumnHeader.Tag, true); }
if (tb.Text == ChannelCodes.Resources.StringResources.UserChannelName) { vm?.Sort(UserChannelNameColumnHeader.Tag, true); }
return;
}
if (UserCodeColumnHeader.IsDescendantOf(element) || UserCodeColumnHeader.IsDescendantOf(element2))
{
vm?.Sort(UserCodeColumnHeader.Tag, true);
return;
}
if (UserChannelNameColumnHeader.IsDescendantOf(element) || UserChannelNameColumnHeader.IsDescendantOf(element2))
{
vm?.Sort(UserChannelNameColumnHeader.Tag, true);
}
}
//FB 25725 ISO selection has been changed, update the iso selection
private void DisplayNameTextBoxIso_SelectionChanged(object sender, RoutedEventArgs e)
{
if (!(DataContext is ChannelCodesListViewModel vm)) { return; }
if (!(((Control)e.Source).DataContext is IChannelCode channelCode)) { return; }
vm.SetISOSelection(new List<IChannelCode> { channelCode }.ToArray());
}
//FB 25725 ISO selection has been changed, update the iso selection
private void ChannelCodeBuilder_SelectionChanged(object sender, RoutedEventArgs e)
{
if (!(DataContext is ChannelCodesListViewModel vm)) { return; }
if (!(sender is Control control)) { return; }
if (!(control.DataContext is IChannelCode channelCode)) { return; }
vm.SetISOSelection(new List<IChannelCode> { channelCode }.ToArray());
}
//FB 25725 User code selection has been changed, update the user code selection
private void DisplayNameTextBoxUser_SelectionChanged(object sender, RoutedEventArgs e)
{
if (!(DataContext is ChannelCodesListViewModel vm)) { return; }
if (!(((Control)e.Source).DataContext is IChannelCode channelCode)) { return; }
vm.SetUserSelection(new List<IChannelCode> { channelCode }.ToArray());
}
//FB 25725 User code selection has been changed, update the user code selection
private void ChannelCodeTextBoxUser_SelectionChanged(object sender, RoutedEventArgs e)
{
if (!(DataContext is ChannelCodesListViewModel vm)) { return; }
if (!(sender is Control control)) { return; }
if (!(control.DataContext is IChannelCode channelCode)) { return; }
vm.SetUserSelection(new List<IChannelCode> { channelCode }.ToArray());
}
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,4 @@
// <autogenerated />
using System;
using System.Reflection;
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETFramework,Version=v4.8", FrameworkDisplayName = "")]

View File

@@ -0,0 +1,4 @@
// <autogenerated />
using System;
using System.Reflection;
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETFramework,Version=v4.8", FrameworkDisplayName = ".NET Framework 4.8")]

View File

@@ -0,0 +1 @@
12

View File

@@ -0,0 +1 @@
UPDATE [dbo].[Settings] SET PropertyValue='False' where PropertyId='TriggerCheckQuickMode';

View File

@@ -0,0 +1,117 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>

View File

@@ -0,0 +1,12 @@
DECLARE @PropertyValue [NVARCHAR] (255)
SELECT @PropertyValue = PropertyValue FROM [dbo].[Settings] WHERE PropertyId = 'UseUnixTimestamps'
IF (@PropertyValue IS NULL)
BEGIN
INSERT INTO [dbo].[Settings] VALUES ('UseUnixTimestamps', 2, 'True', 'SYSTEM')
END
ELSE
BEGIN
UPDATE [dbo].[Settings] SET PropertyValue = 'True' WHERE PropertyId = 'UseUnixTimestamps';
END

View File

@@ -0,0 +1,26 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.42000
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace DatabaseInitializationScripts.Properties {
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.12.0.0")]
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
public static Settings Default {
get {
return defaultInstance;
}
}
}
}

View File

@@ -0,0 +1,12 @@
DECLARE @PropertyValue [NVARCHAR] (255)
SELECT @PropertyValue = PropertyValue FROM [dbo].[Settings] WHERE PropertyId = 'ShowGraphsSetupStep'
IF (@PropertyValue IS NULL)
BEGIN
INSERT INTO [dbo].[Settings] VALUES ('ShowGraphsSetupStep', 2, 'False', 'SYSTEM')
END
ELSE
BEGIN
UPDATE [dbo].[Settings] SET PropertyValue = 'False' WHERE PropertyId = 'ShowGraphsSetupStep';
END

View File

@@ -0,0 +1,12 @@
DECLARE @PropertyValue [NVARCHAR] (255)
SELECT @PropertyValue = PropertyValue FROM [dbo].[Settings] WHERE PropertyId = 'EnableClockSourceSelect'
IF (@PropertyValue IS NULL)
BEGIN
INSERT INTO [dbo].[Settings] VALUES ('EnableClockSourceSelect', 2, 'True', 'SYSTEM')
END
ELSE
BEGIN
UPDATE [dbo].[Settings] SET PropertyValue = 'True' WHERE PropertyId = 'EnableClockSourceSelect';
END

View File

@@ -0,0 +1,55 @@
using System.Reflection;
using System.Resources;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Windows;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("DatabaseInitializationScripts")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("DatabaseInitializationScripts")]
[assembly: AssemblyCopyright("Copyright © 2021")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]
//In order to begin building localizable applications, set
//<UICulture>CultureYouAreCodingWith</UICulture> in your .csproj file
//inside a <PropertyGroup>. For example, if you are using US english
//in your source files, set the <UICulture> to en-US. Then uncomment
//the NeutralResourceLanguage attribute below. Update the "en-US" in
//the line below to match the UICulture setting in the project file.
//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)]
[assembly: ThemeInfo(
ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located
//(used if a resource is not found in the page,
// or application resource dictionaries)
ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located
//(used if a resource is not found in the page,
// app, or any theme specific resource dictionaries)
)]
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]

View File

@@ -0,0 +1 @@
UPDATE [dbo].[DataPRODbVersion] SET Remarks = 'Crash';

View File

@@ -0,0 +1,36 @@
using System.IO;
namespace DatabaseInitializationScripts
{
public class EmbeddedResource
{
private EmbeddedResource()
{
}
public static StreamReader GetStream(System.Reflection.Assembly assembly, string name)
{
foreach (var resName in assembly.GetManifestResourceNames())
{
if (resName.EndsWith(name))
{
return new StreamReader(assembly.GetManifestResourceStream(resName));
}
}
return null;
}
public static string GetString(System.Reflection.Assembly assembly, string name)
{
var sr = GetStream(assembly, name);
var data = sr.ReadToEnd();
sr.Close();
return data;
}
public static string GetString(string name)
{
return GetString(typeof(EmbeddedResource).Assembly, name);
}
}
}

View File

@@ -0,0 +1,12 @@
DECLARE @PropertyValue [NVARCHAR] (255)
SELECT @PropertyValue = PropertyValue FROM [dbo].[Settings] WHERE PropertyId = 'ShowGroups'
IF (@PropertyValue IS NULL)
BEGIN
INSERT INTO [dbo].[Settings] VALUES ('ShowGroups', 2, 'False', 'SYSTEM')
END
ELSE
BEGIN
UPDATE [dbo].[Settings] SET PropertyValue = 'False' WHERE PropertyId = 'ShowGroups';
END

View File

@@ -0,0 +1 @@
UPDATE [dbo].[DataPRODbVersion] SET Remarks = 'Aero';

View File

@@ -0,0 +1,63 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.42000
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace DatabaseInitializationScripts.Properties {
using System;
/// <summary>
/// A strongly-typed resource class, for looking up localized strings, etc.
/// </summary>
// This class was auto-generated by the StronglyTypedResourceBuilder
// class via a tool like ResGen or Visual Studio.
// To add or remove a member, edit your .ResX file then rerun ResGen
// with the /str option, or rebuild your VS project.
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
internal class Resources {
private static global::System.Resources.ResourceManager resourceMan;
private static global::System.Globalization.CultureInfo resourceCulture;
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
internal Resources() {
}
/// <summary>
/// Returns the cached ResourceManager instance used by this class.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Resources.ResourceManager ResourceManager {
get {
if (object.ReferenceEquals(resourceMan, null)) {
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("DatabaseInitializationScripts.Properties.Resources", typeof(Resources).Assembly);
resourceMan = temp;
}
return resourceMan;
}
}
/// <summary>
/// Overrides the current thread's CurrentUICulture property for all
/// resource lookups using this strongly typed resource class.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Globalization.CultureInfo Culture {
get {
return resourceCulture;
}
set {
resourceCulture = value;
}
}
}
}

View File

@@ -0,0 +1,7 @@
<?xml version='1.0' encoding='utf-8'?>
<SettingsFile xmlns="uri:settings" CurrentProfile="(Default)">
<Profiles>
<Profile Name="(Default)" />
</Profiles>
<Settings />
</SettingsFile>

View File

@@ -0,0 +1,11 @@
UPDATE [dbo].[DefaultProperties] SET DefaultValue = 'True' WHERE PropertyName = 'AllowAdvancedRecordingModes';
--Admin
UPDATE [dbo].[UserProperties] SET PropertyValue = 'True' WHERE
UserID = (SELECT ID FROM [dbo].[Users] WHERE UserName = 'Admin') AND
PropertyId = (SELECT PropertyId FROM [dbo].[DefaultProperties] WHERE PropertyName = 'AllowAdvancedRecordingModes');
--AeroUser
UPDATE [dbo].[UserProperties] SET PropertyValue = 'True' WHERE
UserID = (SELECT ID FROM [dbo].[Users] WHERE UserName = 'AeroUser') AND
PropertyId = (SELECT PropertyId FROM [dbo].[DefaultProperties] WHERE PropertyName = 'AllowAdvancedRecordingModes');

View File

@@ -0,0 +1,130 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{6094201E-5ED8-4AAA-A487-A0361A9E1E2E}</ProjectGuid>
<OutputType>Library</OutputType>
<RootNamespace>DatabaseInitializationScripts</RootNamespace>
<AssemblyName>DatabaseInitializationScripts</AssemblyName>
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
<WarningLevel>4</WarningLevel>
<AutoGenerateBindingRedirects>false</AutoGenerateBindingRedirects>
<Deterministic>true</Deterministic>
<TargetFrameworkProfile />
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<PlatformTarget>x64</PlatformTarget>
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\x64\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup>
<StartupObject />
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
<DebugSymbols>true</DebugSymbols>
<OutputPath>bin\x64\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<DebugType>full</DebugType>
<PlatformTarget>x64</PlatformTarget>
<LangVersion>7.3</LangVersion>
<ErrorReport>prompt</ErrorReport>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
<OutputPath>bin\x64\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<Optimize>true</Optimize>
<DebugType>pdbonly</DebugType>
<PlatformTarget>x64</PlatformTarget>
<LangVersion>7.3</LangVersion>
<ErrorReport>prompt</ErrorReport>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Data" />
<Reference Include="System.Xml" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Core" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="System.Net.Http" />
<Reference Include="System.Xaml">
<RequiredTargetFramework>4.0</RequiredTargetFramework>
</Reference>
<Reference Include="WindowsBase" />
<Reference Include="PresentationCore" />
<Reference Include="PresentationFramework" />
</ItemGroup>
<ItemGroup>
<Compile Include="EmbeddedResource.cs" />
</ItemGroup>
<ItemGroup>
<Compile Include="Properties\AssemblyInfo.cs">
<SubType>Code</SubType>
</Compile>
<Compile Include="Properties\Resources.Designer.cs">
<AutoGen>True</AutoGen>
<DesignTime>True</DesignTime>
<DependentUpon>Resources.resx</DependentUpon>
</Compile>
<Compile Include="Properties\Settings.Designer.cs">
<AutoGen>True</AutoGen>
<DependentUpon>Settings.settings</DependentUpon>
<DesignTimeSharedInput>True</DesignTimeSharedInput>
</Compile>
<EmbeddedResource Include="Properties\Resources.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
</EmbeddedResource>
<None Include="Properties\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator>
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
</None>
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="InitializationScripts\AeroScripts\dbo.Add_AeroRemarks.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="InitializationScripts\CrashScripts\dbo.Add_CrashRemarks.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="InitializationScripts\TSRAIRScripts\dbo.Settings_TriggerCheckQuickmode.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="InitializationScripts\Common\dbo.TurnOffISOCodes.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="InitializationScripts\Common\dbo.SystemSettings_HideGraphsStep.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="InitializationScripts\Common\dbo.SystemSettings_HideISOExport.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="InitializationScripts\AeroScripts\dbo.SystemSettings_HideGroups.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="InitializationScripts\TSRAIRScripts\dbo.Add_TSRAIRRemarks.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="InitializationScripts\Common\dbo.SystemSettings_EnableClockSource.sql" />
<EmbeddedResource Include="InitializationScripts\Common\dbo.SystemSettings_UseUTCTimeCSVExport.sql" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>

View File

@@ -0,0 +1,10 @@
UPDATE [dbo].[DefaultProperties] SET DefaultValue = 'True' WHERE PropertyName = 'AllowAdvancedRecordingModes';
--Admin
UPDATE [dbo].[UserProperties] SET PropertyValue = 'True' WHERE
UserID = (SELECT ID FROM [dbo].[Users] WHERE UserName = 'Admin') AND
PropertyId = (SELECT PropertyId FROM [dbo].[DefaultProperties] WHERE PropertyName = 'AllowAdvancedRecordingModes');
UPDATE [dbo].[UserProperties] SET PropertyValue = 'True' WHERE
UserID = (SELECT ID FROM [dbo].[Users] WHERE UserName = @InitializationType) AND
PropertyId = (SELECT PropertyId FROM [dbo].[DefaultProperties] WHERE PropertyName = 'AllowAdvancedRecordingModes');

View File

@@ -0,0 +1,12 @@
DECLARE @PropertyValue [NVARCHAR] (255)
SELECT @PropertyValue = PropertyValue FROM [dbo].[Settings] WHERE PropertyId = 'ShowISOExport'
IF (@PropertyValue IS NULL)
BEGIN
INSERT INTO [dbo].[Settings] VALUES ('ShowISOExport', 2, 'False', 'SYSTEM')
END
ELSE
BEGIN
UPDATE [dbo].[Settings] SET PropertyValue = 'False' WHERE PropertyId = 'ShowISOExport';
END

View File

@@ -0,0 +1 @@
UPDATE [dbo].[DataPRODbVersion] SET Remarks = 'TSRAIR';

View File

@@ -0,0 +1 @@
UPDATE [dbo].[Settings] SET PropertyValue = 'False' WHERE PropertyId = 'ShowISOCodes';

View File

@@ -0,0 +1,130 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{6094201E-5ED8-4AAA-A487-A0361A9E1E2E}</ProjectGuid>
<OutputType>Library</OutputType>
<RootNamespace>DatabaseInitializationScripts</RootNamespace>
<AssemblyName>DatabaseInitializationScripts</AssemblyName>
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
<WarningLevel>4</WarningLevel>
<AutoGenerateBindingRedirects>false</AutoGenerateBindingRedirects>
<Deterministic>true</Deterministic>
<TargetFrameworkProfile />
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<PlatformTarget>x64</PlatformTarget>
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\x64\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup>
<StartupObject />
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
<DebugSymbols>true</DebugSymbols>
<OutputPath>bin\x64\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<DebugType>full</DebugType>
<PlatformTarget>x64</PlatformTarget>
<LangVersion>7.3</LangVersion>
<ErrorReport>prompt</ErrorReport>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
<OutputPath>bin\x64\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<Optimize>true</Optimize>
<DebugType>pdbonly</DebugType>
<PlatformTarget>x64</PlatformTarget>
<LangVersion>7.3</LangVersion>
<ErrorReport>prompt</ErrorReport>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Data" />
<Reference Include="System.Xml" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Core" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="System.Net.Http" />
<Reference Include="System.Xaml">
<RequiredTargetFramework>4.0</RequiredTargetFramework>
</Reference>
<Reference Include="WindowsBase" />
<Reference Include="PresentationCore" />
<Reference Include="PresentationFramework" />
</ItemGroup>
<ItemGroup>
<Compile Include="EmbeddedResource.cs" />
</ItemGroup>
<ItemGroup>
<Compile Include="Properties\AssemblyInfo.cs">
<SubType>Code</SubType>
</Compile>
<Compile Include="Properties\Resources.Designer.cs">
<AutoGen>True</AutoGen>
<DesignTime>True</DesignTime>
<DependentUpon>Resources.resx</DependentUpon>
</Compile>
<Compile Include="Properties\Settings.Designer.cs">
<AutoGen>True</AutoGen>
<DependentUpon>Settings.settings</DependentUpon>
<DesignTimeSharedInput>True</DesignTimeSharedInput>
</Compile>
<EmbeddedResource Include="Properties\Resources.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
</EmbeddedResource>
<None Include="Properties\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator>
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
</None>
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="InitializationScripts\AeroScripts\dbo.Add_AeroRemarks.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="InitializationScripts\CrashScripts\dbo.Add_CrashRemarks.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="InitializationScripts\TSRAIRScripts\dbo.Settings_TriggerCheckQuickmode.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="InitializationScripts\Common\dbo.TurnOffISOCodes.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="InitializationScripts\Common\dbo.SystemSettings_HideGraphsStep.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="InitializationScripts\Common\dbo.SystemSettings_HideISOExport.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="InitializationScripts\AeroScripts\dbo.SystemSettings_HideGroups.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="InitializationScripts\TSRAIRScripts\dbo.Add_TSRAIRRemarks.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="InitializationScripts\Common\dbo.SystemSettings_EnableClockSource.sql" />
<EmbeddedResource Include="InitializationScripts\Common\dbo.SystemSettings_UseUTCTimeCSVExport.sql" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>

View File

@@ -0,0 +1,36 @@
using System.IO;
namespace DatabaseInitializationScripts
{
public class EmbeddedResource
{
private EmbeddedResource()
{
}
public static StreamReader GetStream(System.Reflection.Assembly assembly, string name)
{
foreach (var resName in assembly.GetManifestResourceNames())
{
if (resName.EndsWith(name))
{
return new StreamReader(assembly.GetManifestResourceStream(resName));
}
}
return null;
}
public static string GetString(System.Reflection.Assembly assembly, string name)
{
var sr = GetStream(assembly, name);
var data = sr.ReadToEnd();
sr.Close();
return data;
}
public static string GetString(string name)
{
return GetString(typeof(EmbeddedResource).Assembly, name);
}
}
}

View File

@@ -0,0 +1 @@
UPDATE [dbo].[DataPRODbVersion] SET Remarks = 'Aero';

View File

@@ -0,0 +1,12 @@
DECLARE @PropertyValue [NVARCHAR] (255)
SELECT @PropertyValue = PropertyValue FROM [dbo].[Settings] WHERE PropertyId = 'ShowGroups'
IF (@PropertyValue IS NULL)
BEGIN
INSERT INTO [dbo].[Settings] VALUES ('ShowGroups', 2, 'False', 'SYSTEM')
END
ELSE
BEGIN
UPDATE [dbo].[Settings] SET PropertyValue = 'False' WHERE PropertyId = 'ShowGroups';
END

View File

@@ -0,0 +1,10 @@
UPDATE [dbo].[DefaultProperties] SET DefaultValue = 'True' WHERE PropertyName = 'AllowAdvancedRecordingModes';
--Admin
UPDATE [dbo].[UserProperties] SET PropertyValue = 'True' WHERE
UserID = (SELECT ID FROM [dbo].[Users] WHERE UserName = 'Admin') AND
PropertyId = (SELECT PropertyId FROM [dbo].[DefaultProperties] WHERE PropertyName = 'AllowAdvancedRecordingModes');
UPDATE [dbo].[UserProperties] SET PropertyValue = 'True' WHERE
UserID = (SELECT ID FROM [dbo].[Users] WHERE UserName = @InitializationType) AND
PropertyId = (SELECT PropertyId FROM [dbo].[DefaultProperties] WHERE PropertyName = 'AllowAdvancedRecordingModes');

View File

@@ -0,0 +1,12 @@
DECLARE @PropertyValue [NVARCHAR] (255)
SELECT @PropertyValue = PropertyValue FROM [dbo].[Settings] WHERE PropertyId = 'EnableClockSourceSelect'
IF (@PropertyValue IS NULL)
BEGIN
INSERT INTO [dbo].[Settings] VALUES ('EnableClockSourceSelect', 2, 'True', 'SYSTEM')
END
ELSE
BEGIN
UPDATE [dbo].[Settings] SET PropertyValue = 'True' WHERE PropertyId = 'EnableClockSourceSelect';
END

View File

@@ -0,0 +1,12 @@
DECLARE @PropertyValue [NVARCHAR] (255)
SELECT @PropertyValue = PropertyValue FROM [dbo].[Settings] WHERE PropertyId = 'ShowGraphsSetupStep'
IF (@PropertyValue IS NULL)
BEGIN
INSERT INTO [dbo].[Settings] VALUES ('ShowGraphsSetupStep', 2, 'False', 'SYSTEM')
END
ELSE
BEGIN
UPDATE [dbo].[Settings] SET PropertyValue = 'False' WHERE PropertyId = 'ShowGraphsSetupStep';
END

View File

@@ -0,0 +1,12 @@
DECLARE @PropertyValue [NVARCHAR] (255)
SELECT @PropertyValue = PropertyValue FROM [dbo].[Settings] WHERE PropertyId = 'ShowISOExport'
IF (@PropertyValue IS NULL)
BEGIN
INSERT INTO [dbo].[Settings] VALUES ('ShowISOExport', 2, 'False', 'SYSTEM')
END
ELSE
BEGIN
UPDATE [dbo].[Settings] SET PropertyValue = 'False' WHERE PropertyId = 'ShowISOExport';
END

View File

@@ -0,0 +1,12 @@
DECLARE @PropertyValue [NVARCHAR] (255)
SELECT @PropertyValue = PropertyValue FROM [dbo].[Settings] WHERE PropertyId = 'UseUnixTimestamps'
IF (@PropertyValue IS NULL)
BEGIN
INSERT INTO [dbo].[Settings] VALUES ('UseUnixTimestamps', 2, 'True', 'SYSTEM')
END
ELSE
BEGIN
UPDATE [dbo].[Settings] SET PropertyValue = 'True' WHERE PropertyId = 'UseUnixTimestamps';
END

View File

@@ -0,0 +1 @@
UPDATE [dbo].[Settings] SET PropertyValue = 'False' WHERE PropertyId = 'ShowISOCodes';

View File

@@ -0,0 +1 @@
UPDATE [dbo].[DataPRODbVersion] SET Remarks = 'Crash';

View File

@@ -0,0 +1 @@
UPDATE [dbo].[DataPRODbVersion] SET Remarks = 'TSRAIR';

View File

@@ -0,0 +1 @@
UPDATE [dbo].[Settings] SET PropertyValue='False' where PropertyId='TriggerCheckQuickMode';

View File

@@ -0,0 +1,11 @@
UPDATE [dbo].[DefaultProperties] SET DefaultValue = 'True' WHERE PropertyName = 'AllowAdvancedRecordingModes';
--Admin
UPDATE [dbo].[UserProperties] SET PropertyValue = 'True' WHERE
UserID = (SELECT ID FROM [dbo].[Users] WHERE UserName = 'Admin') AND
PropertyId = (SELECT PropertyId FROM [dbo].[DefaultProperties] WHERE PropertyName = 'AllowAdvancedRecordingModes');
--AeroUser
UPDATE [dbo].[UserProperties] SET PropertyValue = 'True' WHERE
UserID = (SELECT ID FROM [dbo].[Users] WHERE UserName = 'AeroUser') AND
PropertyId = (SELECT PropertyId FROM [dbo].[DefaultProperties] WHERE PropertyName = 'AllowAdvancedRecordingModes');

View File

@@ -0,0 +1,55 @@
using System.Reflection;
using System.Resources;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Windows;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("DatabaseInitializationScripts")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("DatabaseInitializationScripts")]
[assembly: AssemblyCopyright("Copyright © 2021")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]
//In order to begin building localizable applications, set
//<UICulture>CultureYouAreCodingWith</UICulture> in your .csproj file
//inside a <PropertyGroup>. For example, if you are using US english
//in your source files, set the <UICulture> to en-US. Then uncomment
//the NeutralResourceLanguage attribute below. Update the "en-US" in
//the line below to match the UICulture setting in the project file.
//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)]
[assembly: ThemeInfo(
ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located
//(used if a resource is not found in the page,
// or application resource dictionaries)
ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located
//(used if a resource is not found in the page,
// app, or any theme specific resource dictionaries)
)]
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]

View File

@@ -0,0 +1,63 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.42000
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace DatabaseInitializationScripts.Properties {
using System;
/// <summary>
/// A strongly-typed resource class, for looking up localized strings, etc.
/// </summary>
// This class was auto-generated by the StronglyTypedResourceBuilder
// class via a tool like ResGen or Visual Studio.
// To add or remove a member, edit your .ResX file then rerun ResGen
// with the /str option, or rebuild your VS project.
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
internal class Resources {
private static global::System.Resources.ResourceManager resourceMan;
private static global::System.Globalization.CultureInfo resourceCulture;
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
internal Resources() {
}
/// <summary>
/// Returns the cached ResourceManager instance used by this class.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Resources.ResourceManager ResourceManager {
get {
if (object.ReferenceEquals(resourceMan, null)) {
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("DatabaseInitializationScripts.Properties.Resources", typeof(Resources).Assembly);
resourceMan = temp;
}
return resourceMan;
}
}
/// <summary>
/// Overrides the current thread's CurrentUICulture property for all
/// resource lookups using this strongly typed resource class.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Globalization.CultureInfo Culture {
get {
return resourceCulture;
}
set {
resourceCulture = value;
}
}
}
}

View File

@@ -0,0 +1,117 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>

View File

@@ -0,0 +1,26 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.42000
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace DatabaseInitializationScripts.Properties {
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.12.0.0")]
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
public static Settings Default {
get {
return defaultInstance;
}
}
}
}

View File

@@ -0,0 +1,7 @@
<?xml version='1.0' encoding='utf-8'?>
<SettingsFile xmlns="uri:settings" CurrentProfile="(Default)">
<Profiles>
<Profile Name="(Default)" />
</Profiles>
<Settings />
</SettingsFile>

View File

@@ -0,0 +1,4 @@
// <autogenerated />
using System;
using System.Reflection;
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETFramework,Version=v4.8", FrameworkDisplayName = "")]

View File

@@ -0,0 +1,8 @@
D:\DTS\Code\DP\BRANCH_MAINT_4_04\DataPRO\Modules\Database\DatabaseInitializationScripts\bin\x64\Debug\DatabaseInitializationScripts.dll
D:\DTS\Code\DP\BRANCH_MAINT_4_04\DataPRO\Modules\Database\DatabaseInitializationScripts\bin\x64\Debug\DatabaseInitializationScripts.pdb
D:\DTS\Code\DP\BRANCH_MAINT_4_04\DataPRO\Modules\Database\DatabaseInitializationScripts\obj\Debug\DatabaseInitializationScripts.csproj.AssemblyReference.cache
D:\DTS\Code\DP\BRANCH_MAINT_4_04\DataPRO\Modules\Database\DatabaseInitializationScripts\obj\Debug\DatabaseInitializationScripts.Properties.Resources.resources
D:\DTS\Code\DP\BRANCH_MAINT_4_04\DataPRO\Modules\Database\DatabaseInitializationScripts\obj\Debug\DatabaseInitializationScripts.csproj.GenerateResource.cache
D:\DTS\Code\DP\BRANCH_MAINT_4_04\DataPRO\Modules\Database\DatabaseInitializationScripts\obj\Debug\DatabaseInitializationScripts.csproj.CoreCompileInputs.cache
D:\DTS\Code\DP\BRANCH_MAINT_4_04\DataPRO\Modules\Database\DatabaseInitializationScripts\obj\Debug\DatabaseInitializationScripts.dll
D:\DTS\Code\DP\BRANCH_MAINT_4_04\DataPRO\Modules\Database\DatabaseInitializationScripts\obj\Debug\DatabaseInitializationScripts.pdb

View File

@@ -0,0 +1 @@
12

View File

@@ -0,0 +1 @@
12

View File

@@ -0,0 +1,978 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{EFAB771C-7AA7-4715-8AC3-9A1B6194FCC2}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>DatabaseMigrationScripts</RootNamespace>
<AssemblyName>DatabaseMigrationScripts</AssemblyName>
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<TargetFrameworkProfile />
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
<DebugSymbols>true</DebugSymbols>
<OutputPath>bin\x64\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<DebugType>full</DebugType>
<PlatformTarget>x64</PlatformTarget>
<ErrorReport>prompt</ErrorReport>
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
<OutputPath>bin\x64\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<Optimize>true</Optimize>
<DebugType>pdbonly</DebugType>
<PlatformTarget>x64</PlatformTarget>
<ErrorReport>prompt</ErrorReport>
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'">
<DebugSymbols>true</DebugSymbols>
<OutputPath>bin\x86\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<DebugType>full</DebugType>
<PlatformTarget>x86</PlatformTarget>
<ErrorReport>prompt</ErrorReport>
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x86'">
<OutputPath>bin\x86\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<Optimize>true</Optimize>
<DebugType>pdbonly</DebugType>
<PlatformTarget>x86</PlatformTarget>
<ErrorReport>prompt</ErrorReport>
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data" />
<Reference Include="System.Net.Http" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="EmbeddedResource.cs" />
<EmbeddedResource Include="MigrationScripts\Version100\SLICE_PRO_CAN_FD\Add_sp_DASGet_100_100.sql" />
<EmbeddedResource Include="MigrationScripts\Version100\SLICE_PRO_CAN_FD\Alter_sp_DASGet_100.sql" />
<EmbeddedResource Include="MigrationScripts\Version100\SLICE_PRO_CAN_FD\Alter_sp_DASGet_95_100.sql" />
<EmbeddedResource Include="MigrationScripts\Version100\SLICE_PRO_CAN_FD\Alter_sp_DASGet_99_100.sql" />
<EmbeddedResource Include="MigrationScripts\Version98\SensorAssembliesAndCalibration\Alter_SensorCalibrations_98.sql" />
<EmbeddedResource Include="MigrationScripts\Version98\SensorAssembliesAndCalibration\Alter_sp_SensorCalibrationsGet_98.sql" />
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version64\SensorsDigitalIn_AddFilterClassField.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version62\sp_TestSetupsDelete.sql" />
<EmbeddedResource Include="MigrationScripts\Version63\SensorsDigitalIn_AddMeasurementUnitField.sql" />
<EmbeddedResource Include="MigrationScripts\Version63\sp_DBImportSensorsDigitalInput.sql" />
<EmbeddedResource Include="MigrationScripts\Version63\sp_SensorsDigitalInGet.sql" />
<EmbeddedResource Include="MigrationScripts\Version63\sp_SensorsDigitalInInsert.sql" />
<EmbeddedResource Include="MigrationScripts\Version63\sp_SensorsDigitalInUpdate.sql" />
<EmbeddedResource Include="MigrationScripts\Version63\sp_SensorsDigitalInUpdateAll.sql" />
<EmbeddedResource Include="MigrationScripts\Version63\sp_SensorsDigitalInUpdateInsert.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version64\sp_DBImportSensorsDigitalInput_64.sql" />
<EmbeddedResource Include="MigrationScripts\Version64\sp_SensorsDigitalInGet_64.sql" />
<EmbeddedResource Include="MigrationScripts\Version64\sp_SensorsDigitalInInsert_64.sql" />
<EmbeddedResource Include="MigrationScripts\Version64\sp_SensorsDigitalInUpdateAll_64.sql" />
<EmbeddedResource Include="MigrationScripts\Version64\sp_SensorsDigitalInUpdateInsert_64.sql" />
<EmbeddedResource Include="MigrationScripts\Version64\sp_SensorsDigitalInUpdate_64.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version65\sp_TestChannelSettingsInsert_65.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version66\ALTERTestSetupObjects_66.sql" />
<EmbeddedResource Include="MigrationScripts\Version66\sp_TestSetupObjectsGet_66.sql" />
<EmbeddedResource Include="MigrationScripts\Version66\sp_TestSetupObjectsInsert_66.sql" />
<EmbeddedResource Include="MigrationScripts\Version66\sp_TestSetupObjectsUpdateInsert_66.sql" />
<EmbeddedResource Include="MigrationScripts\Version66\sp_TestSetupObjectsUpdate_66.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version62\sp_TemplateChannelsDeleteOne_62.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version68\sp_TestSetupLockUpdate.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version70\sp_DBImportSensorModel.StoredProcedure_70.sql" />
<EmbeddedResource Include="MigrationScripts\Version70\sp_SensorModelsInsert.StoredProcedure_70.sql" />
<EmbeddedResource Include="MigrationScripts\Version70\sp_SensorModelsUpdate.StoredProcedure_70.sql" />
<EmbeddedResource Include="MigrationScripts\Version70\sp_SensorModelsUpdateInsert.StoredProcedure_70.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version72\sp_TestSetupGroupsGet.StoredProcedure_72.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version72\dbo.foo_GetIdenticalChannelCount_72.sql" />
<EmbeddedResource Include="MigrationScripts\Version72\dbo.foo_GetIdenticalGroupChannelSettingsCount_72.sql" />
<EmbeddedResource Include="MigrationScripts\Version72\dbo.foo_GetTotalChannelCount_72.sql" />
<EmbeddedResource Include="MigrationScripts\Version72\dbo.foo_GetTotalGroupChannelSettingsCount_72.sql" />
<EmbeddedResource Include="MigrationScripts\Version72\dbo.sp_CompareGroupChannelSettings.StoredProcedure_72.sql" />
<EmbeddedResource Include="MigrationScripts\Version72\dbo.sp_CompareGroups.StoredProcedure_72.sql" />
<EmbeddedResource Include="MigrationScripts\Version72\sp_LockFree_72.sql" />
<EmbeddedResource Include="MigrationScripts\Version72\sp_LockGet_72.sql" />
<EmbeddedResource Include="MigrationScripts\Version72\sp_LockUpdate_72.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version72\dbo.sp_CompareGroupHardware.StoredProcedure_72.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version72\ChannelSettings_72.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version72\sp_ChannelSettingsUpdate.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version72\dbo.Alter_TestSetupHardware.Table_72.sql" />
<EmbeddedResource Include="MigrationScripts\Version72\dbo.sp_TestSetupHardwareGet.StoredProcedure_72.sql" />
<EmbeddedResource Include="MigrationScripts\Version72\dbo.sp_TestSetupHardwareInsert.StoredProcedure_72.sql" />
<EmbeddedResource Include="MigrationScripts\Version72\dbo.sp_TestSetupHardwareUpdate.StoredProcedure_72.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version72\dbo.Alter_TestSetups_Table_72.sql" />
<EmbeddedResource Include="MigrationScripts\Version72\dbo.Insert_DefaultProperties_CalibrationBehavior_72.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version72\dbo.Alter_sp_TestSetupsGet.sql" />
<EmbeddedResource Include="MigrationScripts\Version72\dbo.Alter_sp_TestSetupsInsert.sql" />
<EmbeddedResource Include="MigrationScripts\Version72\dbo.Alter_sp_TestSetupsInsertUpdate.sql" />
<EmbeddedResource Include="MigrationScripts\Version72\dbo.Alter_sp_TestSetupsUpdate.sql" />
<EmbeddedResource Include="MigrationScripts\Version72\dbo.Alter_sp_TestSetupsUpdateInsert.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version71\sp_SensorCalibrationsDelete.StoredProcedure_71.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version72\dbo.Alter_sp_LabratoryDetailsDelete_72.sql" />
<EmbeddedResource Include="MigrationScripts\Version72\dbo.Alter_sp_TestEngineerDetailsDelete_72.sql" />
<EmbeddedResource Include="MigrationScripts\Version72\dbo.Alter_sp_TestSetupsUpdate_72.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version72\dbo.Alter_sp_CustomerDetailsDelete_72.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version72\DASChannels_72.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version72\dbo.Alter_sp_GroupsDelete_72.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version72\dbo.Alter_foo_GetIdenticalChannelCount_72.sql" />
<EmbeddedResource Include="MigrationScripts\Version72\dbo.Alter_sp_CompareGroups_72.sql" />
<EmbeddedResource Include="MigrationScripts\Version72\dbo.Alter_sp_GroupsGet_72.sql" />
<EmbeddedResource Include="MigrationScripts\Version72\dbo.Alter_sp_GroupsInsert_72.sql" />
<EmbeddedResource Include="MigrationScripts\Version72\dbo.Alter_sp_GroupsUpdateInsert_72.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version72\Alter_tbl_Groups_StaticGroupId_72.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version72\INDEX_CHANNELCODES1_72.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version72\dbo.Alter_sp_GroupsUpdate_72.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version72\dbo.Alter_sp_GroupChannelSettingsDelete_72.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version72\INDEX_CHANNELCODES2_72.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version72\INDEX_CHANNELCODES3_72.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version72\INDEX_CHANNELS1_72.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version72\INDEX_CHANNELS2_72.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version72\INDEX_CHANNELS3_72.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version72\INDEX_SENSORCALIBRATIONS1_72.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version72\INDEX_SENSORSANALOG1_72.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version72\INDEX_TESTSETUP1_72.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version72\dbo.Alter_foo_GetIdenticalGroupChannelSettingsCount_72.sql" />
<EmbeddedResource Include="MigrationScripts\Version72\dbo.Alter_foo_GetTotalChannelCount_72.sql" />
<EmbeddedResource Include="MigrationScripts\Version72\dbo.Alter_foo_GetTotalGroupChannelSettingsCount_72.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version72\dbo.Alter_sp_ChannelsDelete_72.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version72\dbo.Alter_sp_DBImportSensorsAnalog_72.sql" />
<EmbeddedResource Include="MigrationScripts\Version72\dbo.Alter_sp_DBImportSensorsAnalog_Pre20_72.sql" />
<EmbeddedResource Include="MigrationScripts\Version72\dbo.Alter_sp_DBImportSensorsDigitalInput_72.sql" />
<EmbeddedResource Include="MigrationScripts\Version72\dbo.Alter_sp_DBImportSensorsDigitalInput_Pre20_72.sql" />
<EmbeddedResource Include="MigrationScripts\Version72\dbo.Alter_sp_DBImportSensorsDigitalOut_72.sql" />
<EmbeddedResource Include="MigrationScripts\Version72\dbo.Alter_sp_DBImportSensorsDigitalOut_Pre20_72.sql" />
<EmbeddedResource Include="MigrationScripts\Version72\dbo.Alter_sp_DBImportSensorsSquib_72.sql" />
<EmbeddedResource Include="MigrationScripts\Version72\dbo.Alter_sp_DBImportSensorsSquib_Pre20_72.sql" />
<EmbeddedResource Include="MigrationScripts\Version72\dbo.Alter_sp_DBImportTestSetups_72.sql" />
<EmbeddedResource Include="MigrationScripts\Version72\dbo.Alter_sp_DBImportTestSetups_Pre20_72.sql" />
<EmbeddedResource Include="MigrationScripts\Version72\dbo.Alter_sp_SensorCalibrationsInsert_72.sql" />
<EmbeddedResource Include="MigrationScripts\Version72\dbo.Alter_sp_SensorCalibrationsInsert_Pre20_72.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version73\dbo.Alter_sp_TestSetupsGet_73.sql" />
<EmbeddedResource Include="MigrationScripts\Version73\dbo.Alter_TestSetups_Table.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version73\dbo.Add_SLICE6AIR_HardwareAndSettings.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version73\dbo.Add_TSDigitalInput.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version73\dbo.Alter_sp_TestSetupsInsertUpdate_73.sql" />
<EmbeddedResource Include="MigrationScripts\Version73\dbo.Alter_sp_TestSetupsInsert_73.sql" />
<EmbeddedResource Include="MigrationScripts\Version73\dbo.Alter_sp_TestSetupsUpdateInsert_73.sql" />
<EmbeddedResource Include="MigrationScripts\Version73\dbo.Alter_sp_TestSetupsUpdate_73.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version73\dbo.Alter_sp_TestSetupGroupsUpdate_73.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version73\dbo.Alter_sp_UsersDelete.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version74\dbo.Alter_CalculatedChannels_Table74.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version74\dbo.Update_CalculatedChannels_74.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version74\dbo.Alter_sp_CalculatedChannelsUpdateInsert_74.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version74\dbo.Alter_sp_CalculatedChannelsUpdate_74.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version74\dbo.Alter_sp_CalculatedChannelsInsert_74.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version74\dbo.Alter_sp_CalculatedChannelsGet_74.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version75\dbo.Alter_sp_SensorsAnalogUpdateInsert_75.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version76\dbo.Alter_SensorsSquib_Table_76.sql" />
<EmbeddedResource Include="MigrationScripts\Version76\dbo.Alter_sp_SensorsSquibGet_76.sql" />
<EmbeddedResource Include="MigrationScripts\Version76\dbo.Alter_sp_SensorsSquibUpdateInsert_76.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version78\dbo.Add_ZeroMethod_ChannelSettings.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version77\dbo.Alter_SensorsSquib_Table_77.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version80\dbo.Migrate_InitialOffset.sql" />
<EmbeddedResource Include="MigrationScripts\Version80\dbo.Migrate_UserValue123.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version79\dbo.Migrate_ZeroMethod_Values.sql" />
<EmbeddedResource Include="MigrationScripts\Version80\dbo.Add_ClockSource_Settings.sql" />
<EmbeddedResource Include="MigrationScripts\Version80\dbo.Add_IDList_Type.sql" />
<EmbeddedResource Include="MigrationScripts\Version80\dbo.Add_PowerPro.sql" />
<EmbeddedResource Include="MigrationScripts\Version80\dbo.Add_PowerPro_Settings.sql" />
<EmbeddedResource Include="MigrationScripts\Version80\dbo.Add_SensorDefaultSettings.sql" />
<EmbeddedResource Include="MigrationScripts\Version80\dbo.Add_sp_GroupsWithSensorsGet.sql" />
<EmbeddedResource Include="MigrationScripts\Version80\dbo.Add_sp_TestSetupsWithSensorsGet.sql" />
<EmbeddedResource Include="MigrationScripts\Version80\dbo.Alter_sp_SensorCalibrationsInsert_78.sql" />
<EmbeddedResource Include="MigrationScripts\Version80\dbo.Alter_sp_TestSetupHardware_Get_78.sql" />
<EmbeddedResource Include="MigrationScripts\Version80\dbo.Alter_sp_TestSetupHardware_Insert_78.sql" />
<EmbeddedResource Include="MigrationScripts\Version80\dbo.Alter_sp_TestSetupHardware_Update_78.sql" />
<EmbeddedResource Include="MigrationScripts\Version80\dbo.Alter_sp_TestSetups_Get_78.sql" />
<EmbeddedResource Include="MigrationScripts\Version80\dbo.Alter_sp_TestSetups_InsertUpdate_78.sql" />
<EmbeddedResource Include="MigrationScripts\Version80\dbo.Alter_sp_TestSetups_Insert_78.sql" />
<EmbeddedResource Include="MigrationScripts\Version80\dbo.Alter_sp_TestSetups_UpdateInsert_78.sql" />
<EmbeddedResource Include="MigrationScripts\Version80\dbo.Alter_sp_TestSetups_Update_78.sql" />
<EmbeddedResource Include="MigrationScripts\Version80\dbo.Alter_TestSetupHardware_Table78.sql" />
<EmbeddedResource Include="MigrationScripts\Version80\dbo.Alter_TestSetups_Table78.sql" />
<EmbeddedResource Include="MigrationScripts\Version80\dbo.Delete_From_TagObjectType_Table.sql" />
<EmbeddedResource Include="MigrationScripts\Version80\dbo.Update_ChannelSettings.sql" />
<EmbeddedResource Include="MigrationScripts\Version80\dbo.Update_SensorCalibrations_78.sql" />
<EmbeddedResource Include="MigrationScripts\Version80\dbo.Update_SensorCalibrations_78_2.sql" />
<EmbeddedResource Include="MigrationScripts\Version80\dbo.Update_TagObjectType_Table.sql" />
<EmbeddedResource Include="MigrationScripts\Version80\dbo.Update_UIItems_78.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version80\dbo.Create_sp_SensorsAnalogZMODbGet.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version80\dbo.Alter_SoftwareFilters_Table.sql" />
<EmbeddedResource Include="MigrationScripts\Version80\dbo.Alter_sp_SoftwareFiltersGet.sql" />
<EmbeddedResource Include="MigrationScripts\Version80\dbo.Alter_sp_SoftwareFiltersInsert.sql" />
<EmbeddedResource Include="MigrationScripts\Version80\dbo.Alter_sp_SoftwareFiltersUpdate.sql" />
<EmbeddedResource Include="MigrationScripts\Version80\dbo.UpdateData_FilterClass.sql" />
<EmbeddedResource Include="MigrationScripts\Version80\dbo.UpdateData_SoftwareFilters.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version80\dbo.Create_SensorChangeType.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version80\dbo.Create_SensorChangeHistory.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version80\dbo.InsertIntoSensorChangeType_78.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version80\dbo.Alter_sp_SensorsDelete_78.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version80\dbo.Alter_sp_SensorsAnalogDelete_78.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version80\dbo.Alter_sp_SensorsDeleteAll_78.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version80\dbo.Alter_sp_SensorsDigitalInDelete_78.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version80\dbo.Alter_sp_SensorsDigitalOutDelete_78.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version80\dbo.Alter_sp_SensorsSquibDelete_78.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version80\dbo.Create_sp_SensorsChangeHistoryGet.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version80\dbo.Create_sp_SensorsChangeHistoryInsert.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version80\dbo.Create_sp_SensorsChangeHistoryDelete.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version80\dbo.Create_sp_SensorChangeTypesGet.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version80\dbo.DeleteData_ChannelSettings.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version81\dbo.Create_sp_GroupAndTestGet81.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version83\dbo.Alter_TestSetupHardware_Table81.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version83\dbo.Alter_DAS_Table81.sql" />
<EmbeddedResource Include="MigrationScripts\Version83\dbo.Alter_Groups_Table81.sql" />
<EmbeddedResource Include="MigrationScripts\Version83\dbo.Alter_SensorsAnalog_Table81.sql" />
<EmbeddedResource Include="MigrationScripts\Version83\dbo.Alter_sp_DASGet81.sql" />
<EmbeddedResource Include="MigrationScripts\Version83\dbo.Alter_sp_DASInsert81.sql" />
<EmbeddedResource Include="MigrationScripts\Version83\dbo.Alter_sp_DASUpdate81.sql" />
<EmbeddedResource Include="MigrationScripts\Version83\dbo.Alter_sp_DASUpdateInsert81.sql" />
<EmbeddedResource Include="MigrationScripts\Version83\dbo.Alter_sp_GroupsGet81.sql" />
<EmbeddedResource Include="MigrationScripts\Version83\dbo.Alter_sp_GroupsInsert81.sql" />
<EmbeddedResource Include="MigrationScripts\Version83\dbo.Alter_sp_GroupsUpdate81.sql" />
<EmbeddedResource Include="MigrationScripts\Version83\dbo.Alter_sp_GroupsUpdateInsert.sql" />
<EmbeddedResource Include="MigrationScripts\Version83\dbo.Alter_sp_GroupsUpdateInsert81.sql" />
<EmbeddedResource Include="MigrationScripts\Version83\dbo.Alter_sp_SensorCalibrationsGet81.sql" />
<EmbeddedResource Include="MigrationScripts\Version83\dbo.Alter_sp_SensorCalibrationsInsert81.sql" />
<EmbeddedResource Include="MigrationScripts\Version83\dbo.Alter_sp_SensorsAnalogGet81.sql" />
<EmbeddedResource Include="MigrationScripts\Version83\dbo.Alter_sp_SensorsAnalogInsert81.sql" />
<EmbeddedResource Include="MigrationScripts\Version83\dbo.Alter_sp_SensorsAnalogInsertUpdate81.sql" />
<EmbeddedResource Include="MigrationScripts\Version83\dbo.Alter_sp_SensorsAnalogUpdate81.sql" />
<EmbeddedResource Include="MigrationScripts\Version83\dbo.Alter_sp_TestSetupsDelete81.sql" />
<EmbeddedResource Include="MigrationScripts\Version83\dbo.Alter_sp_TestSetupsGet81.sql" />
<EmbeddedResource Include="MigrationScripts\Version83\dbo.Alter_sp_TestSetupsInsert81.sql" />
<EmbeddedResource Include="MigrationScripts\Version83\dbo.Alter_sp_TestSetupsInsertUpdate81.sql" />
<EmbeddedResource Include="MigrationScripts\Version83\dbo.Alter_sp_TestSetupsUpdate81.sql" />
<EmbeddedResource Include="MigrationScripts\Version83\dbo.Alter_sp_TestSetupsUpdateInsert.sql" />
<EmbeddedResource Include="MigrationScripts\Version83\dbo.Alter_sp_TestSetupsUpdateInsert81.sql" />
<EmbeddedResource Include="MigrationScripts\Version83\dbo.Alter_TestSetups_Table81.sql" />
<EmbeddedResource Include="MigrationScripts\Version83\dbo.Create_sp_DASFirstUseSet.sql" />
<EmbeddedResource Include="MigrationScripts\Version83\dbo.Create_sp_SensorsAnalogFirstUseSet.sql" />
<EmbeddedResource Include="MigrationScripts\Version83\dbo.Create_sp_SensorsAnalogUpdateCalibrationId.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version83\dbo.Alter_sp_TestSetupHardwareGet81.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version83\dbo.Alter_sp_TestSetupHardwareInsert81.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version83\dbo.Alter_sp_TestSetupHardwareUpdate81.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version83\dbo.Create_sp_TestSetupsDeleteManyByDate.sql" />
<EmbeddedResource Include="MigrationScripts\Version83\dbo.Create_sp_TestSetupsDeleteManyById.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version83\dbo.Create_sp_TestSetupsDeleteManyByName.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version83\dbo.Alter_sp_DASChannelsGet.sql" />
<EmbeddedResource Include="MigrationScripts\Version83\dbo.Alter_sp_TestSetupGroupsGet.sql" />
<EmbeddedResource Include="MigrationScripts\Version83\dbo.Alter_sp_TestSetupHardwareGet.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version82\dbo.Alter_sp_GroupAndTestGet82.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version84\dbo.Alter_sp_DASInsert_85.sql" />
<EmbeddedResource Include="MigrationScripts\Version84\dbo.Alter_sp_TestSetupsDeleteManyByName_85.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version84\dbo.Alter_sp_TestSetupsDeleteManyById_85.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version85\dbo.Update_PowerPro_Settings.sql" />
<EmbeddedResource Include="MigrationScripts\Version87\dbo.Add_DIR.sql" />
<EmbeddedResource Include="MigrationScripts\Version87\dbo.Add_DKR.sql" />
<EmbeddedResource Include="MigrationScripts\Version87\dbo.Add_SPM.sql" />
<EmbeddedResource Include="MigrationScripts\Version87\dbo.AlterTestSetupsTSRAir.sql" />
<EmbeddedResource Include="MigrationScripts\Version87\dbo.Alter_sp_TestSetupsDelete86.sql" />
<EmbeddedResource Include="MigrationScripts\Version87\dbo.Alter_tbl_TestSetups_TestSetupUniqueId.sql" />
<EmbeddedResource Include="MigrationScripts\Version87\dbo.Alter_TestSetups_Table86.sql" />
<EmbeddedResource Include="MigrationScripts\Version87\dbo.Update_Settings_Table84.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version87\dbo.Add_MeasureSquibResistances_TSD.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version87\dbo.Add_TSA_Embedded_Sensor.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version87\dbo.Add_TSRAIR_DefaultProperties.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version86\dbo.Add_S6DB3.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version87\dbo.Add_SensorTestHistory.sql" />
<EmbeddedResource Include="MigrationScripts\Version87\dbo.Add_TestHistory.sql" />
<EmbeddedResource Include="MigrationScripts\Version87\dbo.SensorTestHistoryDelete.sql" />
<EmbeddedResource Include="MigrationScripts\Version87\dbo.SensorTestHistoryGet.sql" />
<EmbeddedResource Include="MigrationScripts\Version87\dbo.SensorTestHistoryUpdateInsert.sql" />
<EmbeddedResource Include="MigrationScripts\Version87\dbo.TestHistoryDelete.sql" />
<EmbeddedResource Include="MigrationScripts\Version87\dbo.TestHistoryGet.sql" />
<EmbeddedResource Include="MigrationScripts\Version87\dbo.TestHistoryUpdateInsert.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version87\dbo.Add_TSR_Air.sql" />
<EmbeddedResource Include="MigrationScripts\Version87\dbo.Add_TSR_Air_RevB.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version87\dbo.Add_TSC_Embedded_Clock.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version87\dbo.Add_AllowStreaming_DefaultProperty.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version87\dbo.Add_sp_DefaultPropertiesUpdateByName.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version87\dbo.Add_S6DB.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version87\dbo.Alter_sp_DASDelete87.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version87\dbo.Alter_spTestSetupsGet87.sql" />
<EmbeddedResource Include="MigrationScripts\Version87\dbo.Alter_spTestSetupsInsert87.sql" />
<EmbeddedResource Include="MigrationScripts\Version87\dbo.Alter_spTestSetupsUpdate87.sql" />
<EmbeddedResource Include="MigrationScripts\Version87\dbo.Alter_spTestSetupsUpdateInsert87.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version87\dbo.AlterTestSetupsWakeup.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version88\dbo.Add_TSRAIR_Settings.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version88\dbo.Add_DIRDKR_Settings.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version87\dbo.Alter_spSensorsAnalogBridgeRes87.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version88\dbo.Modify_foo_GetIdenticalChannelCount.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version90\dbo.Add_S6A_Prototype_UART_Channel.sql" />
<EmbeddedResource Include="MigrationScripts\Version90\dbo.Add_UART_ChannelSettings.sql" />
<EmbeddedResource Include="MigrationScripts\Version90\dbo.Add_UART_SensorType.sql" />
<EmbeddedResource Include="MigrationScripts\Version90\dbo.Create_sp_SensorsUARTUpdateInsert_90.sql" />
<EmbeddedResource Include="MigrationScripts\Version90\dbo.Create_sp_SensorsUARTUpdate_90.sql" />
<EmbeddedResource Include="MigrationScripts\Version90\dbo.Create_sp_SensorsUARTInsert_90.sql" />
<EmbeddedResource Include="MigrationScripts\Version90\dbo.Create_sp_SensorsUARTDelete_90.sql" />
<EmbeddedResource Include="MigrationScripts\Version90\dbo.Create_sp_SensorsUARTGet_90.sql" />
<EmbeddedResource Include="MigrationScripts\Version90\dbo.Create_Table_UART_Sensors_90.sql" />
<EmbeddedResource Include="MigrationScripts\Version90\dbo.Update_DAS_S6AplusUARTandStreamOutput.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version89\dbo.Add_MaxAAFRate.sql" />
<EmbeddedResource Include="MigrationScripts\Version89\dbo.sp_DASGet_MaxAAFRate.sql" />
<EmbeddedResource Include="MigrationScripts\Version89\dbo.sp_DASInsert_MaxAAFRate.sql" />
<EmbeddedResource Include="MigrationScripts\Version89\dbo.sp_DASUpdateInsert_MaxAAFRate.sql" />
<EmbeddedResource Include="MigrationScripts\Version89\dbo.sp_DASUpdate_MaxAAFRate.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version89\dbo.Add_OBRDDR_89.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version87\dbo.DeleteTDASRackModules.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version90\dbo.Add_S6A_Prototype_StreamOutput_Channel.sql" />
<EmbeddedResource Include="MigrationScripts\Version90\dbo.Add_StreamOutput_ChannelSettings.sql" />
<EmbeddedResource Include="MigrationScripts\Version90\dbo.Add_StreamOutput_SensorType.sql" />
<EmbeddedResource Include="MigrationScripts\Version90\dbo.Create_sp_SensorsStreamOutputDelete_90.sql" />
<EmbeddedResource Include="MigrationScripts\Version90\dbo.Create_sp_SensorsStreamOutputGet_90.sql" />
<EmbeddedResource Include="MigrationScripts\Version90\dbo.Create_sp_SensorsStreamOutputInsert_90.sql" />
<EmbeddedResource Include="MigrationScripts\Version90\dbo.Create_sp_SensorsStreamOutputUpdateInsert_90.sql" />
<EmbeddedResource Include="MigrationScripts\Version90\dbo.Create_sp_SensorsStreamOutputUpdate_90.sql" />
<EmbeddedResource Include="MigrationScripts\Version90\dbo.Create_Table_StreamOutput_Sensors_90.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version90\dbo.Add_UART_TestSpecificSensor.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version90\dbo.Add_StreamOutput_TestSpecificSensor.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version90\dbo.Alter_sp_SensorsDeleteAll_90.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version90\dbo.Alter_SensorsAnalog_90.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version90\dbo.Alter_sp_SensorsAnalogGet_90.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version90\dbo.Alter_sp_SensorsAnalogInsert_90.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version90\dbo.Alter_sp_SensorsAnalogUpdate_90.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version90\dbo.Alter_sp_SensorsAnalogUpdateInsert_90.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version89\dbo.sp_TestSetupsGet.sql" />
<EmbeddedResource Include="MigrationScripts\Version89\dbo.sp_TestSetupsInsert.sql" />
<EmbeddedResource Include="MigrationScripts\Version89\dbo.sp_TestSetupsInsertUpdate.sql" />
<EmbeddedResource Include="MigrationScripts\Version89\dbo.sp_TestSetupsUpdate.sql" />
<EmbeddedResource Include="MigrationScripts\Version89\dbo.sp_TestSetupsUpdateInsert.sql" />
<EmbeddedResource Include="MigrationScripts\Version89\dbo.sp_TestSetups_DeleteLevelTriggers.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version90\dbo.Alter_sp_TagsDelete_90.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version89\dbo.Alter_sp_TestSetupsGet_TSRAIR.sql" />
<EmbeddedResource Include="MigrationScripts\Version89\dbo.Alter_sp_TestSetupsInsert_TSRAIR.sql" />
<EmbeddedResource Include="MigrationScripts\Version89\dbo.Alter_sp_TestSetupsUpdateInsert_TSRAIR.sql" />
<EmbeddedResource Include="MigrationScripts\Version89\dbo.Alter_sp_TestSetupsUpdate_TSRAIR.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version89\Alter_TestSetups_TSRAIR_40.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version90\dbo.Alter_sp_DASUpdateInsert_90.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version90\dbo.Alter_sp_DASInsert_90.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version89\Update_TSRAIR_PowerSettings.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version90\dbo.Alter_sp_ChannelsDelete_90.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version90\dbo.Add_SLICE_PRO_Distributor_Prototype.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version90\dbo.Add_SLICE_PRO_Distributor_PowerSettings.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version90\dbo.Add_TSRAIR_Prototype_StreamOutput_Channel.sql" />
<EmbeddedResource Include="MigrationScripts\Version90\dbo.Update_DAS_TSRAIRplusStreamOutput.sql" />
<EmbeddedResource Include="MigrationScripts\Version90\dbo.LTS_Create_sp_StoredProcedureVersionsGet.sql" />
<EmbeddedResource Include="MigrationScripts\Version90\dbo.LTS_Create_Table_StoredProcedureVersions.sql" />
<EmbeddedResource Include="MigrationScripts\Version90\dbo.Update_DAS_S6AERplusStreamInput.sql" />
<EmbeddedResource Include="MigrationScripts\Version90\dbo.Add_S6A_ER_Prototype_StreamInput_Channel.sql" />
<EmbeddedResource Include="MigrationScripts\Version90\dbo.Create_Table_StreamInput_Sensors_90.sql" />
<EmbeddedResource Include="MigrationScripts\Version90\dbo.Create_sp_SensorsStreamInputDelete_90.sql" />
<EmbeddedResource Include="MigrationScripts\Version90\dbo.Create_sp_SensorsStreamInputGet_90.sql" />
<EmbeddedResource Include="MigrationScripts\Version90\dbo.Create_sp_SensorsStreamInputInsert_90.sql" />
<EmbeddedResource Include="MigrationScripts\Version90\dbo.Create_sp_SensorsStreamInputUpdate_90.sql" />
<EmbeddedResource Include="MigrationScripts\Version90\dbo.Create_sp_SensorsStreamInputUpdateInsert_90.sql" />
<EmbeddedResource Include="MigrationScripts\Version90\dbo.Add_StreamInput_SensorType.sql" />
<EmbeddedResource Include="MigrationScripts\Version90\dbo.Add_StreamInput_ChannelSettings.sql" />
<EmbeddedResource Include="MigrationScripts\Version90\dbo.Add_StreamInput_TestSpecificSensor.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version90\dbo.Alter_foo_GetIdenticalChannelCount.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version90\dbo.Update_DefaultUDPStreamProfile.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version90\dbo.Update_Table_Settings_90.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version90\dbo.Add_Falcon_PowerSettings.sql" />
<EmbeddedResource Include="MigrationScripts\Version90\dbo.Add_Falcon_Prototype.sql" />
<EmbeddedResource Include="MigrationScripts\Version90\dbo.Add_Falcon_Prototype_DAS_Channels.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version91\Add_sp_TestSetupsGet_92.sql" />
<EmbeddedResource Include="MigrationScripts\Version91\Add_sp_TestSetupsInsertUpdate_92.sql" />
<EmbeddedResource Include="MigrationScripts\Version91\Add_sp_TestSetupsInsert_92.sql" />
<EmbeddedResource Include="MigrationScripts\Version91\Add_sp_TestSetupsUpdateInsert_92.sql" />
<EmbeddedResource Include="MigrationScripts\Version91\Add_sp_TestSetupsUpdate_92.sql" />
<EmbeddedResource Include="MigrationScripts\Version91\Alter_sp_TestSetupsGet_1PPSOut.sql" />
<EmbeddedResource Include="MigrationScripts\Version91\Alter_sp_TestSetupsInsert_1PPSOut.sql" />
<EmbeddedResource Include="MigrationScripts\Version91\Alter_sp_TestSetupsUpdate_1PPSOut.sql" />
<EmbeddedResource Include="MigrationScripts\Version91\dbo.Update_DAS_TSRAIR_MinMaxSampleRate.sql" />
<EmbeddedResource Include="MigrationScripts\Version91\Insert_StoredProcedureVersions_TestSetups_92.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version91\dbo.Add_S6A_StreamOutput_Channel.sql" />
<EmbeddedResource Include="MigrationScripts\Version91\dbo.Add_S6A_UART_Channel.sql" />
<EmbeddedResource Include="MigrationScripts\Version91\dbo.Update_DAS_S6A_ChannelTypes.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version91\EnableRepeat\Alter_sp_TestSetupsGet_92_EnableRepeat.sql" />
<EmbeddedResource Include="MigrationScripts\Version91\EnableRepeat\Alter_sp_TestSetupsInsertUpdate_92_EnableRepeat.sql" />
<EmbeddedResource Include="MigrationScripts\Version91\EnableRepeat\Alter_sp_TestSetupsInsert_92_EnableRepeat.sql" />
<EmbeddedResource Include="MigrationScripts\Version91\EnableRepeat\Alter_sp_TestSetupsUpdateInsert_92_EnableRepeat.sql" />
<EmbeddedResource Include="MigrationScripts\Version91\EnableRepeat\Alter_sp_TestSetupsUpdate_92_EnableRepeat.sql" />
<EmbeddedResource Include="MigrationScripts\Version91\EnableRepeat\Alter_TestSetups_Add_RepeatAutoArmOrStreaming.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version91\ROIStringToTables\Add_dbo.foo_RegionsOfInterestString.sql" />
<EmbeddedResource Include="MigrationScripts\Version91\ROIStringToTables\Add_dbo.foo_ROIStringToValueString.sql" />
<EmbeddedResource Include="MigrationScripts\Version91\ROIStringToTables\Add_dbo.sp_StringToRegionsOfInterestTables.sql" />
<EmbeddedResource Include="MigrationScripts\Version91\ROIStringToTables\Add_sp_ROIPeriodChannelsGet.sql" />
<EmbeddedResource Include="MigrationScripts\Version91\ROIStringToTables\Add_sp_ROIPeriodChannelsInsert.sql" />
<EmbeddedResource Include="MigrationScripts\Version91\ROIStringToTables\Add_sp_TestSetupROIsDelete.sql" />
<EmbeddedResource Include="MigrationScripts\Version91\ROIStringToTables\Add_sp_TestSetupROIsGet.sql" />
<EmbeddedResource Include="MigrationScripts\Version91\ROIStringToTables\Add_sp_TestSetupROIsInsert.sql" />
<EmbeddedResource Include="MigrationScripts\Version91\ROIStringToTables\Alter_sp_TestSetupsAndGroupsDeleteAll_92.sql" />
<EmbeddedResource Include="MigrationScripts\Version91\ROIStringToTables\Alter_sp_TestSetupsDeleteManyByDate_92.sql" />
<EmbeddedResource Include="MigrationScripts\Version91\ROIStringToTables\Alter_sp_TestSetupsDeleteManyById_92.sql" />
<EmbeddedResource Include="MigrationScripts\Version91\ROIStringToTables\Alter_sp_TestSetupsDeleteManyByName_92.sql" />
<EmbeddedResource Include="MigrationScripts\Version91\ROIStringToTables\Alter_sp_TestSetupsDelete_92.sql" />
<EmbeddedResource Include="MigrationScripts\Version91\ROIStringToTables\Alter_sp_TestSetupsGet_92_ROI.sql" />
<EmbeddedResource Include="MigrationScripts\Version91\ROIStringToTables\Alter_sp_TestSetupsInsertUpdate_92_ROI.sql" />
<EmbeddedResource Include="MigrationScripts\Version91\ROIStringToTables\Alter_sp_TestSetupsInsert_92_ROI.sql" />
<EmbeddedResource Include="MigrationScripts\Version91\ROIStringToTables\Alter_sp_TestSetupsUpdateInsert_92_ROI.sql" />
<EmbeddedResource Include="MigrationScripts\Version91\ROIStringToTables\Alter_sp_TestSetupsUpdate_92_ROI.sql" />
<EmbeddedResource Include="MigrationScripts\Version91\ROIStringToTables\Alter_TestSetups_RemoveRegionsOfInterest.sql" />
<EmbeddedResource Include="MigrationScripts\Version91\ROIStringToTables\ROIPeriodChannels.sql" />
<EmbeddedResource Include="MigrationScripts\Version91\ROIStringToTables\TestSetupROIs.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version91\IgnoreShorted\Alter_sp_TestSetupsGet_92_IgnoreShorted.sql" />
<EmbeddedResource Include="MigrationScripts\Version91\IgnoreShorted\Alter_sp_TestSetupsInsertUpdate_92_IgnoreShorted.sql" />
<EmbeddedResource Include="MigrationScripts\Version91\IgnoreShorted\Alter_sp_TestSetupsInsert_92_IgnoreShorted.sql" />
<EmbeddedResource Include="MigrationScripts\Version91\IgnoreShorted\Alter_sp_TestSetupsUpdateInsert_92_IgnoreShorted.sql" />
<EmbeddedResource Include="MigrationScripts\Version91\IgnoreShorted\Alter_sp_TestSetupsUpdate_92_IgnoreShorted.sql" />
<EmbeddedResource Include="MigrationScripts\Version91\IgnoreShorted\Alter_TestSetups_Add_IgnoreShortedStartAndTrigger.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version91\ROIStringToTables\Alter_sp_TestSetupsGet_ROI.sql" />
<EmbeddedResource Include="MigrationScripts\Version91\ROIStringToTables\Alter_sp_TestSetupsInsert_ROI.sql" />
<EmbeddedResource Include="MigrationScripts\Version91\ROIStringToTables\Alter_sp_TestSetupsUpdate_ROI.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version91\IgnoreShorted\Add_sp_DefaultPropertiesInsert.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version91\ACCoupling\Add_sp_ChannelSettingsGet_92.sql" />
<EmbeddedResource Include="MigrationScripts\Version91\ACCoupling\Alter_sp_ChannelSettingsGet_92.sql" />
<EmbeddedResource Include="MigrationScripts\Version91\ACCoupling\Insert_ChannelSetting_ACCoupling_92.sql" />
<EmbeddedResource Include="MigrationScripts\Version91\ACCoupling\Update_StoredProcedureVersions_ACCoupling_92.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version92\SensorStreamOutput\Add_sp_SensorsStreamOutputGet_93.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version92\SensorStreamOutput\Add_sp_SensorsStreamOutputInsert_93.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version92\SensorStreamOutput\Add_sp_SensorsStreamOutputUpdate_93.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version92\SensorStreamOutput\Add_sp_SensorsStreamOutputUpdateInsert_93.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version92\ChannelSettings\Add_sp_ChannelSettingsGet_93_93.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version92\ChannelSettings\Alter_sp_ChannelSettingsGet_92_93.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version92\ChannelSettings\Alter_sp_ChannelSettingsGet_93.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version92\ChannelSettings\Insert_ChannelSettings_93.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version92\SensorStreamOutput\Alter_sp_SensorsStreamOutput_93.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version92\Update_StoredProcecures_93.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version92\SensorStreamOutput\Alter_sp_SensorsStreamOutputGet.sql" />
<EmbeddedResource Include="MigrationScripts\Version92\SensorStreamOutput\Alter_sp_SensorsStreamOutputInsert.sql" />
<EmbeddedResource Include="MigrationScripts\Version92\SensorStreamOutput\Alter_sp_SensorsStreamOutputUpdate.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version92\GroupChannelSettings\Add_sp_GroupChannelSettingsGet_93.sql" />
<EmbeddedResource Include="MigrationScripts\Version92\GroupChannelSettings\Add_sp_GroupChannelSettingsInsert_93.sql" />
<EmbeddedResource Include="MigrationScripts\Version92\GroupChannelSettings\Add_sp_GroupChannelSettingsUpdate_93.sql" />
<EmbeddedResource Include="MigrationScripts\Version92\GroupChannelSettings\Alter_sp_GroupChannelSettingsGet.sql" />
<EmbeddedResource Include="MigrationScripts\Version92\GroupChannelSettings\Alter_sp_GroupChannelSettingsInsert.sql" />
<EmbeddedResource Include="MigrationScripts\Version92\GroupChannelSettings\Alter_sp_GroupChannelSettingsUpdate.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version92\GroupChannelSettings\Add_sp_GroupChannelSettingsUpdateInsert_93.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version93\Update_TSRAIR_PowerSettings_94.sql" />
<EmbeddedResource Include="MigrationScripts\Version94\S6Falcon\Add_sp_DASGet_95_95.sql" />
<EmbeddedResource Include="MigrationScripts\Version94\S6Falcon\Add_sp_TestSetupHardwareGet_95_95.sql" />
<EmbeddedResource Include="MigrationScripts\Version94\S6Falcon\Alter_sp_DASGet_95.sql" />
<EmbeddedResource Include="MigrationScripts\Version94\S6Falcon\Alter_sp_TestSetupHardwareGet_95.sql" />
<EmbeddedResource Include="MigrationScripts\Version94\S6Falcon\Delete_DASChannels_S6Falcon_95.sql" />
<EmbeddedResource Include="MigrationScripts\Version94\S6Falcon\Update_DASChannels_S6Falcon_95.sql" />
<EmbeddedResource Include="MigrationScripts\Version94\S6Falcon\Update_DAS_S6Falcon_95.sql" />
<EmbeddedResource Include="MigrationScripts\Version94\Update_StoredProcedures_95.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version94\TSRAIR_UART\Add_DASChannels_TSRAIR_Prototype_UART_95.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version94\TSRAIR_UART\Update_DASChannels_TSRAIR_Prototype_95.sql" />
<EmbeddedResource Include="MigrationScripts\Version94\TSRAIR_UART\Update_DAS_TSRAIR_Prototype_UART_95.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version93\Update_TSRAIR_WakeUpMotionTimeout_94.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version90\dbo.Alter_Settings_90_Add_ID.sql" />
<EmbeddedResource Include="MigrationScripts\Version90\dbo.Alter_Settings_90_Set_ID_PrimaryKey.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version90\dbo.Alter_LastUsedHardware_90_Add_ID.sql" />
<EmbeddedResource Include="MigrationScripts\Version90\dbo.Alter_LastUsedHardware_90_Set_ID_PrimaryKey.sql" />
<EmbeddedResource Include="MigrationScripts\Version90\dbo.Alter_UIItemSettings_90_Add_ID.sql" />
<EmbeddedResource Include="MigrationScripts\Version90\dbo.Alter_UIItemSettings_90_Set_ID_PrimaryKey.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version93\ConditionalAddIDColumns\dbo.Conditionally_Alter_LastUsedHardware_90_Add_ID.sql" />
<EmbeddedResource Include="MigrationScripts\Version93\ConditionalAddIDColumns\dbo.Conditionally_Alter_LastUsedHardware_90_Set_ID_PrimaryKey.sql" />
<EmbeddedResource Include="MigrationScripts\Version93\ConditionalAddIDColumns\dbo.Conditionally_Alter_Settings_90_Add_ID.sql" />
<EmbeddedResource Include="MigrationScripts\Version93\ConditionalAddIDColumns\dbo.Conditionally_Alter_Settings_90_Set_ID_PrimaryKey.sql" />
<EmbeddedResource Include="MigrationScripts\Version93\ConditionalAddIDColumns\dbo.Conditionally_Alter_UIItemSettings_90_Add_ID.sql" />
<EmbeddedResource Include="MigrationScripts\Version93\ConditionalAddIDColumns\dbo.Conditionally_Alter_UIItemSettings_90_Set_ID_PrimaryKey.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version94\PTP_Domain_ID\Alter_tbl_TestSetupsHardware_Add_PTPDomainID_95.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version94\PTP_Domain_ID\Add_sp_TestSetupHardwareInsert_95_95.sql" />
<EmbeddedResource Include="MigrationScripts\Version94\PTP_Domain_ID\Add_sp_TestSetupHardwareUpdate_95_95.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version94\ChannelSettings\Alter_sp_ChannelSettingsGet_92_95.sql" />
<EmbeddedResource Include="MigrationScripts\Version94\ChannelSettings\Alter_sp_ChannelSettingsGet_93_95.sql" />
<EmbeddedResource Include="MigrationScripts\Version94\ChannelSettings\Alter_sp_ChannelSettingsGet_95.sql" />
<EmbeddedResource Include="MigrationScripts\Version94\ChannelSettings\Create_sp_ChannelSettingsGet_93_95.sql" />
<EmbeddedResource Include="MigrationScripts\Version94\GroupChannelSettings\Alter_sp_GroupChannelSettingsGet_93_95.sql" />
<EmbeddedResource Include="MigrationScripts\Version94\GroupChannelSettings\Alter_sp_GroupChannelSettingsGet_95_BridgeType.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version94\GroupChannelSettings\Add_StringList_Type_95.sql" />
<EmbeddedResource Include="MigrationScripts\Version94\GroupChannelSettings\Alter_sp_GroupChannelSettingsGet_95.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version94\ChannelSettings\Insert_BridgeType_ChannelSetting_95.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version95\TSRAIRUserDefaults\dbo.UserProperties_DownloadAll.sql" />
<EmbeddedResource Include="MigrationScripts\Version95\TSRAIRUserDefaults\dbo.UserProperties_Export.sql" />
<EmbeddedResource Include="MigrationScripts\Version95\TSRAIRUserDefaults\dbo.UserProperties_ExportCSVUnfiltered.sql" />
<EmbeddedResource Include="MigrationScripts\Version95\TSRAIRUserDefaults\dbo.UserProperties_ViewAll.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version95\Multiple_event_UART\Alter_sp_TestSetupsGet_92_96.sql" />
<EmbeddedResource Include="MigrationScripts\Version95\Multiple_event_UART\Alter_sp_TestSetupsGet_96.sql" />
<EmbeddedResource Include="MigrationScripts\Version95\Multiple_event_UART\Alter_sp_TestSetupsInsert_92_96.sql" />
<EmbeddedResource Include="MigrationScripts\Version95\Multiple_event_UART\Alter_sp_TestSetupsInsert_96.sql" />
<EmbeddedResource Include="MigrationScripts\Version95\Multiple_event_UART\Alter_sp_TestSetupsUpdate_92_96.sql" />
<EmbeddedResource Include="MigrationScripts\Version95\Multiple_event_UART\Alter_sp_TestSetupsUpdate_96.sql" />
<EmbeddedResource Include="MigrationScripts\Version95\Multiple_event_UART\Create_sp_TestSetupsGet_96_96.sql" />
<EmbeddedResource Include="MigrationScripts\Version95\Multiple_event_UART\Create_sp_TestSetupsInsertUpdate_96_96.sql" />
<EmbeddedResource Include="MigrationScripts\Version95\Multiple_event_UART\Create_sp_TestSetupsUpdateInsert_96_96.sql" />
<EmbeddedResource Include="MigrationScripts\Version95\Multiple_event_UART\Create_sp_TestSetupsUpdate_96_96.sql" />
<EmbeddedResource Include="MigrationScripts\Version95\Multiple_event_UART\Create_sp_TestSetupsInsert_96_96.sql" />
<EmbeddedResource Include="MigrationScripts\Version95\Update_StoredProcedures_96.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version94\ImportCreateDynamicGroups\Alter_sp_SettingsUpdateInsert_ImportCreateDynamicGroups.sql" />
<EmbeddedResource Include="MigrationScripts\Version95\ImportCreateDynamicGroups\Alter_sp_SettingsUpdateInsert_ImportCreateDynamicGroups.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version93\ImportCreateDynamicGroups\Alter_sp_SettingsUpdateInsert_ImportCreateDynamicGroups.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version92\ImportCreateDynamicGroups\Alter_sp_SettingsUpdateInsert_ImportCreateDynamicGroups.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version94\Set_DefaultUseAdvancedUDPStreamProfilesToTrue.sql" />
<EmbeddedResource Include="MigrationScripts\Version95\Set_DefaultUseAdvancedUDPStreamProfilesToTrue.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version95\Update_S6A_BR_Power\Update_S6A-BR_Power_Settings.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version96\Update_StoredProcedures_97.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version96\Alter_sp_TestSetupsGet96_97.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version96\Create_sp_TestSetupsGet97_97.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version96\Alter_sp_TestSetupsGet_97.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version96\Alter_sp_TestSetupsGet92_97.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version98\CreateDiagnosticRuns_98.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version98\CreateAnalogDiagnostics_98.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version98\Create_spAnalogDiagUpdateInsert.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version98\Create_spDiagRunUpdateInsert.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version98\Create_spDiagnosticRunsGet.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version98\Create_spAnalogDiagGet.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version98\ROIPeriodChannels\Add_sp_ChannelsDelete_98.sql" />
<EmbeddedResource Include="MigrationScripts\Version98\ROIPeriodChannels\Add_sp_ROIPeriodChannelsGet_98.sql" />
<EmbeddedResource Include="MigrationScripts\Version98\ROIPeriodChannels\Add_sp_ROIPeriodChannelsInsert_98.sql" />
<EmbeddedResource Include="MigrationScripts\Version98\ROIPeriodChannels\Conditionally_Alter_ROIPeriodChannels_Add_ChannelId_98.sql" />
<EmbeddedResource Include="MigrationScripts\Version98\ROIPeriodChannels\Conditionally_Alter_ROIPeriodChannels_Add_Constraint_98.sql" />
<EmbeddedResource Include="MigrationScripts\Version98\ROIPeriodChannels\Conditionally_Alter_ROIPeriodChannels_Check_Constraint_98.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version98\SensorAssembliesAndCalibration\Alter_SensorsAnalog_98.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version98\SensorAssembliesAndCalibration\Alter_sp_SensorsAnalogGet_98.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version98\SensorAssembliesAndCalibration\Create_sp_SensorsAnalogAssemblyUsageCountUpdate_98.sql" />
<EmbeddedResource Include="MigrationScripts\Version98\SensorAssembliesAndCalibration\Create_sp_SensorsAnalogInsert_98.sql" />
<EmbeddedResource Include="MigrationScripts\Version98\SensorAssembliesAndCalibration\Create_sp_SensorsAnalogUpdateInsert_98.sql" />
<EmbeddedResource Include="MigrationScripts\Version98\SensorAssembliesAndCalibration\Create_sp_SensorsAnalogUpdate_98.sql" />
<EmbeddedResource Include="MigrationScripts\Version98\SensorAssembliesAndCalibration\Create_sp_SensorsAnalogUsageCountUpdate_98.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version98\Update_StoredProcedures_98.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version98\SensorAssembliesAndCalibration\Create_sp_SensorCalibrationsInsert_98.sql" />
<EmbeddedResource Include="MigrationScripts\Version98\SensorAssembliesAndCalibration\Create_sp_SensorCalibrationsSensitivityInspectionSet.sql" />
<EmbeddedResource Include="MigrationScripts\Version98\SensorAssembliesAndCalibration\Create_sp_SensorCalibrationsUpdate_98.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version98\ALTER_TesetSetups_98.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version98\Create_spTestSetupsGet_98.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version98\RemoveUnusedSP.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version98\Create_spTestSetupsInsert_98.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version98\Create_spTestSetupsUpdate_98.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version98\Create_spTestSetupsUpdateInsert_98.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version98\SensorAssembliesAndCalibration\Create_sp_SensorCalibrationsUsageCountUpdate.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version98\RepairFalconPrototype.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version99\SLICETC\dbo.Add_SLICETC_Prototype.sql" />
<EmbeddedResource Include="MigrationScripts\Version99\SLICETC\dbo.Add_SLICETC_Prototype_DAS_Channels.sql" />
<EmbeddedResource Include="MigrationScripts\Version99\SLICETC\dbo.Add_Thermocoupler_SensorType.sql" />
<EmbeddedResource Include="MigrationScripts\Version99\SLICETC\dbo.Create_sp_ThermocouplerGet.sql" />
<EmbeddedResource Include="MigrationScripts\Version99\SLICETC\dbo.Create_Table_SensorsThermocoupler.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version99\SLICETC\Add_sp_ChannelsGet_99_99.sql" />
<EmbeddedResource Include="MigrationScripts\Version99\SLICETC\Add_sp_DASGet_99_99.sql" />
<EmbeddedResource Include="MigrationScripts\Version99\SLICETC\Add_sp_TestSetupHardwareGet_99_99.sql" />
<EmbeddedResource Include="MigrationScripts\Version99\SLICETC\Alter_sp_ChannelsGet_99.sql" />
<EmbeddedResource Include="MigrationScripts\Version99\SLICETC\Alter_sp_DASGet_95_99.sql" />
<EmbeddedResource Include="MigrationScripts\Version99\SLICETC\Alter_sp_DASGet_99.sql" />
<EmbeddedResource Include="MigrationScripts\Version99\SLICETC\Alter_sp_TestSetupHardwareGet_95_99.sql" />
<EmbeddedResource Include="MigrationScripts\Version99\SLICETC\Alter_sp_TestSetupHardwareGet_99.sql" />
<EmbeddedResource Include="MigrationScripts\Version99\Update_StoredProcedures_99.sql" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MigrationScripts\Version100\SLICE_PRO_CAN_FD\Add_CAN_SensorType.sql" />
<EmbeddedResource Include="MigrationScripts\Version100\SLICE_PRO_CAN_FD\Add_SLICE_PRO_CAN_FD_Prototype.sql" />
<EmbeddedResource Include="MigrationScripts\Version100\SLICE_PRO_CAN_FD\Add_SLICE_PRO_CAN_FD_Prototype_DAS_Channels.sql" />
<EmbeddedResource Include="MigrationScripts\Version100\SLICE_PRO_CAN_FD\Alter_sp_ChannelSettingsGet_100.sql" />
<EmbeddedResource Include="MigrationScripts\Version100\SLICE_PRO_CAN_FD\Alter_sp_ChannelSettingsGet_92_100.sql" />
<EmbeddedResource Include="MigrationScripts\Version100\SLICE_PRO_CAN_FD\Alter_sp_ChannelSettingsGet_93_100.sql" />
<EmbeddedResource Include="MigrationScripts\Version100\SLICE_PRO_CAN_FD\Alter_sp_ChannelSettingsGet_95_100.sql" />
<EmbeddedResource Include="MigrationScripts\Version100\SLICE_PRO_CAN_FD\Create_sp_ChannelSettingsGet_95_100.sql" />
<EmbeddedResource Include="MigrationScripts\Version100\SLICE_PRO_CAN_FD\Create_sp_SensorsCANGet.sql" />
<EmbeddedResource Include="MigrationScripts\Version100\SLICE_PRO_CAN_FD\Create_Table_SensorsCAN.sql" />
<EmbeddedResource Include="MigrationScripts\Version100\SLICE_PRO_CAN_FD\Insert_Can_ChannelSettings.sql" />
<EmbeddedResource Include="MigrationScripts\Version100\Update_StoredProcedures_100.sql" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>

View File

@@ -0,0 +1,3 @@
UPDATE [dbo].[CalculatedChannels] SET [ViewInRealtime]=1;

View File

@@ -0,0 +1,165 @@
INSERT INTO [dbo].[Settings]
([PropertyId]
,[PropertyType]
,[PropertyValue]
,[UserId])
VALUES
('SLICE6_AIR_PowerSetting'
,2
,'7.8,9,6.8,9,7.6,15.3,6.5,15.3,4,4,9,19,8.4,7.9,11.8,10.9'
,'SYSTEM'),
('UseFlatFolders'
,2
,'False'
,'SYSTEM');
UPDATE [dbo].[DAS]
SET MinSampleRate = 50, MaxSampleRate = 400000
WHERE SerialNumber = 'SLICE6 Prototype'
DECLARE @dasID int;
INSERT INTO [dbo].[DAS]
([SerialNumber]
,[Type]
,[MaxModules]
,[MaxMemory]
,[MaxSampleRate]
,[MinSampleRate]
,[FirmwareVersion]
,[CalDate]
,[ProtocolVersion]
,[LastModified]
,[LastModifiedBy]
,[Version]
,[LocalOnly]
,[LastUsed]
,[LastUsedBy]
,[Connection]
,[Channels]
,[Position]
,[ChannelTypes]
,[Reprogramable]
,[Reconfigurable]
,[IsModule]
,[PositionOnDistributor]
,[PositionOnChain]
,[Port]
,[ParentDAS])
VALUES
('SLICE6 AIR Prototype'
,36
,2
,1360003054
,400000
,50
,'00A1'
,'1970-01-01 00:00:00.000'
,1
,'2017-05-18 14:26:22.000'
,'DATAPRO_SYSTEM'
,1
,0
,'1753-01-01 00:00:00.000'
,''
,''
,6
,'Prototype'
,'0,0,0,0,0,0'
,0
,0
,0
,0
,0
,0
,'');
SET @dasID = CAST(SCOPE_IDENTITY() as int);
INSERT INTO [dbo].[DASChannels]
([DASId]
,[ChannelIdx]
,[SupportedBridges]
,[SupportedExcitations]
,[DASDisplayOrder]
,[LocalOnly]
,[SupportedDigitalInputModes]
,[SupportedSquibFireModes]
,[SupportedDigitalOutputModes]
,[ModuleSerialNumber]
,[SettingId]
,[ModuleArrayIndex])
VALUES
(@dasID
,0
,9
,50
,-1
,0
,30
,1
,10
,''
,0
,0),
(@dasID
,1
,9
,50
,-1
,0
,30
,1
,10
,''
,0
,0),
(@dasID
,2
,9
,50
,-1
,0
,30
,1
,10
,''
,0
,0),
(@dasID
,3
,9
,50
,-1
,0
,30
,1
,10
,''
,0
,0),
(@dasID
,4
,9
,50
,-1
,0
,30
,1
,10
,''
,0
,0),
(@dasID
,5
,9
,50
,-1
,0
,30
,1
,10
,''
,0
,0);

View File

@@ -0,0 +1,14 @@
CREATE PROCEDURE [dbo].[sp_TestSetupHardwareGet_99]
@TestSetupId INT = NULL
AS
BEGIN
SET NOCOUNT ON;
IF( @TestSetupId IS NULL)
BEGIN
SELECT TestSetupHardwareId, DASId, TestSetupId, AddOrRemove, SamplesPerSecond, IsClockMaster, AntiAliasFilterRate, PTPDomainId FROM [dbo].TestSetupHardware
END
ELSE
BEGIN
SELECT TestSetupHardwareId, DASId, TestSetupId, AddOrRemove, SamplesPerSecond, IsClockMaster, AntiAliasFilterRate, PTPDomainId FROM [dbo].TestSetupHardware WHERE [TestSetupId]=@TestSetupId
END
END

View File

@@ -0,0 +1,29 @@
ALTER PROCEDURE [dbo].[sp_SensorsSquibGet]
@ID INT = NULL,
@SerialNumber NVARCHAR (50) = null,
@EID NVARCHAR (50) = NULL
AS
BEGIN
IF(@ID IS NULL )
BEGIN
IF NULLIF(@SerialNumber, '') IS NULL
BEGIN
IF (@EID IS NULL )
BEGIN
SELECT B.id, B.SerialNumber, A.ArticleId, A.BypassCurrentFilter, A.BypassCurrentFilter, A.BypassVoltageFilter, A.DelayMS, A.DurationMS, A.FireMode, A.IsoChannelName, A.IsoCode, A.LastModified, A.LastModifiedBy, A.LimitDuration, A.DefineDelayInTest, A.MeasurementType, A.SquibOutputCurrent, A.SquibToleranceHigh, A.SquibToleranceLow, A.UserChannelName, A.UserCode, A.UserTags, A.UserValue1, A.UserValue2, A.UserValue3, A.Version, A.Broken, A.DoNotUse FROM SensorsSquib AS A INNER JOIN Sensors AS B ON A.SensorId = B.id INNER JOIN [dbo].[SensorsType] AS C ON B.SensorType=C.TypeId WHERE C.SensorType='Squib'
END
ELSE
BEGIN
SELECT B.id, B.SerialNumber, A.ArticleId, A.BypassCurrentFilter, A.BypassCurrentFilter, A.BypassVoltageFilter, A.DelayMS, A.DurationMS, A.FireMode, A.IsoChannelName, A.IsoCode, A.LastModified, A.LastModifiedBy, A.LimitDuration, A.DefineDelayInTest, A.MeasurementType, A.SquibOutputCurrent, A.SquibToleranceHigh, A.SquibToleranceLow, A.UserChannelName, A.UserCode, A.UserTags, A.UserValue1, A.UserValue2, A.UserValue3, A.Version, A.Broken, A.DoNotUse FROM SensorsSquib AS A INNER JOIN Sensors AS B ON A.SensorId = B.id INNER JOIN [dbo].[SensorsType] AS C ON B.SensorType=C.TypeId WHERE C.SensorType='Squib' AND A.ArticleId=@EID
END
END
ELSE
BEGIN
SELECT B.id, B.SerialNumber, A.ArticleId, A.BypassCurrentFilter, A.BypassCurrentFilter, A.BypassVoltageFilter, A.DelayMS, A.DurationMS, A.FireMode, A.IsoChannelName, A.IsoCode, A.LastModified, A.LastModifiedBy, A.LimitDuration, A.DefineDelayInTest, A.MeasurementType, A.SquibOutputCurrent, A.SquibToleranceHigh, A.SquibToleranceLow, A.UserChannelName, A.UserCode, A.UserTags, A.UserValue1, A.UserValue2, A.UserValue3, A.Version, A.Broken, A.DoNotUse FROM SensorsSquib AS A INNER JOIN Sensors AS B ON A.SensorId = B.id INNER JOIN [dbo].[SensorsType] AS C ON B.SensorType=C.TypeId WHERE C.SensorType='Squib' AND B.SerialNumber=@SerialNumber
END
END
ELSE
BEGIN
SELECT B.id, B.SerialNumber, A.ArticleId, A.BypassCurrentFilter, A.BypassCurrentFilter, A.BypassVoltageFilter, A.DelayMS, A.DurationMS, A.FireMode, A.IsoChannelName, A.IsoCode, A.LastModified, A.LastModifiedBy, A.LimitDuration, A.DefineDelayInTest, A.MeasurementType, A.SquibOutputCurrent, A.SquibToleranceHigh, A.SquibToleranceLow, A.UserChannelName, A.UserCode, A.UserTags, A.UserValue1, A.UserValue2, A.UserValue3, A.Version, A.Broken, A.DoNotUse FROM SensorsSquib AS A INNER JOIN Sensors AS B ON A.SensorId = B.id INNER JOIN [dbo].[SensorsType] AS C ON B.SensorType=C.TypeId WHERE C.SensorType='Squib' AND B.id=@ID
END
END

Some files were not shown because too many files have changed in this diff Show More