private void TransactionItemsDeleted(object sender, int[] e) { var indicies = e.Where(i => i < MAX_ITEMS_COUNT).OrderByDescending(i => i); foreach (var index in indicies) { Transactions.RemoveAt(index); Debug.WriteLine($"[TransactionsWidgetViewModel] Transaction at {index} deleted from widget"); } var currentTransactionsCount = Transactions.Count; if (currentTransactionsCount < _transactionsRepository.Transactions.Count) { for (int i = currentTransactionsCount; i < MAX_ITEMS_COUNT; i++) { if (_transactionsRepository.Transactions.Count - 1 > i) { Transactions.Add(_transactionsRepository.Transactions[i]); Debug.WriteLine($"[TransactionsWidgetViewModel] Transaction added to widget. Root transactions index: {i}"); } } } OnTransactionsChanged?.Invoke(this, EventArgs.Empty); }
private void TransactionItemsInserted(object sender, int[] e) { var indicies = e.Where(i => i < MAX_ITEMS_COUNT); foreach (var index in indicies) { Transactions.Insert(index, _transactionsRepository.Transactions[index]); if (Transactions.Count > MAX_ITEMS_COUNT) { Transactions.RemoveAt(MAX_ITEMS_COUNT); } } OnTransactionsChanged?.Invoke(this, EventArgs.Empty); }