Version 1.0.1
This commit is contained in:
82
WheresMyMoney.Maui/PlannedPaymentsPage.xaml.cs
Normal file
82
WheresMyMoney.Maui/PlannedPaymentsPage.xaml.cs
Normal file
@@ -0,0 +1,82 @@
|
||||
using System.Collections.ObjectModel;
|
||||
using WheresMyMoney.Maui.Core;
|
||||
|
||||
namespace WheresMyMoney.Maui;
|
||||
|
||||
public partial class PlannedPaymentsPage : ContentPage
|
||||
{
|
||||
public ObservableCollection<FullPlannedPaymentViewModel> FullPlannedPaymentViewModels { get; set; } = [];
|
||||
|
||||
public PlannedPaymentsPage()
|
||||
{
|
||||
InitializeComponent();
|
||||
BindingContext = this;
|
||||
UpdateUi();
|
||||
Repository.Instance.DataChanged += OnDataChanged;
|
||||
}
|
||||
|
||||
private void OnDataChanged(object? sender, EventArgs e)
|
||||
{
|
||||
UpdateUi();
|
||||
}
|
||||
|
||||
private void UpdateUi()
|
||||
{
|
||||
FullPlannedPaymentViewModels.Clear();
|
||||
foreach (var plannedPayment in Repository.Instance.GetAllPlannedPayments())
|
||||
{
|
||||
FullPlannedPaymentViewModels.Add(new FullPlannedPaymentViewModel(plannedPayment.Id,
|
||||
plannedPayment.Amount.ToString("C"), plannedPayment.Name,
|
||||
plannedPayment.DateStart.ToString("yyyy-MM-dd"),
|
||||
plannedPayment.DateEnd?.ToString("yyyy-MM-dd") ?? string.Empty, plannedPayment.DateEnd is not null,
|
||||
plannedPayment.IsSubscription,
|
||||
plannedPayment.Reoccurences,
|
||||
ReoccurenceTypeToString(plannedPayment.Reoccurences, plannedPayment.ReoccurenceType)));
|
||||
}
|
||||
}
|
||||
|
||||
private static string ReoccurenceTypeToString(int? plannedPaymentReoccurences,
|
||||
ReoccurenceType? plannedPaymentReoccurenceType) =>
|
||||
plannedPaymentReoccurenceType switch
|
||||
{
|
||||
ReoccurenceType.Days => plannedPaymentReoccurences switch
|
||||
{
|
||||
1 => "dzień",
|
||||
_ => "dni"
|
||||
},
|
||||
ReoccurenceType.Weeks => (plannedPaymentReoccurences, plannedPaymentReoccurences % 10) switch
|
||||
{
|
||||
(1, _) => "tydzień",
|
||||
(_, > 1 and < 5) => "tygodnie",
|
||||
_ => "tygodni"
|
||||
},
|
||||
ReoccurenceType.Months => (plannedPaymentReoccurences, plannedPaymentReoccurences % 10) switch
|
||||
{
|
||||
(1, _) => "miesiąc",
|
||||
(_, > 1 and < 5) => "miesiące",
|
||||
_ => "miesięcy"
|
||||
},
|
||||
ReoccurenceType.Years => (plannedPaymentReoccurences, plannedPaymentReoccurences % 10) switch
|
||||
{
|
||||
(1, _) => "rok",
|
||||
(_, > 1 and < 5) => "lata",
|
||||
_ => "lat"
|
||||
},
|
||||
ReoccurenceType.EveryLastDayOfMonth => "ostatni dzień miesiąca",
|
||||
_ => string.Empty
|
||||
};
|
||||
|
||||
private async void InsertPlannedPayment_OnClicked(object? sender, EventArgs e)
|
||||
{
|
||||
await Navigation.PushModalAsync(new AddPlannedPaymentPage());
|
||||
}
|
||||
|
||||
private async void RemovePlannedPayment_OnClicked(object? sender, EventArgs e)
|
||||
{
|
||||
if (sender is not Button button) return;
|
||||
var answer = await DisplayAlert("Usunąć?", "Czy na pewno chcesz usunąć tą płatność?", "Tak", "Nie");
|
||||
if (!answer) return;
|
||||
var id = (int)button.CommandParameter;
|
||||
Repository.Instance.RemovePlannedPayment(id);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user