Files
reallife-gamemode/Server/Managers/BankManager.cs

145 lines
6.1 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using GTANetworkAPI;
using reallife_gamemode.Server.Entities;
using reallife_gamemode.Server.Extensions;
/**
* @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
{
/// <summary>
/// Transferiert Geld von einem User zu einem anderen User
/// </summary>
/// <param name="sender">Der Sender des Geldes</param>
/// <param name="receiver">Der Empfänger des Geldes</param>
/// <param name="amount">Der Geldbetrag</param>
/// <param name="origin">Der Überweisungsgrund</param>
public static void TransferUserMoneyToUser(User sender, User receiver, int amount, string origin)
{
using (var transferMoney = new Model.DatabaseContext())
{
var transactionLog = new Logs.BankAccountTransactionHistory
{
Sender = sender.Name,
SenderBalance = sender.GetUserBankAccount().Balance,
MoneySent = amount,
Receiver = receiver.Name,
ReceiverBalance = receiver.GetUserBankAccount().Balance,
NewReceiverBalance = receiver.GetUserBankAccount().Balance + amount,
NewSenderBalance = sender.GetUserBankAccount().Balance - amount,
Fee = 0,
Origin = origin
};
transferMoney.BankAccountTransactionLogs.Add(transactionLog);
sender.GetUserBankAccount(transferMoney).Balance -= amount;
receiver.GetUserBankAccount(transferMoney).Balance += amount;
transferMoney.SaveChanges();
}
}
/// <summary>
/// Transferiert Geld von einem User zu einer Fraktion
/// </summary>
/// <param name="sender">Der Sender des Geldes</param>
/// <param name="receiver">Der Empfänger des Geldes</param>
/// <param name="amount">Der Geldbetrag</param>
/// <param name="origin">Der Überweisungsgrund</param>
public static void TransferUserMoneyToFaction(User sender, Faction receiver, int amount, string origin)
{
using (var transferMoney = new Model.DatabaseContext())
{
var transactionLog = new Logs.BankAccountTransactionHistory
{
Sender = sender.Name,
SenderBalance = sender.GetUserBankAccount().Balance,
MoneySent = amount,
Receiver = receiver.Name,
ReceiverBalance = receiver.BankAccount,
NewReceiverBalance = receiver.BankAccount + amount,
NewSenderBalance = sender.GetUserBankAccount().Balance - amount,
Fee = 0,
Origin = origin
};
transferMoney.BankAccountTransactionLogs.Add(transactionLog);
sender.GetUserBankAccount(transferMoney).Balance -= amount;
receiver.BankAccount += amount;
transferMoney.SaveChanges();
}
}
/// <summary>
/// Transferiert Geld von einer Fraktion zu einem User
/// </summary>
/// <param name="sender">Der Sender des Geldes</param>
/// <param name="receiver">Der Empfänger des Geldes</param>
/// <param name="amount">Der Geldbetrag</param>
/// <param name="origin">Der Überweisungsgrund</param>
public static void TransferFactionMoneyToUser(Faction sender, User receiver, int amount, string origin)
{
using (var transferMoney = new Model.DatabaseContext())
{
var transactionLog = new Logs.BankAccountTransactionHistory
{
Sender = sender.Name,
SenderBalance = sender.BankAccount,
MoneySent = amount,
Receiver = receiver.Name,
ReceiverBalance = receiver.GetUserBankAccount().Balance,
NewReceiverBalance = receiver.GetUserBankAccount().Balance + amount,
NewSenderBalance = sender.BankAccount - amount,
Fee = 0,
Origin = origin
};
transferMoney.BankAccountTransactionLogs.Add(transactionLog);
sender.BankAccount -= amount;
receiver.GetUserBankAccount(transferMoney).Balance += amount;
transferMoney.SaveChanges();
}
}
/// <summary>
/// Transferiert Geld von einer Fraktion zu einer anderen Fraktion
/// </summary>
/// <param name="sender">Der Sender des Geldes</param>
/// <param name="receiver">Der Empfänger des Geldes</param>
/// <param name="amount">Der Geldbetrag</param>
/// <param name="origin">Der Überweisungsgrund</param>
public static void TransferFactionMoneyToFaction(Faction sender, Faction receiver, int amount, string origin)
{
using (var transferMoney = new Model.DatabaseContext())
{
var transactionLog = new Logs.BankAccountTransactionHistory
{
Sender = sender.Name,
SenderBalance = sender.GetFactionBankAccount().Balance,
MoneySent = amount,
Receiver = receiver.Name,
ReceiverBalance = receiver.BankAccount,
NewReceiverBalance = receiver.BankAccount + amount,
NewSenderBalance = sender.BankAccount - amount,
Fee = 0,
Origin = origin
};
transferMoney.BankAccountTransactionLogs.Add(transactionLog);
sender.BankAccount -= amount;
receiver.BankAccount += amount;
transferMoney.SaveChanges();
}
}
}
}