Skip to content

Commit 1214075

Browse files
committed
Done something
1 parent d147764 commit 1214075

7 files changed

Lines changed: 58 additions & 56 deletions

File tree

CutCode/DataBase/DataBaseManager.cs

Lines changed: 33 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ namespace CutCode
1313
public class DataBaseManager : IDataBase
1414
{
1515
public ObservableCollection<CodeBoxModel> AllCodes { get; set; }
16+
public ObservableCollection<CodeBoxModel> FavCodes { get; set; }
1617
private SQLiteConnection _db;
1718
private readonly IThemeService themeService;
1819
public DataBaseManager(IThemeService _themeService)
@@ -30,6 +31,7 @@ public DataBaseManager(IThemeService _themeService)
3031
{
3132
AllCodes.Add(new CodeBoxModel(c.Id, c.title, c.desc, c.isFav, c.lang, c.code, c.timestamp, themeService));
3233
}
34+
PropertyChanged();
3335
}
3436

3537
private int GetIndex(CodeBoxModel code)
@@ -43,9 +45,20 @@ private int GetIndex(CodeBoxModel code)
4345
return ind;
4446
}
4547

46-
public event EventHandler PropertyChanged;
47-
public void AllCodesPropertyChanged() => PropertyChanged?.Invoke(this, EventArgs.Empty);
48-
48+
public event EventHandler AllCodesUpdated;
49+
public event EventHandler FavCodesUpdated;
50+
public void PropertyChanged()
51+
{
52+
var lst = new ObservableCollection<CodeBoxModel>();
53+
foreach (var code in AllCodes)
54+
{
55+
if (code.isFav) lst.Add(code);
56+
}
57+
FavCodes = lst;
58+
59+
AllCodesUpdated.Invoke(AllCodes, EventArgs.Empty);
60+
FavCodesUpdated.Invoke(FavCodes, EventArgs.Empty);
61+
}
4962

5063
public CodeBoxModel AddCode(string title, string desc, string code, string langType)
5164
{
@@ -65,7 +78,7 @@ public CodeBoxModel AddCode(string title, string desc, string code, string langT
6578
int id = (int)SQLite3.LastInsertRowid(_db.Handle);
6679
var codeModel = new CodeBoxModel(id, title, desc, false, langType, code, time, themeService);
6780
AllCodes.Add(codeModel);
68-
AllCodesPropertyChanged();
81+
PropertyChanged();
6982

7083
return codeModel;
7184
}
@@ -85,7 +98,7 @@ public bool EditCode(CodeBoxModel code)
8598
_db.Update(dbCode);
8699
});
87100
AllCodes[GetIndex(code)] = code;
88-
AllCodesPropertyChanged();
101+
PropertyChanged();
89102
}
90103
}
91104
catch
@@ -101,7 +114,7 @@ public bool DelCode(CodeBoxModel code)
101114
{
102115
_db.Delete<CodeTable>(code.id);
103116
AllCodes.Remove(code);
104-
AllCodesPropertyChanged();
117+
PropertyChanged();
105118
}
106119
catch
107120
{
@@ -115,32 +128,35 @@ public bool DelCode(CodeBoxModel code)
115128
"Alphabet", "Date", "All languages", "Python", "C++", "C#", "CSS", "Dart", "Golang",
116129
"Html", "Java", "Javascript", "Kotlin", "Php", "C", "Ruby", "Rust","Sql", "Swift"
117130
};
118-
public void OrderCode(string order)
131+
132+
public ObservableCollection<CodeBoxModel> OrderCode(string order, ObservableCollection<CodeBoxModel> codes)
119133
{
120134
int ind = AllOrderKind.IndexOf(order);
121135
ObservableCollection<CodeBoxModel> lst;
122136

137+
var currentCodes = codes;
138+
123139
if (ind > 2)
124140
{
125141
lst = new ObservableCollection<CodeBoxModel>();
126-
foreach (var code in AllCodes) if (code.langType == order) lst.Add(code);
142+
foreach (var code in currentCodes) if (code.langType == order) lst.Add(code);
127143
}
128144
else
129145
{
130-
if (ind == 0) lst = new ObservableCollection<CodeBoxModel>(AllCodes.OrderBy(x => x.title).ToList());
131-
else if(ind == 1) lst = new ObservableCollection<CodeBoxModel>(AllCodes.OrderBy(x => x.timestamp).ToList());
146+
if (ind == 0) lst = new ObservableCollection<CodeBoxModel>(currentCodes.OrderBy(x => x.title).ToList());
147+
else if(ind == 1) lst = new ObservableCollection<CodeBoxModel>(currentCodes.OrderBy(x => x.timestamp).ToList());
132148
else
133149
{
134-
var codes = _db.Query<CodeTable>("SELECT * From CodeTable");
150+
var dbcodes = _db.Query<CodeTable>("SELECT * From CodeTable");
135151
lst = new ObservableCollection<CodeBoxModel>();
136-
foreach(var c in codes)
152+
foreach(var c in dbcodes)
137153
{
138154
lst.Add(new CodeBoxModel(c.Id, c.title, c.desc, c.isFav, c.lang, c.code, c.timestamp, themeService));
139155
}
140156
}
141157
}
142-
AllCodes = lst;
143-
AllCodesPropertyChanged();
158+
159+
return lst;
144160
}
145161

146162
public bool FavModify(CodeBoxModel code)
@@ -156,7 +172,7 @@ public bool FavModify(CodeBoxModel code)
156172
_db.Update(dbCode);
157173
});
158174
AllCodes[GetIndex(code)] = code;
159-
AllCodesPropertyChanged();
175+
PropertyChanged();
160176
}
161177
}
162178
catch
@@ -166,9 +182,9 @@ public bool FavModify(CodeBoxModel code)
166182
return true;
167183
}
168184

169-
public void SearchCode(string text)
185+
public ObservableCollection<CodeBoxModel> SearchCode(string text, string from, ObservableCollection<CodeBoxModel> codes)
170186
{
171-
187+
return codes;
172188
}
173189
}
174190
}

CutCode/Interfaces/IDataBase.cs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,14 @@ namespace CutCode
1010
public interface IDataBase
1111
{
1212
ObservableCollection<CodeBoxModel> AllCodes { get; set; }
13-
event EventHandler PropertyChanged;
13+
ObservableCollection<CodeBoxModel> FavCodes { get; set; }
14+
event EventHandler AllCodesUpdated;
15+
event EventHandler FavCodesUpdated;
1416
CodeBoxModel AddCode(string title, string desc, string code, string langType);
1517
bool EditCode(CodeBoxModel code);
1618
bool DelCode(CodeBoxModel code);
17-
void OrderCode(string order);
19+
ObservableCollection<CodeBoxModel> OrderCode(string order, ObservableCollection<CodeBoxModel> codes);
1820
bool FavModify(CodeBoxModel code);
19-
void SearchCode(string text);
21+
ObservableCollection<CodeBoxModel> SearchCode(string text, string from, ObservableCollection<CodeBoxModel> codes);
2022
}
2123
}

CutCode/ViewModels/AddViewModel.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,7 @@ public void SaveCommand()
146146
public void CancelCommand()
147147
{
148148
pageService.remoteChange = "Home";
149-
pageService.Page = new HomeViewModel(themeService, pageService, database);
149+
pageService.Page = MainViewModel.Pages[0];
150150

151151
title = ""; desc = ""; code = ""; CurrentLang = AllLangs[0];
152152
}

CutCode/ViewModels/CodeViewModel.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -259,7 +259,7 @@ public void DelCommand()
259259
BackCommand();
260260
}
261261

262-
public void BackCommand() => pageService.Page = new HomeViewModel(themeService, pageService, database);
262+
public void BackCommand() => pageService.Page = MainViewModel.Pages[0];
263263

264264
private string BeforeEditTitle;
265265
private string BeforeEditDesc;

CutCode/ViewModels/FavViewModel.cs

Lines changed: 5 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -25,23 +25,11 @@ public FavViewModel(IThemeService _themeService, IPageService _pageService, IDat
2525
pageService = _pageService;
2626

2727
database = _database;
28-
database.PropertyChanged += DataBaseUpdated;
29-
30-
AllCodes = new ObservableCollection<CodeBoxModel>();
31-
foreach(var code in DataBaseStatic.AllCodes)
32-
{
33-
if (code.isFav) AllCodes.Add(code);
34-
}
28+
AllCodes = database.FavCodes;
29+
database.FavCodesUpdated += FavCodesUpdated;
3530
}
3631

37-
private void DataBaseUpdated(object sender, EventArgs e)
38-
{
39-
AllCodes = new ObservableCollection<CodeBoxModel>();
40-
foreach (var code in DataBaseStatic.AllCodes)
41-
{
42-
if (code.isFav) AllCodes.Add(code);
43-
}
44-
}
32+
private void FavCodesUpdated(object sender, EventArgs e) => AllCodes = database.FavCodes;
4533

4634
private void ThemeChanged(object sender, EventArgs e)
4735
{
@@ -98,12 +86,13 @@ public bool IsSearched
9886
public void SearchCommand(string text)
9987
{
10088
IsSearched = false;
101-
database.SearchCode(text);
89+
AllCodes = database.SearchCode(text, "Fav", AllCodes);
10290
IsSearched = true;
10391
}
10492

10593
public void CodeSelectCommand(CodeBoxModel code)
10694
{
95+
pageService.remoteChange = "Home";
10796
pageService.Page = new CodeViewModel(themeService, pageService, database, code);
10897
}
10998
}

CutCode/ViewModels/HomeViewModel.cs

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -23,12 +23,12 @@ public HomeViewModel(IThemeService _themeService, IPageService _pageService, IDa
2323
pageService = _pageService;
2424

2525
database = _dataBase;
26-
database.PropertyChanged += DataBaseUpdated;
26+
database.AllCodesUpdated += AllCodesUpdated;
2727

2828
SetAppearance();
2929
IsSearched = false;
3030

31-
AllCodes = DataBaseStatic.AllCodes;
31+
AllCodes = database.AllCodes;
3232

3333
AllLangs = new ObservableCollection<string>()
3434
{
@@ -41,7 +41,7 @@ private void ThemeChanged(object sender, EventArgs e)
4141
{
4242
SetAppearance();
4343
}
44-
private void DataBaseUpdated(object sender, EventArgs e) => AllCodes = database.AllCodes;
44+
private void AllCodesUpdated(object sender, EventArgs e) => AllCodes = database.AllCodes;
4545

4646
private void SetAppearance()
4747
{
@@ -53,7 +53,7 @@ private void SetAppearance()
5353
comboboxBackgroundColor = themeService.IsLightTheme ? ColorCon.Convert("#E3E5E8") : ColorCon.Convert("#202225");
5454
}
5555

56-
public IList<CodeBoxModel> AllCodes { get; set; }
56+
public ObservableCollection<CodeBoxModel> AllCodes { get; set; }
5757
public IList<string> AllLangs { get; set; }
5858
public IList<string> Sorts { get; set; }
5959

@@ -120,8 +120,8 @@ public string CurrentSort1
120120
get => _CurrentSort1;
121121
set
122122
{
123-
ComboBoxItemSelected(value);
124123
SetAndNotify(ref _CurrentSort1, value);
124+
ComboBoxItemSelected(value);
125125
}
126126
}
127127

@@ -131,17 +131,21 @@ public string CurrentSort2
131131
get => _CurrentSort2;
132132
set
133133
{
134-
ComboBoxItemSelected(value);
135134
SetAndNotify(ref _CurrentSort2, value);
135+
ComboBoxItemSelected(value);
136136
}
137137
}
138138

139-
private void ComboBoxItemSelected(string kind) => database.OrderCode(kind);
139+
private void ComboBoxItemSelected(string kind)
140+
{
141+
Trace.WriteLine($"Gone order them ... {kind} ...");
142+
AllCodes = database.OrderCode(kind, AllCodes);
143+
}
140144

141145
public void SearchCommand(string text)
142146
{
143147
IsSearched = false;
144-
database.SearchCode(text);
148+
AllCodes = database.SearchCode(text, "Home", AllCodes);
145149
IsSearched = true;
146150
}
147151

CutCode/ViewModels/MainViewModel.cs

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ namespace CutCode
2020
public class MainViewModel : Screen
2121
{
2222
//private List<Button> leftBarBtns;
23-
private List<Object> Pages;
23+
public static List<Object> Pages;
2424
private readonly IThemeService _themeService;
2525
private readonly IPageService pageService;
2626
private readonly IDataBase database;
@@ -36,8 +36,6 @@ public MainViewModel(IThemeService themeService, IPageService _pageService, IDat
3636
pageService.PageRemoteChanged += PageRemoteChanged;
3737

3838
database = _dataBase;
39-
DataBaseStatic.AllCodes = database.AllCodes;
40-
database.PropertyChanged += DataBaseUpdated;
4139

4240
sideBarBtns = new ObservableCollection<SideBarBtnModel>();
4341

@@ -56,8 +54,6 @@ public MainViewModel(IThemeService themeService, IPageService _pageService, IDat
5654
pageService.Page = Pages[0];
5755
}
5856

59-
private void DataBaseUpdated(object sender, EventArgs e) => DataBaseStatic.AllCodes = database.AllCodes;
60-
6157
private void ThemeChanged(object sender, EventArgs e)
6258
{
6359
backgroundColor = _themeService.IsLightTheme ? ColorCon.Convert("#FCFCFC") : ColorCon.Convert("#36393F");
@@ -191,9 +187,4 @@ public string minImage
191187
{ SetAndNotify(ref _minImage, value); }
192188
}
193189
}
194-
195-
public static class DataBaseStatic
196-
{
197-
public static ObservableCollection<CodeBoxModel> AllCodes = new ObservableCollection<CodeBoxModel>();
198-
}
199190
}

0 commit comments

Comments
 (0)