Exemplo n.º 1
0
        public async Task <GameManagerResponse> ResultAsync(ResultForDto model, string userId)
        {
            await using (_context)
            {
                var game = _context.Games.Find(model.GameId);
                if (_context.GroupMembers.FirstOrDefault(u =>
                                                         u.GroupId == game.GroupId && u.UserId == userId && u.Role == "Admin") == null)
                {
                    return(new GameManagerResponse {
                        Message = "Bu işlem için yetkiniz yok.", IsSuccess = false
                    });
                }

                if (game.GameDate.Value > DateTime.Now)
                {
                    return(new GameManagerResponse {
                        Message = "Oyun henüz oynanmadı.", IsSuccess = false
                    });
                }


                game.WinnerTeam = model.WinnerTeam;

                if (model.Attendees != null && model.Players != null)
                {
                    var gamePlayers = _context.GamePlayers.Where(p => p.GameId == model.GameId && p.InviteResponse == true).ToList();
                    var index       = 0;
                    foreach (var player in model.Players)
                    {
                        var temp = gamePlayers.FirstOrDefault(u => u.GameId == model.GameId && u.UserId == player);
                        temp.Attended = model.Attendees[index];
                        if (model.Attendees[index])
                        {
                            var user = await _userManager.FindByIdAsync(temp.UserId);

                            user.Remainder -= game.Price.Value;
                        }

                        _context.Update(temp);
                        index++;
                    }
                }


                await _context.SaveChangesAsync();

                return(new GameManagerResponse {
                    Message = "Oyun düzenleme başarılı.", IsSuccess = true
                });
            }
        }
Exemplo n.º 2
0
        public IActionResult Result([FromBody] ResultForDto model)
        {
            if (ModelState.IsValid)
            {
                var userId = User.FindFirst(ClaimTypes.NameIdentifier).Value;

                if (userId != null)
                {
                    return(Ok(_gameService.ResultAsync(model, userId).Result));
                }

                return(BadRequest());
            }
            return(BadRequest("Some properties are not valid."));
        }