public bool ProcessWebUserChanges() { DateTime save_time = DateTime.UtcNow; List <SWebAccount> accounts = null; accounts = server_api.GetWebAccountsCreatedSince(Configurations.last_change_server_webusers.Year.ToString(), Configurations.last_change_server_webusers.Month.ToString(), Configurations.last_change_server_webusers.Day.ToString(), Configurations.last_change_server_webusers.Hour.ToString(), Configurations.last_change_server_webusers.Minute.ToString()); if (accounts == null) { return(false); } else { this.current_webaccounts = accounts; } TableTopDataClassesDataContext db = Configurations.GetTableTopDB(); for (int counter = 0; counter < accounts.Count; counter++) { if (accounts[counter].username == "default") { continue; } var ru = from u in db.WebUsers where u.username == accounts[counter].username select u; if (ru.Count() == 0) { WebUser u_new = new WebUser(); u_new.username = accounts[counter].username; u_new.password = accounts[counter].password; u_new.email = accounts[counter].email; u_new.fullname = accounts[counter].name; u_new.technical_info = accounts[counter].consent; u_new.affiliation = accounts[counter].affiliation; if (accounts[counter].icon_url.StartsWith("nn_")) { u_new.avatar = accounts[counter].icon_url; } else { u_new.avatar = Configurations.GetRandomAvatar(); } try { SAccount related_account = server_api.GetAccount(accounts[counter].account_id); string uname = "default"; if (related_account != null) { uname = related_account.username; } if (uname == "default") { u_new.user_id = 0; } else { var u = from u0 in db.Users where u0.name == uname select u0; User related_user = u.Single <User>(); u_new.user_id = related_user.id; } } catch (Exception ex) { Log.WriteErrorLog(ex); } db.WebUsers.InsertOnSubmit(u_new); } else { if (ru.Count() == 1) { WebUser u = ru.Single <WebUser>(); u.password = accounts[counter].password; u.affiliation = accounts[counter].affiliation; if (accounts[counter].icon_url.StartsWith("nn_")) { u.avatar = accounts[counter].icon_url; } u.email = accounts[counter].email; u.technical_info = accounts[counter].consent; try { SAccount related_account = server_api.GetAccount(accounts[counter].account_id); string uname = related_account.username; if (uname == "default") { u.user_id = 0; } else { var u1 = from u0 in db.Users where u0.name == uname select u0; User related_user = u1.Single <User>(); u.user_id = related_user.id; } } catch (Exception ex) { Log.WriteErrorLog(ex); } db.SubmitChanges(); } } } if (accounts.Count == 0) { return(true); } if (SubmitChangesToLocalDB(db)) { Configurations.last_change_server_webusers = save_time; Configurations.SaveSettings(); return(true); } return(false); }
public bool ProcessUserChanges() { DateTime save_time = DateTime.UtcNow; List <SAccount> accounts = null; accounts = server_api.GetAccountsCreatedSince(Configurations.last_change_server_users.Year.ToString(), Configurations.last_change_server_users.Month.ToString(), Configurations.last_change_server_users.Day.ToString(), Configurations.last_change_server_users.Hour.ToString(), Configurations.last_change_server_users.Minute.ToString(), true); if (accounts == null) { return(false); } else { this.current_accounts = accounts; } TableTopDataClassesDataContext db = Configurations.GetTableTopDB(); for (int counter = 0; counter < accounts.Count; counter++) { if (accounts[counter].username == "default") { continue; } var ru = from u in db.Users where u.name == accounts[counter].username select u; if (ru.Count() == 0) { User u_new = new User(); u_new.name = accounts[counter].username; u_new.password = accounts[counter].password; u_new.email = accounts[counter].email; u_new.technical_info = accounts[counter].consent; u_new.affiliation = accounts[counter].affiliation; if (accounts[counter].icon_url.StartsWith("nn_")) { u_new.avatar = accounts[counter].icon_url; } else { u_new.avatar = Configurations.GetRandomAvatar(); } db.Users.InsertOnSubmit(u_new); } else { if (ru.Count() == 1) { User u = ru.Single <User>(); u.password = accounts[counter].password; u.affiliation = accounts[counter].affiliation; if (accounts[counter].icon_url.StartsWith("nn_")) { u.avatar = accounts[counter].icon_url; } u.email = accounts[counter].email; u.technical_info = accounts[counter].consent; db.SubmitChanges(); } } } if (accounts.Count == 0) { return(true); } if (SubmitChangesToLocalDB(db)) { Configurations.last_change_server_users = save_time; Configurations.SaveSettings(); return(true); } return(false); }