1234567891011121314151617181920212223242526272829303132333435363738 |
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Threading.Tasks;
- using MafiaTelegramBot.DataBase.Entity;
- using MafiaTelegramBot.Resources;
- using Microsoft.EntityFrameworkCore;
- namespace MafiaTelegramBot.DataBase.EntityDao
- {
- public static class StatisticsDao
- {
- private static readonly MafiaDataBase DataBase = MafiaDataBase.GetInstance();
-
- public static async Task<Dictionary<Roles, StatisticsEntity>> GetStatisticsListById(long userId)
- {
- if (await UserDataExists(userId))
- {
- var list = await DataBase.Statistics.Where(s => s.UserId == userId).ToListAsync();
- return list.ToDictionary(item => Enum.Parse<Roles>(item.Role), item => item);
- }
- var roles = Enum.GetValues(typeof(Roles)).Cast<Roles>();
- foreach (var role in roles)
- {
- var statsRow = new StatisticsEntity { UserId = userId, Role = role.ToString() };
- await DataBase.Statistics.AddAsync(statsRow);
- }
- await DataBase.SaveChangesAsync();
- var result = await DataBase.Statistics.Where(s => s.UserId == userId).ToListAsync();
- return result.ToDictionary(item => Enum.Parse<Roles>(item.Role), item => item);
- }
-
- private static async Task<bool> UserDataExists(long id)
- {
- return await DataBase.Statistics.AnyAsync(entity => entity.UserId == id);
- }
- }
- }
|