try-catch when copying remote users to the local database, ver. 2.12.499

This commit is contained in:
Milan Hanajik
2017-03-20 09:14:00 +01:00
parent cd50494141
commit 042488ba79
6 changed files with 71 additions and 49 deletions
+2 -2
View File
@@ -32,5 +32,5 @@ using System.Runtime.InteropServices;
// 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("2.12.498.0")]
[assembly: AssemblyFileVersion("2.12.498.0")]
[assembly: AssemblyVersion("2.12.499.0")]
[assembly: AssemblyFileVersion("2.12.499.0")]
@@ -29,5 +29,5 @@ using System.Runtime.InteropServices;
// Build Number
// Revision
//
[assembly: AssemblyVersion("2.12.498.1")]
[assembly: AssemblyFileVersion("2.12.498.1")]
[assembly: AssemblyVersion("2.12.499.1")]
[assembly: AssemblyFileVersion("2.12.499.1")]
+53 -43
View File
@@ -145,52 +145,62 @@ namespace Users.Forms
return;
}
///
/// Read remote users
///
DB.DbType = GlobalData.RemoteUsersDB.DbType;
DB.ConnectionString = GlobalData.RemoteUsersDB.ConnectionString;
ISession session = DB.CreateSession();
IList<User> remoteUsers = session.QueryOver<User>().List();
IList<Group> remoteGroups = session.QueryOver<Group>().List();
try
{
///
/// Read remote users
///
DB.DbType = GlobalData.RemoteUsersDB.DbType;
DB.ConnectionString = GlobalData.RemoteUsersDB.ConnectionString;
ISession session = DB.CreateSession();
IList<User> remoteUsers = session.QueryOver<User>().List();
IList<Group> remoteGroups = session.QueryOver<Group>().List();
///
/// Delete all local users
///
DB.DbType = GlobalData.LocalUsersDB.DbType;
DB.ConnectionString = GlobalData.LocalUsersDB.ConnectionString;
session = DB.CreateSession();
IList<User> users = session.QueryOver<User>().List();
foreach (var user in users) DB.DeleteObject(session, user);
IList<Group> groups = session.QueryOver<Group>().List();
foreach (var group in groups) DB.DeleteObject(session, group);
session.Flush();
///
/// Delete all local users
///
DB.DbType = GlobalData.LocalUsersDB.DbType;
DB.ConnectionString = GlobalData.LocalUsersDB.ConnectionString;
session = DB.CreateSession();
IList<User> users = session.QueryOver<User>().List();
foreach (var user in users) DB.DeleteObject(session, user);
IList<Group> groups = session.QueryOver<Group>().List();
foreach (var group in groups) DB.DeleteObject(session, group);
session.Flush();
///
/// Save all remote users to the local DB
///
DB.DbType = GlobalData.LocalUsersDB.DbType;
DB.ConnectionString = GlobalData.LocalUsersDB.ConnectionString;
session = DB.CreateSession();
IList<User> newUsers = session.QueryOver<User>().List();
IList<Group> newGroups = session.QueryOver<Group>().List();
foreach (var user in remoteUsers)
{
User newUser = (User)user.Clone();
newUsers.Add(newUser);
foreach (var group in user.Groups)
{
Group newGroup = new Group(group.Gid, group.Name);
newUser.AddGroup(newGroup);
}
DB.SaveObject(session, newUser);
}
session.Flush();
///
/// Save all remote users to the local DB
///
DB.DbType = GlobalData.LocalUsersDB.DbType;
DB.ConnectionString = GlobalData.LocalUsersDB.ConnectionString;
session = DB.CreateSession();
IList<User> newUsers = session.QueryOver<User>().List();
IList<Group> newGroups = session.QueryOver<Group>().List();
foreach (var user in remoteUsers)
{
User newUser = (User)user.Clone();
newUsers.Add(newUser);
foreach (var group in user.Groups)
{
Group newGroup = new Group(group.Gid, group.Name);
newUser.AddGroup(newGroup);
}
DB.SaveObject(session, newUser);
}
session.Flush();
MessageBox.Show(string.Format(Strings.N_users_copied, remoteUsers.Count),
Strings.Confirmation,
MessageBoxButtons.OK,
MessageBoxIcon.Information);
MessageBox.Show(string.Format(Strings.N_users_copied, remoteUsers.Count),
Strings.Confirmation,
MessageBoxButtons.OK,
MessageBoxIcon.Information);
}
catch (Exception exc)
{
MessageBox.Show(Strings.Copying_remote_users_failed,
Strings.Confirmation,
MessageBoxButtons.OK,
MessageBoxIcon.Information);
}
}
}
}
+2 -2
View File
@@ -32,5 +32,5 @@ using System.Runtime.InteropServices;
// 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("2.12.498.0")]
[assembly: AssemblyFileVersion("2.12.498.0")]
[assembly: AssemblyVersion("2.12.499.0")]
[assembly: AssemblyFileVersion("2.12.499.0")]
+9
View File
@@ -105,6 +105,15 @@ namespace Users.Resources {
}
}
/// <summary>
/// Looks up a localized string similar to Copying remote users failed.
/// </summary>
internal static string Copying_remote_users_failed {
get {
return ResourceManager.GetString("Copying_remote_users_failed", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Description.
/// </summary>
+3
View File
@@ -198,4 +198,7 @@
<data name="N_users_copied" xml:space="preserve">
<value>{0} users copied</value>
</data>
<data name="Copying_remote_users_failed" xml:space="preserve">
<value>Copying remote users failed</value>
</data>
</root>