예제 #1
0
 public FormMain(Company company, User user, List<Company> companies, Database database) {
     this.company = company;
     this.user = user;
     this.companies = companies;
     this.database = database;
     InitializeComponent();
 }
예제 #2
0
        private void threadMysqlTestFunc () {
            try {
                Database database = new Database() {
                    IpAddress = Settings.Default.databaseHost,
                    Username = Settings.Default.databaseUsername,
                    Password = Settings.Default.databasePassword,
                    Port = Settings.Default.databasePort
                };

                Query query = new Query(database);
                query.checkConnection();

               Dispatcher.Invoke(new Action(() => {
                    MessageBox.Show("Successful", "Successful", MessageBoxButton.OK, MessageBoxImage.Information);
                }));
            } catch (DatabaseException databaseException) {
                Dispatcher.Invoke(new Action(() => {
                    MessageBox.Show(databaseException.Message, "Error", MessageBoxButton.OK, MessageBoxImage.Error);
                }));
            } catch (Exception exception) {
                Dispatcher.Invoke(new Action(() => {
                    MessageBox.Show(exception.Message, "Error", MessageBoxButton.OK, MessageBoxImage.Error);
                }));
            }

        }
예제 #3
0
파일: Query.cs 프로젝트: rhalf/AtsTqatPro
        public Query (Database database) {
            if (database == null) {
                throw new QueryException(1, "Database is null.");
            }

            this.database = database;

            mysqlConnection = new MySqlConnection(this.database.getConnectionString());
        }
예제 #4
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;
                }));
            }
        }
예제 #5
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, Port = 3306, Username = Settings.Default.databaseUsername, Password = Settings.Default.databasePassword };
                query = new Query(database);

                displayMessage("Connecting to " + database.IpAddress + "...");

                query.getCompany(company);
                displayMessage("Checking Company...");

                query.getUser(company, user);
                displayMessage("Checking User...");


                if (user.AccessLevel != 1) {

                    int isExpired = company.DateTimeExpired.CompareTo(DateTime.Now);

                    if (isExpired == -1)
                        throw new QueryException(1, "This company is expired.");
                    if (!company.IsActive)
                        throw new QueryException(1, "Company is deactivated.");

                    isExpired = user.DateTimeExpired.CompareTo(DateTime.Now);

                    if (isExpired == -1)
                        throw new QueryException(1, "This user is expired.");
                    if (!user.IsActive)
                        throw new QueryException(1, "User is deactivated.");
                }
                //=============================Login successful
                query.fillUsers(company, user);
                displayMessage("Loading Users...");

                query.fillPois(company);
                displayMessage("Loading Pois...");

                query.fillGeofences(company);
                displayMessage("Loading Geofences...");

                query.fillCollection(company);
                displayMessage("Loading Collections...");

                query.fillTrackers(company);
                displayMessage("Loading Trackers...");


                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, database);
                    formMain.Show();
                    this.Close();
                }));

            } catch (DatabaseException databaseException) {
                Debug.Print(databaseException.Message);
                displayMessage(databaseException.Message);
                TextLog.Write(databaseException);
            } catch (Exception exception) {
                Debug.Print(exception.Message);
                displayMessage(exception.Message);
                TextLog.Write(exception);
            } finally {
                Dispatcher.Invoke(new Action(() => {
                    panelLogin.IsEnabled = true;
                    progressBarLoading.Visibility = Visibility.Hidden;
                }));
            }
        }
예제 #6
0
        public FormMain (Company company, User user, Database database) {
            InitializeComponent();
            this.user = user;
            this.database = database;
            this.company = company;

            server = new Server();
            server.Name = "Realtime";
            server.Ip = Settings.Default.webServiceIp;
            server.PortCommand = 8001;
            server.PortHttp = Settings.Default.webServicePort;


            loadMap();
            loadDefaultLayout();
        }
예제 #7
0
        private void threadMysqlTestFunc () {
            try {
                Database database = new Database {
                    IpAddress = Settings.Default.DatabaseIp,
                    Port = Int32.Parse(Settings.Default.DatabasePort),
                    DatabaseName = Settings.Default.DatabaseName,
                    Username = Settings.Default.DatabaseUsername,
                    Password = Settings.Default.DatabasePassword
                };

                Query query = new Query(database);
                query.checkConnection();
                Dispatcher.Invoke(new Action(() => {
                    MessageBox.Show("Successful...", "Successful", MessageBoxButton.OK, MessageBoxImage.Information);
                }));
            } catch (Exception exception) {
                Dispatcher.Invoke(new Action(() => {
                    MessageBox.Show(exception.Message, "Failed", MessageBoxButton.OK, MessageBoxImage.Error);
                }));
            }
        }
예제 #8
0
        private void Window_Loaded (object sender, RoutedEventArgs e) {
            this.Title = System.Reflection.Assembly.GetExecutingAssembly().GetName().Name + " - " + System.Reflection.Assembly.GetExecutingAssembly().GetName().Version;
            TextLog.Name = System.Reflection.Assembly.GetExecutingAssembly().GetName().Name;

            machine = new Machine();

            groupMachine.DataContext = machine;

            Database database = new Database {
                IpAddress = Settings.Default.DatabaseIp,
                Port = Int32.Parse(Settings.Default.DatabasePort),
                DatabaseName = Settings.Default.DatabaseName,
                Username = Settings.Default.DatabaseUsername,
                Password = Settings.Default.DatabasePassword
            };

            if (database != null) {
                mysqlCredential.DataContext = database;
            }

            initializedTcpManagers();

            threadUploaderManager = new Thread(threadUploaderManagerFunc);
            threadUploaderManager.Start(tcpManagers);


            threadGuiUpdater = new Thread(threadGuiUpdaterFunc);
            threadGuiUpdater.Start(tcpManagers);


            bufferOut = new ConcurrentDictionary<String, String[]>();
        }
예제 #9
0
        private void processBufferIn (Object state) {
            TcpManager tcpManager = (TcpManager)state;
            while (!tcpManager.BufferIn.IsEmpty) {

                Database database = new Database {
                    IpAddress = Settings.Default.DatabaseIp,
                    Port = Int32.Parse(Settings.Default.DatabasePort),
                    DatabaseName = Settings.Default.DatabaseName,
                    Username = Settings.Default.DatabaseUsername,
                    Password = Settings.Default.DatabasePassword
                };

                Query query = null;
                Object obj = null;
                Gm gm = null;
                Tracker tracker = null;

                //Get data from the buffer.
                if (!tcpManager.BufferIn.TryDequeue(out obj))
                    continue;

                //Cast Obj into Gm
                try {
                    gm = null;
                    gm = (Gm)obj;
                    if (gm == null) {
                        return;
                    }
                } catch (Exception exception) {
                    if (debug) {
                        TextLog.Write(exception);
                    }
                    return;
                }

                //Check Database Connection
                try {
                    query = new Query(database);
                    query.checkConnection();
                } catch (Exception exception) {
                    object object1 = obj;
                    tcpManager.BufferIn.Enqueue(obj);
                    if (debug) {
                        TextLog.Write(exception);
                    }
                    continue;
                }

                //Check tracker if registered to the database, return 
                try {
                    tracker = query.getTracker(gm.Unit);
                } catch (Exception exception) {
                    if (debug) {
                        TextLog.Write(exception);
                    }
                    continue;
                }

                //Insert Data to the database server
                try {
                    query.insertTrackerData(tracker, gm);
                } catch (Exception exception) {
                    if (debug) {
                        TextLog.Write(exception);
                    }
                }

                Thread.Sleep(10);
            }


        }