t3k-dc-bot-cs/helpers/napiszarservice.cs

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();
}
}
}