12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Threading.Tasks;
- using MafiaTelegramBot.DataBase.Entity;
- using MafiaTelegramBot.Game;
- using Microsoft.EntityFrameworkCore;
- namespace MafiaTelegramBot.DataBase.EntityDao
- {
- public static class UserDao
- {
- private static readonly MafiaDataBase DataBase = MafiaDataBase.GetInstance();
- private static readonly Dictionary<long, Player> ActiveUsers = new();
- public static async Task<Player> GetPlayerById(long id)
- {
- if (ActiveUsers.ContainsKey(id)) return ActiveUsers[id];
- var user = await Task.Run(()=> DataBase.Users.First(user1 => user1.Id == id));
- var player = Player.FromUserEntity(user);
- ActiveUsers.Add(user.Id, player);
- return player;
- }
-
- public static async Task Update(UserEntity user)
- {
- var result = await DataBase.Users.SingleOrDefaultAsync(b => b.Id == user.Id);
- if (result == null) DataBase.Users.Add(user);
- else
- {
- result.NickName = user.NickName;
- result.Username = user.Username;
- DataBase.Users.Update(result);
- }
- await DataBase.SaveChangesAsync();
- }
- public static async Task<bool> UserExists(long id)
- {
- if (ActiveUsers.ContainsKey(id)) return true;
- return await DataBase.Users.AnyAsync(user => user.Id == id);
- }
- }
- }
|