using PersonalFinance; using PersonalFinance.Entity; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data.Entity; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; namespace PersonalFinanceWindow.ViewModel { class ScheduledViewModel : ViewModelBase { ScheduledItemService schsrv; BindingList scheduledItems; public BindingList ScheduledItems { get { return scheduledItems; } set { Set(ref scheduledItems, value); } } ScheduledPayment selected; public ScheduledPayment Selected { get { return selected; } set { Set(ref selected, value); } } public BindingList Frequencies { get; set; } public BindingList Groups { get; set; } public BindingList Currencies { get; set; } public RelayCommand AddScheduled { get; set; } public RelayCommand DeleteScheduled { get; set; } public ScheduledViewModel() { AddScheduled = new RelayCommand(AddScheduledAction); DeleteScheduled = new RelayCommand(DeleteScheduledAction); schsrv = new ScheduledItemService(ctx); GetEnums(); if ((bool)(DesignerProperties.IsInDesignModeProperty.GetMetadata(typeof(DependencyObject)).DefaultValue)) { ScheduledItems = new BindingList(new List { new ScheduledPayment() { ScheduledItemId= 1, Frequency = Frequency.Monthly, LastUse = DateTime.Now, Currency = PaymentCurrency.CZK, Price = 1700, Purpose = "Elektřina", Group = PaymentGroup.Family, Until = DateTime.Now.AddDays(10), Note = "Poznámka" }, new ScheduledPayment() { ScheduledItemId= 2, Frequency = Frequency.Monthly, LastUse = DateTime.Now.AddDays(10), Currency = PaymentCurrency.CZK, Price = 349, Purpose = "Telefon", Group = PaymentGroup.Personal }, new ScheduledPayment() { ScheduledItemId= 3, Frequency = Frequency.Quarterly, LastUse = DateTime.Now, Currency = PaymentCurrency.CZK, Price = 599, Purpose = "Telefon", Group = PaymentGroup.Personal } }); } else { //Database.SetInitializer(new EntityContextInit()); //ScheduledItemService schsrv = new ScheduledItemService(ctx); //List p = schsrv.GetAllScheduledItems().FindAll(i => i.User.UserId == UserViewModel.loggedUserId); //ScheduledItems = new BindingList(p); ScheduledItems = new BindingList(); } if (ScheduledItems.Count > 0) { Selected = ScheduledItems[0]; } } public void LoadScheduled() { //Database.SetInitializer(new EntityContextInit()); //ScheduledItemService schsrv = new ScheduledItemService(ctx); List p = schsrv.GetAllScheduledItems().FindAll(i => i.User.UserId == UserViewModel.loggedUserId); ScheduledItems = new BindingList(p); if (ScheduledItems.Count > 0) { Selected = ScheduledItems[0]; } } private void GetEnums() { Frequencies = new BindingList(new List(){ Frequency.Biannually, Frequency.Daily, Frequency.Monthly, Frequency.None, Frequency.Once, Frequency.Quarterly, Frequency.Weekly, Frequency.Yearly }); Groups = new BindingList(new List() { PaymentGroup.Family, PaymentGroup.Personal, PaymentGroup.Private }); Currencies = new BindingList(new List() { PaymentCurrency.CZK, PaymentCurrency.EUR, PaymentCurrency.USD }); } public void AddScheduledAction() { ScheduledPayment p = new ScheduledPayment() { ScheduledItemId = schsrv.GetAllScheduledItems().Max(i => i.ScheduledItemId) + 1, Price = 0, Purpose = "NEW SCHEDULED PAYMENT", Until = DateTime.Now.AddDays(365), Currency = PaymentCurrency.CZK, Group = PaymentGroup.Family, Frequency = PersonalFinance.Entity.Frequency.None, LastUse = DateTime.Now, User = UserViewModel.loggedUser }; ScheduledItems.Add(p); schsrv.AddScheduledItem(p); Selected = p; } public void DeleteScheduledAction() { ScheduledPayment p = Selected as ScheduledPayment; ScheduledItems.Remove(p); schsrv.DeleteScheduledItem(p); } } }