Skip to content

Commit 3609f37

Browse files
committed
collectionview added loadmore.
1 parent 2792fa3 commit 3609f37

File tree

4 files changed

+189
-333
lines changed

4 files changed

+189
-333
lines changed

MyFinance/Enums/DateFilter.cs

+9
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
namespace MyFinance.Enums;
2+
3+
public enum DateFilter
4+
{
5+
Weekly,
6+
Monthly,
7+
SixMonthly,
8+
Yearly
9+
}
+8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
namespace MyFinance.Enums;
2+
3+
public enum OperationTypeFilter
4+
{
5+
None,
6+
Income,
7+
Expense
8+
}

MyFinance/ViewModels/ItemsPageViewModel.cs

+52-81
Original file line numberDiff line numberDiff line change
@@ -2,40 +2,35 @@
22

33
public partial class ItemsPageViewModel : BaseViewModel
44
{
5-
[ObservableProperty]
6-
private List<OperatonItemsVM> allItems = new();
7-
8-
[ObservableProperty]
9-
private List<OperatonItemsVM> inItems = new();
5+
static List<OperatonItemsVM> AllItems = new List<OperatonItemsVM>();
106

117
[ObservableProperty]
12-
private List<OperatonItemsVM> outItems = new();
8+
private List<OperatonItemsVM> items = new();
139

1410
[ObservableProperty]
1511
private List<int> loadingItems = new() { 0,0,0,0,0,0,0,0,0,0,0 };
1612

1713
[ObservableProperty]
18-
private bool isLoadingAllItems = false;
14+
private bool isLoadingItems = false;
1915

2016
[ObservableProperty]
21-
private bool isLoadingInItems = false;
17+
private bool isRefreshing = false;
2218

2319
[ObservableProperty]
24-
private bool isLoadingOutItems = false;
20+
private int operationType = 0;
2521

2622
[ObservableProperty]
27-
private int allIType = 0;
23+
private int dateType = 3;
2824

2925
[ObservableProperty]
30-
private int inIType = 0;
26+
private bool isShowPopup = false;
3127

32-
[ObservableProperty]
33-
private int outIType = 0;
28+
private int index = 0;
3429

3530
public ItemsPageViewModel()
3631
{
3732
Random random = new Random();
38-
for (int i = 1; i <= 40; i++)
33+
for (int i = 1; i <= 500; i++)
3934
{
4035
var amount = random.Next(1, 10000);
4136
AllItems.Add(
@@ -44,98 +39,74 @@ public ItemsPageViewModel()
4439
Id = Guid.NewGuid(),
4540
Icon = amount % 2 == 0 ? "loss.png" : "profits.png",
4641
Color = amount % 2 == 0 ? Red : Green,
47-
Date = DateTime.Now.AddDays(-(amount % 30)).ToString("dd.MM.yyyy HH:mm"),
42+
Date = DateTime.Now.AddDays(-(amount % 200)).ToString("dd.MM.yyyy HH:mm"),
4843
Title = amount % 2 == 0 ? "Borç ödendi" : "Ödeme Alındı",
4944
Description = amount % 2 == 0 ? "Ödemeler yapıldı" : "Yaka parası alındı.",
5045
Amount = $"{amount} ₺"
5146
}
5247
);
5348
}
54-
AllItems = AllItems.OrderByDescending(e => DateTime.Parse(e.Date)).ToList();
55-
InItems = AllItems.Where(e => e.Color == Green).ToList();
56-
OutItems = AllItems.Where(e => e.Color == Red).ToList();
49+
50+
Items = AllItems.Take(15).ToList();
5751
}
5852

5953

60-
//[RelayCommand]
61-
public List<OperatonItemsVM> GetItems(DateTime date, bool? isIncome = null)
54+
public List<OperatonItemsVM> GetItems(DateTime date)
6255
{
63-
IsLoadingAllItems = true;
64-
65-
List<OperatonItemsVM> tempList = new List<OperatonItemsVM>();
66-
Random random = new Random();
67-
for (int i = 1; i <= 70; i++)
68-
{
69-
var amount = random.Next(1, 10000);
70-
tempList.Add(
71-
new OperatonItemsVM
72-
{
73-
Id = Guid.NewGuid(),
74-
Icon = amount % 2 == 0 ? "loss.png" : "profits.png",
75-
Color = amount % 2 == 0 ? Red : Green,
76-
Date = DateTime.Now.AddDays(-(amount % 30)).ToString("dd.MM.yyyy HH:mm"),
77-
Title = amount % 2 == 0 ? "Borç ödendi" : "Ödeme Alındı",
78-
Description = amount % 2 == 0 ? "Ödemeler yapıldı" : "Yaka parası alındı.",
79-
Amount = $"{amount} ₺"
80-
}
81-
);
82-
}
83-
tempList = tempList
84-
.Where(e => DateTime.Parse(e.Date) >= date && isIncome.HasValue ? isIncome.Value ? e.Color == Green : e.Color == Red : true)
56+
var tempList = AllItems
57+
.Where(e => DateTime.Parse(e.Date) >= date && OperationType == 0 ? true : OperationType == 1 ? e.Color == Green : e.Color == Red)
8558
.OrderByDescending(e => DateTime.Parse(e.Date))
59+
.Skip(index)
60+
.Take(15)
8661
.ToList();
8762

8863
return tempList;
8964
}
9065

9166
[RelayCommand]
92-
public async Task AllItemTypeChanged()
67+
public async Task ApplyFilter()
9368
{
94-
IsLoadingAllItems = true;
95-
await Task.Delay(3500);
96-
if (AllIType == 0)
97-
AllItems = GetItems(DateTime.Now.AddDays(-7));
98-
else if (AllIType == 1)
99-
AllItems = GetItems(DateTime.Now.AddMonths(-1));
100-
else if (AllIType == 2)
101-
AllItems = GetItems(DateTime.Now.AddMonths(-6));
102-
else if (AllIType == 3)
103-
AllItems = GetItems(DateTime.Now.AddYears(-1));
104-
105-
IsLoadingAllItems = false;
69+
IsLoadingItems = true;
70+
index = 0;
71+
72+
if (DateType == 0)
73+
Items = GetItems(DateTime.Now.AddDays(-7));
74+
else if (DateType == 1)
75+
Items = GetItems(DateTime.Now.AddMonths(-1));
76+
else if (DateType == 2)
77+
Items = GetItems(DateTime.Now.AddMonths(-6));
78+
else if (DateType == 3)
79+
Items = GetItems(DateTime.Now.AddYears(-1));
80+
81+
IsShowPopup = false;
82+
await Task.Delay(1500);
83+
84+
IsLoadingItems = false;
10685
}
10786

10887
[RelayCommand]
109-
public async Task InItemTypeChanged()
88+
public async Task LoadMore()
11089
{
111-
IsLoadingInItems = true;
112-
await Task.Delay(3500);
113-
if (InIType == 0)
114-
InItems = GetItems(DateTime.Now.AddDays(-7), true);
115-
else if (InIType == 1)
116-
InItems = GetItems(DateTime.Now.AddMonths(-1), true);
117-
else if (InIType == 2)
118-
InItems = GetItems(DateTime.Now.AddMonths(-6), true);
119-
else if (InIType == 3)
120-
InItems = GetItems(DateTime.Now.AddYears(-1), true);
121-
122-
IsLoadingInItems = false;
90+
if (index != 0)
91+
IsRefreshing = true;
92+
93+
if (DateType == 0)
94+
Items.AddRange(GetItems(DateTime.Now.AddDays(-7)));
95+
else if (DateType == 1)
96+
Items.AddRange(GetItems(DateTime.Now.AddMonths(-1)));
97+
else if (DateType == 2)
98+
Items.AddRange(GetItems(DateTime.Now.AddMonths(-6)));
99+
else if (DateType == 3)
100+
Items.AddRange(GetItems(DateTime.Now.AddYears(-1)));
101+
102+
//await Task.Delay(1500);
103+
index += 15;
104+
IsRefreshing = false;
123105
}
124106

125107
[RelayCommand]
126-
public async Task OutItemTypeChanged()
108+
public async Task ShowFilterPopup()
127109
{
128-
IsLoadingOutItems = true;
129-
await Task.Delay(3500);
130-
if (OutIType == 0)
131-
OutItems = GetItems(DateTime.Now.AddDays(-7), false);
132-
else if (OutIType == 1)
133-
OutItems = GetItems(DateTime.Now.AddMonths(-1), false);
134-
else if (OutIType == 2)
135-
OutItems = GetItems(DateTime.Now.AddMonths(-6), false);
136-
else if (OutIType == 3)
137-
OutItems = GetItems(DateTime.Now.AddYears(-1), false);
138-
139-
IsLoadingOutItems = false;
110+
IsShowPopup = true;
140111
}
141112
}

0 commit comments

Comments
 (0)