@@ -16,9 +16,12 @@ public class IndexBase : ComponentBase
16
16
BatchEditingService theService { get ; set ; }
17
17
public ObservableCollection < BatchEditModel > LocalData { get ; set ; }
18
18
private List < BatchEditModel > PristineItems { get ; set ; } = new List < BatchEditModel > ( ) ;
19
-
20
19
public IEnumerable < BatchEditModel > SelectedItems { get ; set ; } = Enumerable . Empty < BatchEditModel > ( ) ;
21
20
21
+ public bool GridIsDirty => LocalData . ToList ( ) . Exists ( itm => itm . IsDirty ) ;
22
+
23
+ public bool SelectionIsDirty => SelectedItems . ToList ( ) . Exists ( itm => itm . IsDirty ) ;
24
+
22
25
protected override async Task OnInitializedAsync ( )
23
26
{
24
27
await FetchData ( ) ;
@@ -45,15 +48,14 @@ public void EditHandler(GridCommandEventArgs args)
45
48
public void UpdateHandler ( GridCommandEventArgs args )
46
49
{
47
50
BatchEditModel item = ( BatchEditModel ) args . Item ;
48
- BatchEditModel localItem = GetItemFromCollection ( LocalData , item ) ;
49
51
50
52
if ( ! item . IsDirty )
51
53
{
52
- BatchEditModel pristineItm = GetItemFromCollection ( PristineItems , item ) ;
53
- if ( pristineItm == null )
54
- {
54
+ BatchEditModel pristineItem = GetItemFromCollection ( PristineItems , item ) ;
55
+ if ( pristineItem == null )
56
+ {
55
57
//add only the first time a field is edited, later it is no longer pristine
56
- PristineItems . Add ( localItem ) ;
58
+ PristineItems . Add ( GetItemFromCollection ( LocalData , item ) ) ;
57
59
}
58
60
}
59
61
@@ -64,7 +66,7 @@ public void UpdateHandler(GridCommandEventArgs args)
64
66
public void CreateHandler ( GridCommandEventArgs args )
65
67
{
66
68
BatchEditModel item = ( BatchEditModel ) args . Item ;
67
- item . Id = LocalData . Count + 1 ;
69
+ item . Id = LocalData . Max ( model => model . Id ) + 1 ;
68
70
item . IsNew = true ;
69
71
LocalData . Insert ( 0 , item ) ;
70
72
}
@@ -78,16 +80,6 @@ public void DeleteHandler(GridCommandEventArgs args)
78
80
//show notification for undelete
79
81
}
80
82
81
- public bool GridIsDirty ( )
82
- {
83
- return LocalData . ToList ( ) . Exists ( itm => itm . IsDirty ) ;
84
- }
85
-
86
- public bool SelectionIsDirty ( )
87
- {
88
- return SelectedItems . ToList ( ) . Exists ( itm => itm . IsDirty ) ;
89
- }
90
-
91
83
private void ChangeLocalItem ( BatchEditModel item )
92
84
{
93
85
var index = LocalData . ToList ( ) . FindIndex ( i => i . Id == item . Id ) ;
@@ -112,59 +104,58 @@ public async Task SaveAllChanges()
112
104
LocalData = new ObservableCollection < BatchEditModel > ( newData ) ;
113
105
}
114
106
115
- public async Task RevertAllChanges ( )
107
+ public void RevertAllChanges ( )
116
108
{
117
109
for ( int i = LocalData . Count - 1 ; i >= 0 ; i -- )
118
110
{
119
111
if ( LocalData [ i ] . IsDirty )
120
112
{
121
- await RevertItem ( LocalData [ i ] ) ;
113
+ RevertItem ( LocalData [ i ] ) ;
122
114
}
123
115
}
124
116
StateHasChanged ( ) ;
125
117
}
126
118
127
- public async Task UndeleteItem ( BatchEditModel itmToUndelete )
119
+ public void RestoreItem ( BatchEditModel item )
128
120
{
129
- BatchEditModel itm = GetItemFromCollection ( LocalData , itmToUndelete ) ;
130
- if ( itm != null )
121
+ BatchEditModel localItem = GetItemFromCollection ( LocalData , item ) ;
122
+ if ( localItem != null )
131
123
{
132
- itm . IsDeleted = false ;
124
+ localItem . IsDeleted = false ;
133
125
}
134
126
}
135
127
136
- public async Task RevertItem ( BatchEditModel itmToUndelete )
128
+ public void RevertItem ( BatchEditModel item )
137
129
{
138
- if ( itmToUndelete . IsNew )
130
+ if ( item . IsNew )
139
131
{
140
- LocalData . Remove ( itmToUndelete ) ;
132
+ LocalData . Remove ( item ) ;
141
133
}
142
- if ( itmToUndelete . IsDeleted )
134
+ if ( item . IsDeleted )
143
135
{
144
- itmToUndelete . IsDeleted = false ;
145
- ChangeLocalItem ( itmToUndelete ) ;
136
+ item . IsDeleted = false ;
137
+ ChangeLocalItem ( item ) ;
146
138
}
147
- if ( itmToUndelete . IsChanged )
139
+ if ( item . IsChanged )
148
140
{
149
- BatchEditModel pristineItem = GetItemFromCollection ( PristineItems , itmToUndelete ) ;
141
+ BatchEditModel pristineItem = GetItemFromCollection ( PristineItems , item ) ;
150
142
if ( pristineItem != null )
151
143
{
152
- itmToUndelete = pristineItem ;
153
- ChangeLocalItem ( itmToUndelete ) ;
144
+ ChangeLocalItem ( pristineItem ) ;
154
145
PristineItems . Remove ( pristineItem ) ;
155
146
}
156
147
}
157
148
}
158
149
159
- public async Task RevertSelected ( )
150
+ public void RevertSelected ( )
160
151
{
161
152
foreach ( BatchEditModel item in SelectedItems )
162
153
{
163
- await RevertItem ( item ) ;
154
+ RevertItem ( item ) ;
164
155
}
165
156
}
166
157
167
- public async Task DeleteItem ( BatchEditModel itmToDelete )
158
+ public void DeleteItem ( BatchEditModel itmToDelete )
168
159
{
169
160
BatchEditModel localItem = GetItemFromCollection ( LocalData , itmToDelete ) ;
170
161
if ( localItem != null )
@@ -184,15 +175,14 @@ public async Task DeleteItem(BatchEditModel itmToDelete)
184
175
}
185
176
}
186
177
187
- public async Task DeleteSelected ( )
178
+ public void DeleteSelected ( )
188
179
{
189
180
foreach ( BatchEditModel item in SelectedItems )
190
181
{
191
- await DeleteItem ( item ) ;
182
+ DeleteItem ( item ) ;
192
183
}
193
184
}
194
185
195
-
196
186
private BatchEditModel GetItemFromCollection ( IList < BatchEditModel > collection , BatchEditModel itmToFind )
197
187
{
198
188
var index = collection . ToList ( ) . FindIndex ( i => i . Id == itmToFind . Id ) ;
0 commit comments