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; }
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); }
public UserService(LamaContext context, IHttpContextAccessor httpContextAccessor) { _context = context; _httpContextAccessor = httpContextAccessor; }
public GameHub(LamaContext context, UserManager <User> userManager) { _context = context; _userManager = userManager; }
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); } }
public ClubsService(LamaContext context, IUserService userService) { _context = context; _userService = userService; }
public AuthController(UserManager <User> umg, SignInManager <User> smg, LamaContext context) { _userManager = umg; _signInManager = smg; _context = context; }