Ejemplo n.º 1
0
 public GamesController(UserManager <User> umg, SignInManager <User> smg, LamaContext context, IHubContext <GameHub> signalRHub, IConfiguration configuration)
 {
     _userManager   = umg;
     _signInManager = smg;
     _context       = context;
     _signalR       = signalRHub;
     Configuration  = configuration;
 }
Ejemplo n.º 2
0
        public async Task InvokeAsync(HttpContext context, LamaContext userRepository)
        {
            var user = new ApiUser();
            var id   = context.User.FindFirst(ClaimTypes.NameIdentifier).Value;

            if (!(await userRepository.Users.AnyAsync(x => x.UserId == Guid.Parse(id))))
            {
                var displayName = context.User.FindFirst(ClaimTypes.GivenName).Value;
                user.UserId    = Guid.Parse(id);
                user.GivenName = displayName;
                await userRepository.AddAsync(user);
            }
            await _next(context);
        }
        public async Task InvokeAsync(HttpContext context, LamaContext lamaContext)
        {
            if (context.User.FindFirst(ClaimTypes.NameIdentifier) != null)
            {
                var user = new ApiUser();
                var id   = context.User.FindFirst(ClaimTypes.NameIdentifier).Value;
                if (!(await lamaContext.Users.AnyAsync(x => x.UserId == Guid.Parse(id))))
                {
                    user.UserId    = Guid.Parse(id);
                    user.UserName  = context.User.FindFirst("emails").Value;
                    user.GivenName = context.User.FindFirst(ClaimTypes.GivenName).Value;
                    await lamaContext.AddAsync(user);

                    await lamaContext.SaveChangesAsync();
                }
            }
            await _next(context);
        }
Ejemplo n.º 4
0
 public UserService(LamaContext context, IHttpContextAccessor httpContextAccessor)
 {
     _context             = context;
     _httpContextAccessor = httpContextAccessor;
 }
Ejemplo n.º 5
0
 public GameHub(LamaContext context, UserManager <User> userManager)
 {
     _context     = context;
     _userManager = userManager;
 }
Ejemplo n.º 6
0
        private async void GameEnded(object?sender, EventArgs e)
        {
            try
            {
                if (sender is not Game)
                {
                    return;
                }
                var game           = sender as Game;
                var contextOptions = new DbContextOptionsBuilder <LamaContext>()
                                     .UseNpgsql(Configuration.GetConnectionString("DefaultConnection"))
                                     .Options;

                using var context = new LamaContext(contextOptions, null);

                var dbGame = context.Games.Find(game.Id);
                if (dbGame is null)
                {
                    return;
                }
                dbGame.Completed = true;
                dbGame.EndedTime = DateTime.UtcNow;
                var winner = game.Players.OrderBy(p => p.Points).ThenBy(p => p.Elo).FirstOrDefault();
                if (winner is not null)
                {
                    dbGame.WinnerId = winner.GetUser().Id;
                }
                var players = game.Players.OrderBy(p => p.Points).ThenBy(p => p.Elo).Select(p => new StoredGamePlayers()
                {
                    Game          = dbGame,
                    Player        = p.GetUser(),
                    PlayerId      = p.GetUser().Id,
                    LeftBeforeEnd = p.HasLeftGame,
                    Points        = p.Points
                }).ToList();
                for (int i = 0; i < players.Count; i++)
                {
                    players.ElementAt(i).Rank = i + 1;
                }

                PlayersController.CalculateNewEloRating(players);
                var ratings = new Dictionary <string, double>();
                foreach (var p in players)
                {
                    ratings.Add(p.PlayerId, p.Player.Elo);
                    var gp = game.Players.FirstOrDefault(x => x.UserName == p.Player.UserName);
                    if (gp != null)
                    {
                        gp.EloChange = p.EloChange;
                    }
                    p.Player = null;
                }
                dbGame.Players = players;
                await context.SaveChangesAsync();

                var users = context.GamePlayers.Include(p => p.Player).Where(e => e.GameId == game.Id).ToList();
                foreach (var user in users)
                {
                    user.Player.Elo = ratings[user.PlayerId];
                }

                await context.SaveChangesAsync();

                try
                {
                    game.StatusChanged -= GameStatusChanged;
                }
                catch
                {
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }
Ejemplo n.º 7
0
 public ClubsService(LamaContext context, IUserService userService)
 {
     _context     = context;
     _userService = userService;
 }
Ejemplo n.º 8
0
 public AuthController(UserManager <User> umg, SignInManager <User> smg, LamaContext context)
 {
     _userManager   = umg;
     _signInManager = smg;
     _context       = context;
 }