public async void loggingIn() { //set globalvars, request detail from database, load previous transactions (sales and salesline) done by salesman var serverDb = new ServerDatabaseService(); try { Models.Salesman tmp = await serverDb.getDetail(Username); if (tmp != null) { var mySales = await serverDb.getMySales(tmp.SalesmanId); ISharedPreferences mysettings = Application.Context.GetSharedPreferences("mysetting", FileCreationMode.Private); var myExistingSales = await salesDb.GetAllSalesWhere(tmp.SalesmanId); List <Models.SalesTable> mySalesToBeAdded; if (myExistingSales != null) { mySalesToBeAdded = mySales.Except(myExistingSales.ToList()).ToList(); } else { mySalesToBeAdded = new List <Models.SalesTable>(); } if (mySalesToBeAdded != null) { await salesDb.InsertAllSales(new ObservableCollection <Models.SalesTable>((mySalesToBeAdded.Select(x => { x.Transferred(); return(x); })).ToList())); } var listOfDocNo = mySalesToBeAdded.Select(x => x.DocumentNo).ToList(); var mySalesLines = await serverDb.getMySalesLines(tmp.SalesmanId); var mySalesLinesToBeAdded = mySalesLines.Where(x => listOfDocNo.Contains(x.DocumentNo)).ToList(); if (mySalesLinesToBeAdded != null) { await salesLineDb.InsertSalesLines(new ObservableCollection <Models.SalesLineTable>(mySalesLinesToBeAdded)); } GlobalVars.myDetail = new Models.Salesman(tmp.SalesmanId, tmp.Name, tmp.Address, tmp.Phone, tmp.Username); ShowViewModel <PromotionViewModel>(); Close(this); } } catch (Exception e) { await dialog.Show(e.Message, "Error"); } }
public async Task syncSales() { var serverDb = new ServerDatabaseService(); var salesToBeTransferred = await salesDb.GetNotTransferredSales(); if (salesToBeTransferred.Count() > 0) { var result = await serverDb.insertSales(salesToBeTransferred); if (result == 1) { //continue by inserting sales lines foreach (SalesTable x in salesToBeTransferred) { var saleslines = await salesLineDb.GetAllSalesLinesWhere(x.DocumentNo); var sltresult = await serverDb.insertSalesLines(saleslines); if (sltresult == 1) { var updateresult = await salesDb.UpdateTransferred(x.DocumentNo); x.Transferred(); } else if (sltresult == 0) { await dialog.Show("Insert Sales Lines to server database failed", "Insert to Server Failed"); } } } else { await dialog.Show("There is something wrong with uploading sales to the server", "Upload Failed"); } } //get deleted data from server var fetchedData = await serverDb.getMySales(GlobalVars.myDetail.SalesmanId); if (fetchedData != null) { var mysales = await salesDb.GetAllSalesWhere(GlobalVars.myDetail.SalesmanId); List <SalesTable> mySalesList = new List <SalesTable>(mysales); var filteredData = mySalesList.Where(x => x.isTransferred == true).ToList(); var deletedData = filteredData.Except(fetchedData.ToList()).ToList(); if (deletedData != null) { if (deletedData.Count() > 0) { try { foreach (SalesTable deletedSales in deletedData) { await salesLineDb.DeleteSalesLineWhere(deletedSales.DocumentNo); await salesDb.DeleteSales(deletedSales); } } catch (System.Exception e) { await dialog.Show(e.Message, "Delete Failed"); } } } } await loadSales(); }