|
@@ -1,11 +1,14 @@
|
|
|
+using System;
|
|
|
using System.Collections.Generic;
|
|
|
using System.Linq;
|
|
|
using System.Threading;
|
|
|
using System.Threading.Tasks;
|
|
|
using MafiaTelegramBot.Controllers;
|
|
|
using MafiaTelegramBot.CustomCollections.Extensions;
|
|
|
+using MafiaTelegramBot.DataBase.EntityDao;
|
|
|
using MafiaTelegramBot.Models;
|
|
|
using MafiaTelegramBot.Resources;
|
|
|
+using Microsoft.EntityFrameworkCore;
|
|
|
using Telegram.Bot.Types;
|
|
|
using Timer = System.Timers.Timer;
|
|
|
|
|
@@ -384,13 +387,50 @@ namespace MafiaTelegramBot.Game.GameRooms
|
|
|
var rolesMessage = strings.in_this_game_roles;
|
|
|
var sortedPLayers = Players.Values.ToList();
|
|
|
sortedPLayers.Sort((x, y) => x.TurnOrder - y.TurnOrder);
|
|
|
+
|
|
|
+ var statsQuery = "SELECT * FROM mafia.statistics WHERE";
|
|
|
+
|
|
|
foreach (var player in sortedPLayers)
|
|
|
{
|
|
|
rolesMessage += $"\n({player.TurnOrder}) {player.NickName} - {player.GetRoleName()}";
|
|
|
+ statsQuery += $" id = {player.Id} AND role = '{player.GetRole().ToString()}' OR role = 'All' OR";
|
|
|
player.ResetState();
|
|
|
}
|
|
|
|
|
|
- //var dblist = UserDao.DataBase.Statistics.Where(s => sortedPLayers.Contains(s.UserId, s.Role.ToString())).ToList();
|
|
|
+ statsQuery = statsQuery.Substring(0, statsQuery.Length - 2);
|
|
|
+
|
|
|
+ try
|
|
|
+ {
|
|
|
+ var statsList = UserDao.DataBase.Statistics.FromSqlRaw(statsQuery).ToArrayAsync().Result;
|
|
|
+
|
|
|
+ foreach (var player in statsList)
|
|
|
+ {
|
|
|
+
|
|
|
+ player.Games++;
|
|
|
+
|
|
|
+ //Yellow get Wins++
|
|
|
+
|
|
|
+ if (aliveMafia.Count() == 0)
|
|
|
+ {
|
|
|
+ //then civil roles get Wins++;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ //then civil rols get Wins++;
|
|
|
+ }
|
|
|
+
|
|
|
+ //Check Fool Wins++
|
|
|
+ }
|
|
|
+
|
|
|
+ UserDao.DataBase.Statistics.UpdateRange(statsList);
|
|
|
+
|
|
|
+ await UserDao.DataBase.SaveChangesAsync();
|
|
|
+
|
|
|
+ }
|
|
|
+ catch (Exception e)
|
|
|
+ {
|
|
|
+ await Console.Out.WriteLineAsync(e.Message);
|
|
|
+ }
|
|
|
|
|
|
await PlayersCh.Send(rolesMessage);
|
|
|
IsRunning = false;
|