private void OnExpenseClaimUpdated(ExpenseClaimUpdated message) { foreach (var group in _groups) { for (int i = 0; i < group.Items.Count; i++) { if (group.Items[i].RefNbr == message.ExpenseClaim.RefNbr) { if (message.ExpenseClaim.Status == group.GroupTitle) { // Same status, just swap item group.Items[i] = message.ExpenseClaim; } else { // Different status, need to re-insert in another group group.Items.RemoveAt(i); AddExpenseClaimToGroup(message.ExpenseClaim.Status, message.ExpenseClaim); } return; } } } AddExpenseClaimToGroup(message.ExpenseClaim.Status, message.ExpenseClaim); }
private void OnExpenseClaimUpdated(ExpenseClaimUpdated message) { // Check if item is already in the list for (int i = 0; i < _items.Count; i++) { if (_items[i].RefNbr == message.ExpenseClaim.RefNbr) { if (_items[i].Status == message.ExpenseClaim.Status) { _items[i] = message.ExpenseClaim; } else { // Status changed; we can't list the item anymore. _items.RemoveAt(i); } return; } } // This is a new item, add it. if (message.ExpenseClaim.Status == _currentStatus) { _items.Insert(0, message.ExpenseClaim); OnPropertyChanged("IsEmpty"); } }