コード例 #1
0
        protected void SortExpenses(string field = "name", bool reverse = false)
        {
            field = field.ToLower();
            switch (field)
            {
            case "importance":
                FilteredExpenses.Sort((expense, other) => expense.Importance.CompareTo(other.Importance));
                break;

            case "category":
                FilteredExpenses.Sort((expense, other) => expense.Category.CompareTo(other.Category));
                break;

            case "cost":
                FilteredExpenses.Sort((expense, other) => expense.Cost.CompareTo(other.Cost));
                break;

            case "count":
                FilteredExpenses.Sort((expense, other) => expense.Cost.CompareTo(other.Cost));
                break;

            case "total cost":
                FilteredExpenses.Sort(((expense, other) => expense.TotalCost.CompareTo(other.TotalCost)));
                break;

            default:
                FilteredExpenses.Sort((expense, other) => expense.Name.CompareTo(other.Name));
                break;
            }
            if (reverse)
            {
                FilteredExpenses.Reverse();
            }
        }
コード例 #2
0
        protected void FilterExpenses()
        {
            FilteredExpenses.Clear();

            foreach (var expense in Expenses)
            {
                if (!string.IsNullOrEmpty(Filter.Name) && !expense.Name.Contains(Filter.Name))
                {
                    continue;
                }

                if (!string.IsNullOrEmpty(Filter.Category) && !expense.Category.Contains(Filter.Category))
                {
                    continue;
                }

                if (expense.Importance == 0 && !Filter.NotImportant)
                {
                    continue;
                }

                if (expense.Importance == 1 && !Filter.Important)
                {
                    continue;
                }

                if (expense.Importance == 2 && !Filter.VeryImportant)
                {
                    continue;
                }

                if (expense.Cost < Filter.CostLowerBound)
                {
                    continue;
                }

                if (Filter.CostUpperBound > 0 && (expense.Cost > Filter.CostUpperBound))
                {
                    continue;
                }

                FilteredExpenses.Add(expense);
            }

            IsFilterFormOpen = false;
        }
コード例 #3
0
 protected int GetFilteredCosts()
 {
     return(FilteredExpenses.Sum(expense => expense.TotalCost));
 }
コード例 #4
0
 protected void ClearFilter()
 {
     Filter = new ExpenseFilter();
     FilteredExpenses.Clear();
     FilteredExpenses.AddRange(Expenses);
 }