public Transaction TransferMoney(decimal sum, string from, string to) { var cardFrom = GetCard(from); var cardTo = GetCard(to); _businessLogicService.ValidateTransfer(cardFrom, cardTo, sum); var fromTransaction = new Transaction { Card = cardFrom, CardFromNumber = cardFrom.CardNumber, CardToNumber = cardTo.CardNumber, Sum = sum }; var toTransaction = new Transaction { Card = cardTo, DateTime = fromTransaction.DateTime, CardFromNumber = cardFrom.CardNumber, CardToNumber = cardTo.CardNumber, Sum = _businessLogicService.GetConvertSum(sum, cardFrom.Currency, cardTo.Currency) }; _transactionRepository.Add(fromTransaction); _transactionRepository.Add(toTransaction); _transactionRepository.Save(); return(fromTransaction); }