mirror of
https://github.com/QuotifyTeam/QuotifyBE.git
synced 2025-12-16 23:40:06 +01:00
61 lines
2.1 KiB
C#
61 lines
2.1 KiB
C#
using Microsoft.AspNetCore.Mvc;
|
|
using Microsoft.AspNetCore.Authorization;
|
|
using QuotifyBE.Data;
|
|
using QuotifyBE.DTOs;
|
|
using QuotifyBE.Entities;
|
|
using QuotifyBE.Mapping;
|
|
using System.Security.Claims;
|
|
using Microsoft.EntityFrameworkCore;
|
|
|
|
namespace QuotifyBE.Controllers
|
|
{
|
|
public class Seed : Controller
|
|
{
|
|
private readonly ApplicationDbContext _db;
|
|
private readonly GeneralUseHelpers guhf;
|
|
|
|
public Seed(ApplicationDbContext db, GeneralUseHelpers GUHF)
|
|
{
|
|
_db = db;
|
|
guhf = GUHF;
|
|
}
|
|
public async Task SeedAsync()
|
|
{
|
|
Console.WriteLine($"You're running QuotifyBE, commit {ThisAssembly.Git.Commit} of branch {ThisAssembly.Git.Branch} ({ThisAssembly.Git.CommitDate})\n");
|
|
|
|
// Create a user account if no exist
|
|
var AccountNum = await _db.Users.CountAsync();
|
|
if (AccountNum == 0)
|
|
{
|
|
var Admin = new User
|
|
{
|
|
Name="admin",
|
|
Email = "admin@mail.com",
|
|
// hashed twice, once by frontend, and second time by backend
|
|
PasswordHash = guhf.HashWithSHA512(guhf.HashWithSHA512("admin")),
|
|
Role = 0 // role 0 - greatest power, admin, role 0 > role 1
|
|
};
|
|
_db.Users.Add(Admin);
|
|
await _db.SaveChangesAsync();
|
|
Console.WriteLine("[QuotifyBE] Administrator user account added!\nDefault credentials are: admin@mail.com, password: admin");
|
|
}
|
|
|
|
// Create sitewide statistic - number of draws
|
|
Statistic? numOfDraws = await _db.Statistics
|
|
.FirstOrDefaultAsync(s => s.Label == "number_of_draws");
|
|
if (numOfDraws == null)
|
|
{
|
|
Statistic newRow = new Statistic
|
|
{
|
|
Label = "number_of_draws",
|
|
IValue = 0
|
|
};
|
|
_db.Statistics.Add(newRow);
|
|
await _db.SaveChangesAsync();
|
|
Console.WriteLine("[QuotifyBE] Sitewide statistic for number of draws added!");
|
|
}
|
|
|
|
}
|
|
}
|
|
}
|