65 lines
1.8 KiB
C#
65 lines
1.8 KiB
C#
using System;
|
|
using System.Linq;
|
|
using T3k3rg0.Helpers.Data;
|
|
using T3k3rg0.Helpers.Models;
|
|
|
|
namespace T3k3rg0.Helpers
|
|
{
|
|
public static class NapiszarService
|
|
{
|
|
private static readonly TimeZoneInfo HungarianTimeZone =
|
|
TimeZoneInfo.FindSystemTimeZoneById("Europe/Budapest");
|
|
|
|
public static string GetRandomSzar()
|
|
{
|
|
using var db = new NapiszarDbContext();
|
|
var count = db.Joslatok.Count();
|
|
|
|
if (count == 0)
|
|
return "Nincs elérhető szar";
|
|
|
|
var rnd = new Random();
|
|
var skip = rnd.Next(count);
|
|
|
|
var szar = db.Joslatok.Skip(skip).FirstOrDefault();
|
|
return szar?.Szoveg ?? "Valami szar hiba történt";
|
|
}
|
|
|
|
public static bool HasUsedToday(ulong userId)
|
|
{
|
|
using var db = new NapiszarDbContext();
|
|
|
|
var usage = db.DailyUsages.FirstOrDefault(u => u.UserId == (long)userId);
|
|
if (usage == null)
|
|
return false;
|
|
|
|
var today = TimeZoneInfo.ConvertTimeFromUtc(DateTime.UtcNow, HungarianTimeZone).Date;
|
|
return usage.LastUsed.Date == today;
|
|
}
|
|
|
|
public static void LogUsage(ulong userId)
|
|
{
|
|
using var db = new NapiszarDbContext();
|
|
|
|
var today = TimeZoneInfo.ConvertTimeFromUtc(DateTime.UtcNow, HungarianTimeZone);
|
|
|
|
var existing = db.DailyUsages.FirstOrDefault(u => u.UserId == (long)userId);
|
|
if (existing == null)
|
|
{
|
|
db.DailyUsages.Add(new DailyUsage
|
|
{
|
|
UserId = (long)userId,
|
|
LastUsed = today
|
|
});
|
|
}
|
|
else
|
|
{
|
|
existing.LastUsed = today;
|
|
db.DailyUsages.Update(existing);
|
|
}
|
|
|
|
db.SaveChanges();
|
|
}
|
|
}
|
|
}
|
|
|