public async Task<IHttpActionResult> PlayerMarked(PlayerMarkedApiModel model) { if (ModelState.IsValid && model != null) { var CurrentUser = await this.userManager.FindByIdAsync(User.Identity.GetUserId()); if (CurrentUser.NFC != null) if (CurrentUser.NFC.Equals(model.NFC)) { CurrentUser.Killed = true; var result = await this.userManager.UpdateAsync(CurrentUser); if (result.Succeeded) { var game = await this.db.Games.FindAsync(model.GameId); int myTeam = 0; int enemyTeam = 0; if (game.ChallengerOne != null) if (game.ChallengerOne.Users.Any(x => x.Id.Equals(CurrentUser.Id))) { foreach (var user in game.ChallengerOne.Users.Where(x => !x.Killed && !x.Banned)) { myTeam += 1; } foreach (var user in game.ChallengerTwo.Users.Where(x => !x.Killed && !x.Banned)) { enemyTeam += 1; } } else { if (game.ChallengerTwo != null) { foreach (var user in game.ChallengerTwo.Users.Where(x => !x.Killed && !x.Banned)) { enemyTeam += 1; } foreach (var user in game.ChallengerOne.Users.Where(x => !x.Killed && !x.Banned)) { myTeam += 1; } } } var list = new List<User>(); if (game.ChallengerOne != null) list.AddRange(game.ChallengerOne.Users.ToList()); if (game.ChallengerTwo != null) list.AddRange(game.ChallengerTwo.Users.ToList()); foreach (var user in list) { new GcmProvider().CreateNotification(new PushNotificationData { Action = 3, Message = "Player killed!", Data = new { MyTeam = myTeam, EnemyTeam = enemyTeam } }, user.RegistrationId).SendAsync().Wait(); } return this.Ok(new ApiResponse(200, Mapper.Map<UserApiModel>(CurrentUser))); } return this.InternalServerError(new ApiResponse(500, model)); } } return this.BadRequest(new ApiResponse(400, model)); }
public async Task<IHttpActionResult> SetNFC(PlayerMarkedApiModel model) { if (ModelState.IsValid && model != null) { this.CurrentUser.NFC = model.NFC; this.CurrentUser.Killed = false; this.CurrentUser.Banned = false; var result = await this.userManager.UpdateAsync(this.CurrentUser); if (result.Succeeded) return this.Ok(new ApiResponse(200, Mapper.Map<UserApiModel>(this.CurrentUser))); return this.InternalServerError(new ApiResponse(500, model)); } return this.BadRequest(new ApiResponse(400, model)); }