コード例 #1
0
        private void btnDelete_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                Payment payment = (Payment)lstPayments.SelectedItem;

                MessageBoxResult result = MessageBox.Show(
                    string.Format(Localization.Language.ConfirmDeletetingPaymentX, payment.DisplayName), Localization.Language.ConfirmDeleteting,
                    MessageBoxButton.YesNo, MessageBoxImage.Question, MessageBoxResult.No);

                if (result == MessageBoxResult.Yes)
                {
                    if (payment.Id != Guid.Empty)
                    {
                        if (PaymentsEntering.DeletePayment(payment) > 0)
                        {
                            payment.Status = Status.Deleted;
                            ((ObservableCollection <Payment>)lstPayments.DataContext).Remove(payment);
                        }
                    }
                    else // When not yet saved will be deleted ie. Id = Guid.Empty
                    {
                        ((ObservableCollection <Payment>)lstPayments.DataContext).Remove(payment);
                    }

                    lbMessages.Content = Localization.Language.PaymentIsDeleted;
                }
            }
            catch (Exception ex)
            {
                lbMessages.Content = ex.Message;
            }
        }
コード例 #2
0
        private void btnSave_Click(object sender, RoutedEventArgs e)
        {
            if (spPayment.DataContext == null)
            {
                lbMessages.Content = Localization.Language.CannotSavePaymentNotSelectedMessage;
                return;
            }

            Payment payment = (Payment)spPayment.DataContext;

            if (payment == null)
            {
                return;
            }

            try
            {
                if (HasDetailsErrors(payment))
                {
                    return;                    // Check for field values
                }
                // Check that Payment with the same name is not in the collection already
                Payment found = ((ObservableCollection <Payment>)lstPayments.DataContext).FirstOrDefault(p => p.DisplayName == payment.DisplayName && p.Id != payment.Id);

                if (found != null)
                {
                    MessageBox.Show(Localization.Language.SameNamePaymentListedAlready);
                    throw new Exception(Localization.Language.SameNamePaymentListedAlready);
                }

                if (cboCategory.SelectedValue != null)
                {
                    payment.CategoryId = (Guid)cboCategory.SelectedValue;
                }
                if (cboSubCategory.SelectedValue != null)
                {
                    payment.SubCategoryId = (Guid)cboSubCategory.SelectedValue;
                }

                PaymentsEntering.LoggedUser = LoggedUser;

                if (payment.Id != Guid.Empty)
                {
                    PaymentsEntering.UpdatePayment(payment);
                    lbMessages.Content = string.Format(Localization.Language.PaymentsXDetailsAreUpdated, payment.DisplayName);
                }
                else
                {
                    PaymentsEntering.CreatePayment(payment);
                    ((ObservableCollection <Payment>)lstPayments.DataContext).Add(payment);
                    lstPayments.SelectedIndex = lstPayments.Items.IndexOf(payment);
                    lstPayments.ScrollIntoView(lstPayments.SelectedItem);
                    lbMessages.Content = string.Format(Localization.Language.NewPaymentXIsSaved, payment.DisplayName);
                }
            }
            catch (Exception ex)
            {
                lbMessages.Content = string.Format(Localization.Language.CannotSaveBecauseX, ex.Message);
            }
        }
コード例 #3
0
        private void btnRefresh_Click(object sender, RoutedEventArgs e)
        {
            string message = "";

            try
            {
                PaymentsEntering.RefreshPayments(LoggedUser);
                lstPayments.DataContext = PaymentsEntering.PaymentList;
                message = string.Format(Localization.Language.PaymentListUpdatedAtX, DateTime.Now);
            }
            catch (Exception ex)
            {
                message = ex.Message;
                MessageBox.Show(ex.Message);
            }
            finally
            {
                lbMessages.Content = message;
            }
        }
コード例 #4
0
        private void btnGet_Click(object sender, RoutedEventArgs e)
        {
            //var options = new SearchOptions
            //{
            //  StartDate = dtpDate1.SelectedDate,
            //  EndDate = dtpDate2.SelectedDate,
            //  CategoryId = (Guid?)cboCategory.SelectedValue,
            //  SubCategoryId = (Guid?)cboSubCategory.SelectedValue,
            //  UserId = LoggedUser.Id
            //};

            PaymentsEntering.RefreshPayments(LoggedUser);
            localData = PaymentsEntering.PaymentList;

            // View for filttering
            view = CollectionViewSource.GetDefaultView(localData);
            CollectionView view2 = new ListCollectionView(localData);

            // Filter payments according selected period, category and subcategory
            view.Filter  = Filtering;
            view2.Filter = Filtering;

            dgReports.DataContext = localData;

            lbMessages.Content = string.Format(Localization.Language.DataRetrievedDetailsMessage,
                                               ((DateTime)dtpDate1.SelectedDate).ToShortDateString(),
                                               ((DateTime)dtpDate2.SelectedDate).ToShortDateString(),
                                               cboCategory.Text,
                                               cboSubCategory.Text
                                               );

            double sum = 0;

            foreach (var item in view2)
            {
                sum += ((Payment)item).Amount;
            }

            lbRows.Content  = string.Format(Localization.Language.RowsCountX, view2.Count);
            lbTotal.Content = string.Format(Localization.Language.RowsSumX, string.Format("{0:C}", sum));
        }