Esempio n. 1
0
        private void run(object state) {
            try {

                Dispatcher.Invoke(new Action(() => {
                    panelLogin.IsEnabled = false;
                    progressBarLoading.Visibility = Visibility.Visible;
                }));
           
                Database database = new Database { IpAddress = Settings.Default.databaseHost, Username = Settings.Default.databaseUsername, Password = Settings.Default.databasePassword };
                query = new Query(database);


                companies = query.getCompanies();
                //query.fillGeofences(company);
                //users = query.getUsers(company, user);
                int count = 0;
                foreach (Company companyItem in companies) {
                    query.getUser(companyItem, user);
                    //users = query.fillUsers(companyItem, user);
                    //companyItem.Trackers = query.getTrackers(companyItem, users);
                    Dispatcher.Invoke(new Action(() => {
                        panelLogin.ErrorNote = "Loading companies... " + (++count).ToString() + "/" + companies.Count.ToString();
                    }));
                }


                Dispatcher.Invoke(new Action(() => {
                    Settings.Default.accountCompanyUsername = panelLogin.CompanyUsername;
                    Settings.Default.accountUsername = panelLogin.Username;
                    Settings.Default.accountPassword = panelLogin.Password;
                    Settings.Default.accountRememberMe = (bool)panelLogin.RememberMe;
                    Settings.Default.Save();
                    FormMain formMain = new FormMain(company, user, companies, database);
                    formMain.Show();
                    this.Close();
                }));

            } catch (DatabaseException databaseException) {
                Debug.Print(databaseException.Message);
                Dispatcher.Invoke(new Action(() => {
                    panelLogin.ErrorNote = databaseException.Message;
                    TextLog.Write(databaseException);
                }));
            } catch (Exception exception) {
                Debug.Print(exception.Message);
                Dispatcher.Invoke(new Action(() => {
                    panelLogin.ErrorNote = exception.Message;
                    TextLog.Write(exception);
                }));
            } finally {
                Dispatcher.Invoke(new Action(() => {
                    panelLogin.IsEnabled = true;
                    progressBarLoading.Visibility = Visibility.Hidden;
                }));
            }
        }