Пример #1
0
        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);
        }
Пример #2
0
        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);
        }