init
This commit is contained in:
@@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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); }
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user