Exemple #1
0
        public async Task downloadCustomers()
        {
            var serverDb         = new ServerDatabaseService();
            var fetchedCustomers = await serverDb.getAllCustomers();

            if (fetchedCustomers != null)
            {
                var countCustomer = await customerDb.Count();

                int insertCustomers;
                if (countCustomer == 0)
                {
                    insertCustomers = await customerDb.InsertAllCustomers(fetchedCustomers);
                }
                else
                {
                    //compare against local
                    var localCustomers = await customerDb.GetAllCustomers();

                    List <Models.Customer> fetchedData = new List <Models.Customer>(fetchedCustomers);
                    List <Models.Customer> newData     = fetchedData.Except <Models.Customer>(localCustomers).ToList();
                    List <Models.Customer> deletedData = localCustomers.Except <Models.Customer>(fetchedData).ToList();
                    if (newData != null)
                    {
                        //insert new data to local db
                        insertCustomers = await customerDb.InsertAllCustomers(new ObservableCollection <Models.Customer>(newData));
                    }
                    if (deletedData != null)
                    {
                        //delete deleted data in local db
                        foreach (Models.Customer data in deletedData)
                        {
                            await customerDb.DeleteCustomer(data);
                        }
                    }
                }
            }
        }
Exemple #2
0
        /* Function: funcLogin
         * input: username and password
         * This function performs validation of user and password with the database
         * if the login credential correct, this method leads to showing sales screen
         * otherwise, it is still in login page
         */
        private async void funcLogin(string username, string password)
        {
            if (username == "warehouse" && password == "warehouse")
            {
                var serverDb = new ServerDatabaseService();
                try
                {
                    var deleteLocalSalesLines = await salesLineDb.DeleteAll();

                    var deleteLocalSales = await salesDb.DeleteAll();

                    var deleteLocalCustomer = await customerDb.DeleteAll();

                    var deleteLocalItem = await itemDb.DeleteAll();

                    var allSales = await serverDb.getAllSales();

                    var allSalesLines = await serverDb.getAllSalesLines();

                    var allCustomer = await serverDb.getAllCustomers();

                    var allItem = await serverDb.getAllItems();

                    await salesDb.InsertAllSales(allSales);

                    await salesLineDb.InsertSalesLines(allSalesLines);

                    await customerDb.InsertAllCustomers(allCustomer);

                    await itemDb.InsertItems(allItem);

                    //go to shipment view
                    ShowViewModel <ShipmentViewModel>();
                    Close(this);
                }
                catch (Exception e)
                {
                    await dialog.Show(e.Message, "Error");
                }
            }
            else
            {
                //integrate with server database to check username and password
                var serverDb = new ServerDatabaseService();
                int isLogged = await serverDb.checkLogin(username, password);

                if (isLogged == 1)
                {
                    loggingIn();
                }
                else if (isLogged == 0)
                {
                    //login fail, send notification to user
                    await dialog.Show("Username or password is incorrect. Please try again.", "Login Failed");
                }
                else if (isLogged == 3)
                {
                    //network error
                    await dialog.Show("Please check your network and try again later", "Network Error");
                }
            }
        }