Simplified bank money transfer

This commit is contained in:
hydrant
2018-11-01 12:41:58 +01:00
parent 13d976258a
commit fec77e5279
12 changed files with 116 additions and 223 deletions

View File

@@ -1,8 +1,11 @@
using Microsoft.EntityFrameworkCore;
using reallife_gamemode.Model;
using reallife_gamemode.Server.Util;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Text;
/**
@@ -13,14 +16,28 @@ using System.Text;
namespace reallife_gamemode.Server.Entities
{
public class Faction
public class Faction : IBankAccountOwner
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
[StringLength(32)]
public string Name { get; set; }
public int BankAccount { get; set; }
public bool StateOwned { get; set; }
public IBankAccount GetBankAccount(DatabaseContext databaseContext = null)
{
if (databaseContext == null)
{
using (databaseContext = new DatabaseContext())
{
return databaseContext.FactionBankAccounts.FirstOrDefault(u => u.FactionId == this.Id);
}
}
else
{
return databaseContext.FactionBankAccounts.FirstOrDefault(u => u.FactionId == this.Id);
}
}
}
}

View File

@@ -13,7 +13,7 @@ using System.Text;
*/
namespace reallife_gamemode.Server.Entities
{
public class FactionBankAccount
public class FactionBankAccount : IBankAccount
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]

View File

@@ -16,7 +16,7 @@ using System.Text;
namespace reallife_gamemode.Server.Entities
{
public class User
public class User : IBankAccountOwner
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
@@ -28,8 +28,8 @@ namespace reallife_gamemode.Server.Entities
[StringLength(64)]
public string Password { get; set; }
public int LogUserId { get; set; }
[Timestamp]
public byte[] RegistrationDate { get; set; }
[DatabaseGenerated(DatabaseGeneratedOption.Computed)]
public DateTime RegistrationDate { get; set; }
[EmailAddress]
[StringLength(64)]
@@ -131,5 +131,20 @@ namespace reallife_gamemode.Server.Entities
}
public bool IsAdmin(AdminLevel level) => AdminLevel >= level;
public IBankAccount GetBankAccount(DatabaseContext databaseContext = null)
{
if (databaseContext == null)
{
using (databaseContext = new DatabaseContext())
{
return databaseContext.UserBankAccounts.FirstOrDefault(u => u.UserId == this.Id);
}
}
else
{
return databaseContext.UserBankAccounts.FirstOrDefault(u => u.UserId == this.Id);
}
}
}
}

View File

@@ -17,8 +17,9 @@ using System.Linq;
namespace reallife_gamemode.Server.Entities
{
public class UserBankAccount
public class UserBankAccount : IBankAccount
{
[NotMapped]
private int _balance;
[Key]