public async Task <BudgetItemViewModel> GetBudgetItemVM(int itemId, BudgetItemType itemType) { BudgetItemViewModel vm = new BudgetItemViewModel(this.dbFilePath); await vm.LoadVMAsync(itemId, itemType); return(vm); }
public void AmountNegative_ExpectPositiveString() { decimal value = -100m; var viewModel = new BudgetItemViewModel(new BudgetItem("id", "name", value, BudgetItemType.Debt)); string expectedValue = Math.Abs(value).ToCurrencyString(); viewModel.Amount.Should().Be(expectedValue); }
public void Constructor_ValidModel_ExpectPresentation() { var budgetItem = new BudgetItem("id", "name", 100.42m, BudgetItemType.Debt); var viewModel = new BudgetItemViewModel(budgetItem); viewModel.Name.Should().Be(budgetItem.Name); viewModel.Amount.Should().Be(budgetItem.Amount.ToCurrencyString()); }
protected async void OnNewItemClicked(object sender, EventArgs e) { BudgetItemEdit editor = new BudgetItemEdit(); BudgetItemViewModel newItem = await vm.AddBudgetItemAsync(); editor.BindingContext = vm.SelectedBudgetItem; await Navigation.PushAsync(editor); }
public void Constructor_ValidModel_ExpectPresentation() { BudgetItem budgetItem = new BudgetItem("test name", BudgetItemType.Debt, 123.45m); BudgetItemViewModel viewModel = new BudgetItemViewModel(budgetItem); viewModel.Name.Should().Be(budgetItem.Name); viewModel.Amount.Should().Be(budgetItem.Amount.ToCurrencyString()); }
public void Amount_NegativeInBudgetItem_ExpectPositiveInString() { decimal value = -4325.32m; BudgetItemViewModel viewModel = new BudgetItemViewModel(new BudgetItem("test name", amount: value)); string expectedValue = Math.Abs(value).ToCurrencyString(); viewModel.Amount.Should().Be(expectedValue); }
private void UserControl_Loaded(object sender, RoutedEventArgs e) { _vm = DataContext as BudgetItemViewModel; if (_vm == null) { return; } _vm.PropertyChanged += _vm_PropertyChanged; }
static BudgetItemViewModel formBudgetItemVM(BudgetItemViewModel item, IEnumerable <BudgetItemViewModel> allItems) { item.Items = new ObservableCollection <BudgetItemViewModel>(); foreach (var ch in allItems.Where(i => i.IdParent == item.Id).OrderBy(_OrderByDefaultExpression.Compile())) { var chVM = formBudgetItemVM(ch, allItems); item.Items.Add(chVM); } return(item); }
public void Name_Set_ExpectValueAsString() { BudgetItem budgetItem = new BudgetItem("test name"); BudgetItemViewModel viewModel = new BudgetItemViewModel(budgetItem); string newName = "new name"; viewModel.Name = newName; viewModel.Name.Should().Be(newName); }
public void Amount_Set_ExpectValueAsString() { BudgetItem budgetItem = new BudgetItem("test name"); BudgetItemViewModel viewModel = new BudgetItemViewModel(budgetItem); decimal value = 4325.32m; viewModel.Amount = value.ToCurrencyString(); viewModel.Amount.Should().Be(value.ToCurrencyString()); }
//public async void OnBackClicked(object sender, EventArgs e) //{ // await Navigation.PopModalAsync(); //} public async void btnNewBudgetItem_Clicked(object sender, EventArgs eventArgs) { if (vm == null) { vm = this.BindingContext as BudgetCategoryViewModel; } BudgetItemEdit editor = new BudgetItemEdit(); BudgetItemViewModel newItem = await vm.AddBudgetItemAsync(); editor.BindingContext = newItem; await Navigation.PushAsync(editor); //await Navigation.PushModalAsync(editor); }
public void Name_Set_ExpectPropertyChanged() { var budgetItem = new BudgetItem("id", "name"); var viewModel = new BudgetItemViewModel(budgetItem); string newName = "new name"; bool wasChanged = false; viewModel.PropertyChanged += (sender, args) => { if (args.PropertyName == nameof(viewModel.Name)) { wasChanged = true; } }; viewModel.Name = newName; wasChanged.Should().BeTrue(); }
public void Amount_Set_ExpectPropertyChanged() { var budgetItem = new BudgetItem("id", "name"); var viewModel = new BudgetItemViewModel(budgetItem); decimal newAmount = -220m; bool wasChanged = false; viewModel.PropertyChanged += (sender, args) => { if (args.PropertyName == nameof(viewModel.Amount)) { wasChanged = true; } }; viewModel.Amount = newAmount.ToCurrencyString(); wasChanged.Should().BeTrue(); }
public void Name_Set_ExpectPropertyChanged() { BudgetItem budgetItem = new BudgetItem("test name"); BudgetItemViewModel viewModel = new BudgetItemViewModel(budgetItem); string newName = "new name"; bool wasChanged = false; viewModel.PropertyChanged += (o, e) => { if (e.PropertyName == nameof(viewModel.Name)) { wasChanged = true; } }; viewModel.Name = newName; wasChanged.Should().BeTrue(); }
public void Amount_Set_ExpectPropertyChanged() { BudgetItem budgetItem = new BudgetItem("test name"); BudgetItemViewModel viewModel = new BudgetItemViewModel(budgetItem); decimal newAmount = -4325.32m; bool wasChanged = false; viewModel.PropertyChanged += (o, e) => { if (e.PropertyName == nameof(viewModel.Amount)) { wasChanged = true; } }; viewModel.Amount = newAmount.ToCurrencyString(); wasChanged.Should().BeTrue(); }
protected async override void OnAppearing() { base.OnAppearing(); vm = this.BindingContext as BudgetItemViewModel; }
protected override void OnDisappearing() { base.OnDisappearing(); vm = null; }
/// <summary> /// Получить доступные групповые статьи в иерархическом виде, в которые можно назначить родительскими для указанной статьи /// Список всех статей BudgetItemVMList должен быть заранее загружен и иерархически структурирован в BudgetItemTreeVMList /// </summary> public ObservableCollection <BudgetItemViewModel> GetGroupingBudgetItemTreeVMAvailableForChildBudgetItem(BudgetItemViewModel childItem) { if (BudgetItemVMList == null) { throw new Exception("BudgetItemVMList was not load!"); } if (BudgetItemTreeVMList == null) { throw new Exception("BudgetItemTreeVMList was not load!"); } GroupingBudgetItemTreeVMList = new ObservableCollection <BudgetItemViewModel>(); bool needExcludeChildItem = childItem != null && childItem.IsGroupingItem && childItem.Id > 0; foreach (var item in BudgetItemVMList.Where(i => i.IsGroupingItem)) { item.GroupItems = new ObservableCollection <BudgetItemViewModel>(); if (item.Items == null) { continue; } var onlyGroupItems = item.Items.Where(i => i.IsGroupingItem); if (needExcludeChildItem) { onlyGroupItems = onlyGroupItems.Where(i => i.Id != childItem.Id); } foreach (var i in onlyGroupItems.OrderBy(_OrderByDefaultExpression.Compile())) { item.GroupItems.Add(i); } } var tree = BudgetItemTreeVMList.Where(i => i.IsGroupingItem); if (needExcludeChildItem) { tree = tree.Where(i => i.Id != childItem.Id); } GroupingBudgetItemTreeVMList = new ObservableCollection <BudgetItemViewModel>(); foreach (var item in tree.OrderBy(_OrderByDefaultExpression.Compile())) { GroupingBudgetItemTreeVMList.Add(item); } return(GroupingBudgetItemTreeVMList); }