public async void loadCustomer()
        {
            ObservableCollection <Services.Customer> customerTmp = new ObservableCollection <Services.Customer>();
            var myCust = await customerDb.GetAllCustomers();

            var tmp = myCust.OrderBy(x => x.Name);

            foreach (Models.Customer aCustomer in tmp)
            {
                customerTmp.Add(new Services.Customer(aCustomer.CustomerId, aCustomer.Name, aCustomer.Address, aCustomer.Phone));
            }
            CustomerSelection = customerTmp;
            GlobalVars.customerListIsLoaded = true;
            RaisePropertyChanged(() => CustomerSelection);
        }
Exemple #2
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);
                        }
                    }
                }
            }
        }