using PersonalFinance; using PersonalFinance.Entity; using PersonalFinance.Utils; using System; using System.Collections.Generic; using System.ComponentModel; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; namespace PersonalFinanceWindow.ViewModel { class OverviewViewModel : ViewModelBase { PaymentService paymentsrv; ScheduledItemService schsrv; UserService usrsrv; int myScheduledPaymentsCount; public int MyScheduledPaymentsCount { get { return myScheduledPaymentsCount; } set { Set(ref myScheduledPaymentsCount, value); } } double myPayments; public double MyPayments { get { return myPayments; } set { Set(ref myPayments, value); } } double familyPayments; public double FamilyPayments { get { return familyPayments; } set { Set(ref familyPayments, value); } } int myPaymentsCount; public int MyPaymentsCount { get { return myPaymentsCount; } set { Set(ref myPaymentsCount, value); } } int familyPaymentsCount; public int FamilyPaymentsCount { get { return familyPaymentsCount; } set { Set(ref familyPaymentsCount, value); } } int usersCount; public int UsersCount { get { return usersCount; } set { Set(ref usersCount, value); } } public OverviewViewModel() { paymentsrv = new PaymentService(ctx); schsrv = new ScheduledItemService(ctx); usrsrv = new UserService(ctx); if ((bool)(DesignerProperties.IsInDesignModeProperty.GetMetadata(typeof(DependencyObject)).DefaultValue)) { //dummy data MyPayments = 12500; FamilyPayments = 39750; MyPaymentsCount = 4; FamilyPaymentsCount = 9; UsersCount = 5; MyScheduledPaymentsCount = 3; } } public void LoadOverview() { double czk = paymentsrv.GetAllPayments() .FindAll(i => i.User.UserId == UserViewModel.loggedUserId && i.Currency == PaymentCurrency.CZK) .Sum(i => i.Price); double usd = paymentsrv.GetAllPayments() .FindAll(i => i.User.UserId == UserViewModel.loggedUserId && i.Currency == PaymentCurrency.USD) .Sum(i => i.Price); double eur = paymentsrv.GetAllPayments() .FindAll(i => i.User.UserId == UserViewModel.loggedUserId && i.Currency == PaymentCurrency.EUR) .Sum(i => i.Price); MyPayments = czk + Exchange.fromEurToCzk(eur) + Exchange.fromEurToCzk(usd); double fam_czk = paymentsrv.GetAllPayments() .FindAll(i => i.Group != PaymentGroup.Private && i.Currency == PaymentCurrency.CZK) .Sum(i => i.Price); double fam_usd = paymentsrv.GetAllPayments() .FindAll(i => i.Group != PaymentGroup.Private && i.Currency == PaymentCurrency.USD) .Sum(i => i.Price); double fam_eur = paymentsrv.GetAllPayments() .FindAll(i => i.Group != PaymentGroup.Private && i.Currency == PaymentCurrency.EUR) .Sum(i => i.Price); FamilyPayments = fam_czk + Exchange.fromEurToCzk(fam_eur) + Exchange.fromEurToCzk(fam_usd); MyPaymentsCount = paymentsrv.GetAllPayments().FindAll(i => i.User.UserId == UserViewModel.loggedUserId).Count; FamilyPaymentsCount = paymentsrv.GetAllPayments().FindAll(i => i.Group != PaymentGroup.Private).Count; MyScheduledPaymentsCount = schsrv.GetAllScheduledItems().FindAll(i => i.User.UserId == UserViewModel.loggedUserId).Count; UsersCount = usrsrv.GetAllUsers().Count; } } }