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); }
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); } } } } }