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,288 @@
using System;
using System.Collections.Generic;
using System.Windows.Controls;
using System.Data;
using System.Data.SqlClient;
namespace DatabaseImport
{
/// <summary>
/// Interaction logic for EditSensorInfoControl.xaml
/// </summary>
public partial class ImportSensorsImportControl : UserControl//, IPageContent, INotifyPropertyChanged
{
/// <summary>
/// TDM export clears all the tables except DAS tables, this function iterates through major tables and clears them
/// </summary>
public static void ClearAllTables(bool clearForDbImport)
{
TestTemplateList.TestTemplatesList.DeleteAll();
TestObjectList.AddedGroupsList.DeleteAll();
TestObjectList.TestObjectsList.DeleteAll();//we have to do this twice because for some reason we keep two copies of the list around!
//The following call to TestObjectTemplateCollection.DeleteAll() is not needed since TestTemplateList.TestTemplatesList.DeleteAll()
//above deletes all TestObjectTemplates already (whether it should or not).
//TestObjectTemplateCollection.DeleteAll();
CustomChannelList.List.DeleteAll();
SensorsCollection.SensorsList.DeleteAll();
SensorModelCollection.SensorModelList.DeleteAll();
SensorCalibrationList.DeleteAll();
CustomerDetailsList.DeleteAll();
LabratoryDetailsList.DeleteAll();
TestEngineerDetailsList.DeleteAll();
if (!clearForDbImport) return;
DTS.Common.Storage.DbOperations.ClearNonPrototypeDas();
ClearAllLockedItems(); //Needed before ClearAllUsers runs
ClearAllUsers(); //Also clears all UIItemSettings
ClearAllTags();
ClearAllUIItems();
ClearAllExceptCurrentDbVersion();
}
private static void ClearAllLockedItems()
{
using (var cmd = DbOperations.GetSQLCommand(true))
{
try
{
cmd.CommandText = "DELETE FROM LockedItems";
cmd.ExecuteNonQuery();
}
finally
{
cmd.Connection.Dispose();
}
}
}
private static void ClearAllUsers()
{
var users = GetAllUsers();
foreach (var user in users)
{
using (var cmd = DbOperations.GetSQLCommand(true))
{
try
{
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = DbOperationsEnum.StoredProcedure.sp_UserDelete.ToString(); //Only used in DataPROPre20.mdf, not DataPRO.mdf
#region params
cmd.Parameters.Add(
new SqlParameter("@UserName", SqlDbType.NVarChar, 50) { Value = user[1] });
var errorNumberParam =
new SqlParameter("@errorNumber", SqlDbType.Int) { Direction = ParameterDirection.Output };
cmd.Parameters.Add(errorNumberParam);
var errorMessageParam =
new SqlParameter("@errorMessage", SqlDbType.NVarChar, 250)
{
Direction = ParameterDirection.Output
};
cmd.Parameters.Add(errorMessageParam);
#endregion params
cmd.ExecuteNonQuery();
if (int.Parse(errorNumberParam.Value.ToString()) != 0)
{
//errorMessageParam.Value
}
}
finally
{
cmd.Connection.Dispose();
}
}
}
}
public static List<string[]> GetAllUsers()
{
var resultList = new List<string[]>();
using (var cmd = DbOperations.GetSQLCommand(true))
{
try
{
cmd.CommandText = DbOperationsEnum.StoredProcedure.sp_UserGet.ToString(); //Only used in DataPROPre20.mdf, not DataPRO.mdf
cmd.CommandType = CommandType.StoredProcedure;
#region params
cmd.Parameters.Add(new SqlParameter("@UserId", SqlDbType.Int) { Value = null });
#endregion params
using (var ds = DbOperations.Connection.QueryDataSet(cmd))
{
foreach (DataRow row in ds.Tables[0].Rows)
{
var id = Convert.ToString(row[DbOperations.Users.UserFields.ID.ToString()]);
var userName = Convert.ToString(row[DbOperations.Users.UserFields.UserName.ToString()]);
var displayName = Convert.ToString(row[DbOperations.Users.UserFields.DisplayName.ToString()]);
var password = Convert.ToString(row[DbOperations.Users.UserFields.Password.ToString()]);
var role = Convert.ToString(row[DbOperations.Users.UserFields.Role.ToString()]);
var lastModified = Convert.ToString(row[DbOperations.Users.UserFields.LastModified.ToString()]);
var lastModifiedBy = Convert.ToString(row[DbOperations.Users.UserFields.LastModifiedBy.ToString()]);
var localOnly = Convert.ToString(row[DbOperations.Users.UserFields.LocalOnly.ToString()]);
var results = new[] { id, userName, displayName, password, role, lastModified, lastModifiedBy, localOnly };
resultList.Add(results);
}
}
}
finally { cmd.Connection.Dispose(); }
}
return resultList;
}
private static void ClearAllUIItems()
{
//We're assuming that all of the UIItemSettings and Users are already deleted via ClearAllUsers!!!
var uiItemIds = GetAllUIItemIds();
foreach (var uiItemId in uiItemIds)
{
using (var cmd = DbOperations.GetSQLCommand(true))
{
try
{
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = DbOperationsEnum.StoredProcedure.sp_UIItemsDelete.ToString();
#region params
cmd.Parameters.Add(
new SqlParameter("@ID", SqlDbType.Int) { Value = uiItemId });
var errorNumberParam =
new SqlParameter("@errorNumber", SqlDbType.Int) { Direction = ParameterDirection.Output };
cmd.Parameters.Add(errorNumberParam);
var errorMessageParam =
new SqlParameter("@errorMessage", SqlDbType.NVarChar, 250)
{
Direction = ParameterDirection.Output
};
cmd.Parameters.Add(errorMessageParam);
#endregion params
cmd.ExecuteNonQuery();
if (int.Parse(errorNumberParam.Value.ToString()) != 0)
{
//errorMessageParam.Value
}
}
finally
{
cmd.Connection.Dispose();
}
}
}
}
private static List<long> GetAllUIItemIds()
{
var idList = new List<long>();
using (var cmd = DbOperations.GetSQLCommand(true))
{
try
{
cmd.CommandText = DbOperationsEnum.StoredProcedure.sp_UIItemsGet.ToString();
cmd.CommandType = CommandType.StoredProcedure;
using (var ds = DbOperations.Connection.QueryDataSet(cmd))
{
foreach (DataRow row in ds.Tables[0].Rows)
{
idList.Add(Convert.ToInt64(row[DbOperations.Users.UIItemFields.ID.ToString()]));
}
}
}
finally { cmd.Connection.Dispose(); }
}
return idList;
}
private static void ClearAllTags()
{
//We're assuming that all of the TagAssignments are already deleted via ClearAllUsers!!!
using (var cmd = DbOperations.GetSQLCommand(true))
{
try
{
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = DbOperationsEnum.StoredProcedure.sp_TagsGet.ToString();
cmd.Parameters.Add(new SqlParameter("@TagId", SqlDbType.Int) { Value = null });
var reader = cmd.ExecuteReader();
var tagsList = new List<int>();
while (reader.Read())
{
var t = new Tags.Tag(reader);
if (t.ID == 0) continue;
tagsList.Add(t.ID);
}
reader.Close();
cmd.CommandText = DbOperationsEnum.StoredProcedure.sp_TagsDelete.ToString();
foreach (var tagId in tagsList)
{
cmd.Parameters.Clear();
cmd.Parameters.Add(new SqlParameter("@TagId", SqlDbType.Int) { Value = tagId });
var errorNumberParam =
new SqlParameter("@errorNumber", SqlDbType.Int) { Direction = ParameterDirection.Output };
cmd.Parameters.Add(errorNumberParam);
var errorMessageParam =
new SqlParameter("@errorMessage", SqlDbType.NVarChar, 250)
{
Direction = ParameterDirection.Output
};
cmd.Parameters.Add(errorMessageParam);
cmd.ExecuteNonQuery();
}
}
finally
{
cmd.Connection.Dispose();
}
}
}
private static void ClearAllExceptCurrentDbVersion()
{
using (var cmd = DbOperations.GetSQLCommand(true))
{
try
{
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = DbOperationsEnum.StoredProcedure.sp_DbVersionGet.ToString();
cmd.Parameters.Add(new SqlParameter("@Version", SqlDbType.Int) { Value = null });
var reader = cmd.ExecuteReader();
var dbVersionsList = new List<int>();
while (reader.Read())
{
var version =
Convert.ToInt32(reader[DbOperations.DbVersions.DbVersionFields.Version.ToString()]);
if (version >= DbOperations.CURRENT_DB_VERSION) continue;
dbVersionsList.Add(version);
}
reader.Close();
cmd.CommandText = DbOperationsEnum.StoredProcedure.sp_DbVersionDelete.ToString();
foreach (var version in dbVersionsList)
{
cmd.Parameters.Clear();
cmd.Parameters.Add(new SqlParameter("@Version", SqlDbType.Int) { Value = version });
var errorNumberParam =
new SqlParameter("@errorNumber", SqlDbType.Int) { Direction = ParameterDirection.Output };
cmd.Parameters.Add(errorNumberParam);
var errorMessageParam =
new SqlParameter("@errorMessage", SqlDbType.NVarChar, 250)
{
Direction = ParameterDirection.Output
};
cmd.Parameters.Add(errorMessageParam);
cmd.ExecuteNonQuery();
}
}
finally
{
cmd.Connection.Dispose();
}
}
}
}
}

View File

@@ -0,0 +1,42 @@
using System;
using System.Collections.Generic;
using System.Data;
namespace DatabaseImport
{
public class TemplateZone
{
public string TemplateName { get; }
public string ZoneName { get; } = "";
public string Picture { get; set; }
public string Description { get; } = "";
public TemplateZone(string template, string name, string picture, string description)
{
ZoneName = name;
TemplateName = template;
Picture = picture;
Description = description;
}
public TemplateZone(DataRow dr)
{
TemplateName = (string)dr["TemplateName"];
if (DBNull.Value == dr["ZoneName"]) { ZoneName = "Default zone"; }
else { ZoneName = (string)dr["ZoneName"]; }
if (DBNull.Value == dr["ZoneDescription"]) { Description = ""; }
else { Description = (string)dr["ZoneDescription"]; }
Picture = (string)dr["Picture"];
TemplateRegions = TemplateRegion.GetAllRegions(TemplateName, ZoneName);
}
private readonly List<TemplateRegion> _regions = new List<TemplateRegion>();
public TemplateRegion[] TemplateRegions
{
get => _regions.ToArray();
set { _regions.Clear(); _regions.AddRange(value); }
}
}
}