Sean/Sean/Services/DbService.cs

43 lines
1.2 KiB
C#

using Discord;
using Microsoft.EntityFrameworkCore;
using Sean.Models;
using System;
using System.Collections.Generic;
using System.Text;
using System.Threading.Tasks;
namespace Sean.Services
{
public class DbService : DbContext
{
public DbSet<ScoreUtilisateur> Scores { get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseSqlite("Data Source=Sean.db");
}
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<ScoreUtilisateur>()
.HasKey(o => new { o.UserId, o.Date });
}
public async Task UpdateScore(IUser user, int change)
{
ScoreUtilisateur score = await Scores.SingleOrDefaultAsync(s => s.UserId == user.Id && s.Date == DateTime.Today);
if (score == default)
{
score = new ScoreUtilisateur { UserId = user.Id, Date = DateTime.Today, Score = change, Name = user.Nick() };
await Scores.AddAsync(score);
}
else
score.Score += change;
await SaveChangesAsync();
}
}
}