public async Task <bool> UpdateGoalSubscriberAmount(int userId, int userGoalId, int completedAmountIncrement, int moneyAmountSaved, int?savingTransferAmount) { var subscriber = await _goalSubscriberRepository.Get(userId, userGoalId); if (subscriber != null && completedAmountIncrement > 0) { subscriber.CompletedAmount += completedAmountIncrement; // for now update only completed amount //subscriber.MoneyAmountSaved = moneyAmountSaved; //subscriber.SavingTransferAmount = savingTransferAmount; await _goalSubscriberRepository.Update(subscriber.Id, subscriber); string eventMessage = $"{subscriber.Subscriber.Name} increased goal by {completedAmountIncrement}"; await _eventService.AddEventToAllUserSubscribers(subscriber.UserGoalId, eventMessage); if (subscriber.SavingTransferAmount.HasValue) { await _bankingService.TransferToSavingsAccount(userId, subscriber.SavingTransferAmount.Value); } return(true); } else { return(false); } }