/freeze was obselete and removed /unfreeze was obselete and removed /spectate was obselete and removed
97 lines
2.9 KiB
C#
97 lines
2.9 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using GTANetworkAPI;
|
|
using ReallifeGamemode.Server.Business;
|
|
using ReallifeGamemode.Server.Extensions;
|
|
using ReallifeGamemode.Server.Util;
|
|
using ReallifeGamemode.Database;
|
|
using ReallifeGamemode.Database.Models;
|
|
using ReallifeGamemode.Database.Entities.Logs;
|
|
|
|
/**
|
|
* @overview Life of German Reallife - Managers BankManager (BankManager.cs)
|
|
* @author VegaZ
|
|
* @copyright (c) 2008 - 2018 Life of German
|
|
*/
|
|
|
|
namespace ReallifeGamemode.Server.Managers
|
|
{
|
|
public class BankManager
|
|
{
|
|
public static TransactionResult SetMoney(Player admin, IBankAccountOwner owner, int amount, string reason = "Von Admin gesetzt")
|
|
{
|
|
using (var transferMoney = new DatabaseContext())
|
|
{
|
|
if (amount < 0) return TransactionResult.NEGATIVE_MONEY_SENT;
|
|
|
|
IBankAccount account = owner.GetBankAccount(transferMoney);
|
|
|
|
if (account == null) return TransactionResult.RECEIVER_NO_BANKACCOUNT;
|
|
|
|
var transactionLog = new BankAccountTransactionHistory
|
|
{
|
|
Sender = "ADMIN: " + admin.Name,
|
|
SenderBalance = 0,
|
|
Receiver = owner.Name,
|
|
ReceiverBalance = amount,
|
|
NewReceiverBalance = amount,
|
|
NewSenderBalance = 0,
|
|
MoneySent = amount,
|
|
Fee = 0,
|
|
Origin = reason
|
|
};
|
|
|
|
// add log
|
|
transferMoney.BankAccountTransactionLogs.Add(transactionLog);
|
|
|
|
account.Balance = amount;
|
|
|
|
transferMoney.SaveChanges();
|
|
|
|
return TransactionResult.SUCCESS;
|
|
}
|
|
}
|
|
|
|
public static TransactionResult TransferMoney(IBankAccountOwner sender, IBankAccountOwner receiver, int amount, string origin)
|
|
{
|
|
using (var transferMoney = new 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 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;
|
|
}
|
|
}
|
|
}
|
|
}
|