You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
46 lines
1.7 KiB
46 lines
1.7 KiB
3 months ago
|
using Microsoft.EntityFrameworkCore;
|
||
|
using System;
|
||
|
using System.Collections.Generic;
|
||
|
using System.Linq;
|
||
|
using System.Threading.Tasks;
|
||
|
using Teso_API.Models;
|
||
|
|
||
|
namespace Teso_API.Methods.Controllers
|
||
|
{
|
||
|
public class SilverBankOperations
|
||
|
{
|
||
|
public static async Task DepositToBank(int amount, TESOContext _context)
|
||
|
{
|
||
|
SilverBank currentBank = await _context.SilverBanks.AsQueryable().OrderByDescending(t => t.Timestamp).AsNoTracking().FirstOrDefaultAsync();
|
||
|
SilverBank bank = new SilverBank();
|
||
|
bank.Amount = amount;
|
||
|
bank.Timestamp = DateTime.Now;
|
||
|
bank.TransactionType = "TCT002";
|
||
|
bank.TransactionId = String.Format("{0:d9}", (DateTime.Now.Ticks / 10) % 10000000) + "bankdeposit";
|
||
|
bank.Balance = currentBank.Balance + amount;
|
||
|
_context.SilverBanks.Add(bank);
|
||
|
}
|
||
|
|
||
|
public static async Task<bool> WithdrawFromBank(int amount, TESOContext _context)
|
||
|
{
|
||
|
SilverBank currentBank = await _context.SilverBanks.AsQueryable().OrderByDescending(t => t.Timestamp).AsNoTracking().FirstOrDefaultAsync();
|
||
|
SilverBank bank = new SilverBank();
|
||
|
bank.Amount = amount;
|
||
|
bank.Timestamp = DateTime.Now;
|
||
|
bank.TransactionType = "TCT001";
|
||
|
bank.TransactionId = String.Format("{0:d9}", (DateTime.Now.Ticks / 10) % 10000000) + "bankwithdrawal";
|
||
|
bank.Balance = currentBank.Balance - amount;
|
||
|
|
||
|
if(bank.Balance >= 0)
|
||
|
{
|
||
|
_context.SilverBanks.Add(bank);
|
||
|
return true;
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
return false;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|