public async Task SaveUserPaymentItemAsync(UserPaymentItem item) { if (item.Id == null) { await userpaymentTabel.InsertAsync(item); } else { await userpaymentTabel.UpdateAsync(item); } }
public async void DeleteUserPaymentItemAsync(UserPaymentItem item) { await userpaymentTabel.DeleteAsync(item); }
private async void saveToDatabes() { try { var name = payNameStatic.Text.ToString().Trim(); decimal cor = friendsToPayment.Sum(s => s.Item2); var my1 = friendsToPayment.Find(s => s.Item1 == HomeActivity1.userItem.Name); decimal my; if (my1 != null) { my = my1.Item2; } else { my = 0; } decimal sum; if (cor < 0) { if (my >= 0) { sum = friendsToPayment.Where(s => s.Item2 < 0).Sum(s => Math.Abs(s.Item2)); } else { sum = friendsToPayment.Where(s => s.Item2 > 0).Sum(s => s.Item2); } } else { if (my > 0) { sum = friendsToPayment.Where(s => s.Item2 < 0).Sum(s => Math.Abs(s.Item2)); } else { sum = friendsToPayment.Where(s => s.Item2 > 0).Sum(s => s.Item2); } } PaymentItem payitem; if (paymentItem == null) { payitem = new PaymentItem() { Amount = sum, TripId = tripItem.Id, Name = name, UserCreatingPaymentId = HomeActivity1.userItem.Id }; await DatabaseManager.DefaultManager.SavePaymentItemAsync(payitem); } else { payitem = paymentItem; payitem.Amount = sum; await DatabaseManager.DefaultManager.SavePaymentItemAsync(payitem); } bool isHeHere = false; if (paymentItem == null) { foreach (Tuple <string, decimal> tuple in friendsToPayment) { var user = friends.Where(s => s.Name == tuple.Item1).First().Id; var amount = tuple.Item2; if (user == HomeActivity1.userItem.Id) { isHeHere = true; amount -= cor; } var payuseritem = new UserPaymentItem() { PayId = payitem.Id, UserId = user, Amount = amount }; await DatabaseManager.DefaultManager.SaveUserPaymentItemAsync(payuseritem); } if (!isHeHere) { var payuseritem = new UserPaymentItem() { PayId = payitem.Id, UserId = HomeActivity1.userItem.Id, Amount = (-cor) }; await DatabaseManager.DefaultManager.SaveUserPaymentItemAsync(payuseritem); } } else { foreach (Tuple <string, decimal> tuple in friendsToPayment) { var user = friends.Where(s => s.Name == tuple.Item1).First().Id; var amount = tuple.Item2; if (user == HomeActivity1.userItem.Id) { isHeHere = true; amount -= cor; } var payuseritem = payments.Where(s => s.UserId == user).FirstOrDefault(); if (payuseritem != null) { payuseritem.Amount = amount; payments.Remove(payuseritem); } else { payuseritem = new UserPaymentItem() { PayId = payitem.Id, UserId = user, Amount = amount }; } await DatabaseManager.DefaultManager.SaveUserPaymentItemAsync(payuseritem); } if (!isHeHere) { var payuseritem = payments.Where(s => s.UserId == HomeActivity1.userItem.Id).FirstOrDefault(); if (payuseritem != null) { payuseritem.Amount = (-cor); if (payuseritem.Amount != 0) { payments.Remove(payuseritem); } } else { payuseritem = new UserPaymentItem() { PayId = payitem.Id, UserId = HomeActivity1.userItem.Id, Amount = (-cor) }; } if (payuseritem.Amount != 0) { await DatabaseManager.DefaultManager.SaveUserPaymentItemAsync(payuseritem); } } foreach (UserPaymentItem paythis in payments) { DatabaseManager.DefaultManager.DeleteUserPaymentItemAsync(paythis); } } HistoryItem historyItem; if (paymentItem == null) { historyItem = new HistoryItem(tripItem.Id, HomeActivity1.userItem.Id, "added payment, amount: " + sum); } else { historyItem = new HistoryItem(tripItem.Id, HomeActivity1.userItem.Id, "edited payment, amount: " + sum); } await DatabaseManager.DefaultManager.SaveHistoryItemAsync(historyItem); base.OnBackPressed(); } catch { Toast.MakeText(this, "Upps", ToastLength.Short).Show(); } }