Exemplo n.º 1
0
        private void LoadPayments()
        {
            //Refresh balance control with the current account
            BalanceViewModel.UpdateBalanceCommand.Execute();

            RelatedPayments = new ObservableCollection <PaymentViewModel>(paymentRepository
                                                                          .GetList(x => (x.ChargedAccountId == AccountId) || (x.TargetAccountId == AccountId))
                                                                          .OrderByDescending(x => x.Date)
                                                                          .ToList());

            foreach (var payment in RelatedPayments)
            {
                payment.CurrentAccountId = AccountId;
            }

            var dailyList = DateListGroup <PaymentViewModel> .CreateGroups(RelatedPayments,
                                                                           CultureInfo.CurrentUICulture,
                                                                           s => s.Date.ToString("D", CultureInfo.InvariantCulture),
                                                                           s => s.Date,
                                                                           itemClickCommand : EditPaymentCommand, itemLongClickCommand : OpenContextMenuCommand);

            Source = new ObservableCollection <DateListGroup <DateListGroup <PaymentViewModel> > >(
                DateListGroup <DateListGroup <PaymentViewModel> > .CreateGroups(dailyList, CultureInfo.CurrentUICulture,
                                                                                s =>
            {
                var date = Convert.ToDateTime(s.Key);
                return(date.ToString("MMMM", CultureInfo.InvariantCulture) + " " + date.Year);
            },
                                                                                s => Convert.ToDateTime(s.Key)));
        }
Exemplo n.º 2
0
        private void LoadPayments()
        {
            EditCommand = null;
            //Refresh balance control with the current account
            BalanceViewModel.UpdateBalanceCommand.Execute();

            RelatedPayments = new ObservableCollection <PaymentViewModel>(paymentRepository
                                                                          .GetList(x => (x.ChargedAccountId == AccountId) || (x.TargetAccountId == AccountId))
                                                                          .OrderByDescending(x => x.Date)
                                                                          .ToList());

            foreach (var payment in RelatedPayments)
            {
                payment.CurrentAccountId = AccountId;
            }

            Source = new ObservableCollection <DateListGroup <PaymentViewModel> >(
                DateListGroup <PaymentViewModel> .CreateGroups(RelatedPayments,
                                                               CultureInfo.CurrentUICulture,
                                                               s => s.Date.ToString("MMMM", CultureInfo.InvariantCulture) + " " + s.Date.Year,
                                                               s => s.Date, true));

            //We have to set the command here to ensure that the selection changed event is triggered earlier
            EditCommand = new MvxCommand <PaymentViewModel>(Edit);
        }
Exemplo n.º 3
0
        private async void LoadPayments()
        {
            //Refresh balance control with the current account
            BalanceViewModel.UpdateBalanceCommand.Execute();

            var account = await accountService.GetById(AccountId);

            Title = account.Data.Name;

            RelatedPayments = new ObservableCollection <PaymentViewModel>(
                account.Data.ChargedPayments
                .Concat(account.Data.TargetedPayments)
                .OrderByDescending(x => x.Date)
                .Select(x => new PaymentViewModel(new Payment(x))));

            foreach (var payment in RelatedPayments)
            {
                payment.CurrentAccountId = AccountId;
            }

            var dailyList = DateListGroup <PaymentViewModel> .CreateGroups(RelatedPayments,
                                                                           CultureInfo.CurrentUICulture,
                                                                           s => s.Date.ToString("D", CultureInfo.InvariantCulture),
                                                                           s => s.Date,
                                                                           itemClickCommand : EditPaymentCommand, itemLongClickCommand : OpenContextMenuCommand);

            Source = new ObservableCollection <DateListGroup <DateListGroup <PaymentViewModel> > >(
                DateListGroup <DateListGroup <PaymentViewModel> > .CreateGroups(dailyList, CultureInfo.CurrentUICulture,
                                                                                s =>
            {
                var date = Convert.ToDateTime(s.Key);
                return(date.ToString("MMMM", CultureInfo.InvariantCulture) + " " + date.Year);
            },
                                                                                s => Convert.ToDateTime(s.Key)));
        }
        private void PaymentListView_OnLoaded(object sender, RoutedEventArgs e)
        {
            if (PaymentListView.Items == null || !PaymentListView.Items.Any())
            {
                return;
            }

            // Select first group with a cleared payment in it
            DateListGroup <PaymentViewModel> selectedGroup = PaymentListView
                                                             .Items.Select(x => (DateListGroup <PaymentViewModel>)x)
                                                             .FirstOrDefault(group => group.Any(x => x.IsCleared));

            if (selectedGroup == null)
            {
                return;
            }

            PaymentListView.ScrollIntoView(selectedGroup, ScrollIntoViewAlignment.Leading);
        }