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();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user