using System; using System.Collections.Generic; using System.Linq; using System.Text; using GTANetworkAPI; using reallife_gamemode.Server.Entities; using reallife_gamemode.Server.Extensions; using reallife_gamemode.Server.Util; /** * @overview Life of German Reallife - Managers BankManager (BankManager.cs) * @author VegaZ * @copyright (c) 2008 - 2018 Life of German */ namespace reallife_gamemode.Server.Managers { public class BankManager : Script { public static TransactionResult TransferMoney(IBankAccountOwner sender, IBankAccountOwner receiver, int amount, string origin) { using (var transferMoney = new Model.DatabaseContext()) { if (amount < 0) return TransactionResult.NEGATIVE_MONEY_SENT; IBankAccount senderAccount = sender.GetBankAccount(transferMoney); IBankAccount receiverAccount = receiver.GetBankAccount(transferMoney); if (senderAccount == null) return TransactionResult.SENDER_NO_BANKACCOUNT; if (receiverAccount == null) return TransactionResult.RECEIVER_NO_BANKACCOUNT; if (senderAccount.Balance < amount) return TransactionResult.SENDER_NOT_ENOUGH_MONEY; var transactionLog = new Logs.BankAccountTransactionHistory { Sender = sender.Name, SenderBalance = senderAccount.Balance, Receiver = receiver.Name, ReceiverBalance = receiverAccount.Balance, NewReceiverBalance = receiverAccount.Balance + amount, NewSenderBalance = senderAccount.Balance - amount, MoneySent = amount, Fee = 0, Origin = origin }; // add log transferMoney.BankAccountTransactionLogs.Add(transactionLog); senderAccount.Balance -= amount; receiverAccount.Balance += amount; transferMoney.SaveChanges(); return TransactionResult.SUCCESS; } } } }