public ActionResult RemoveEnemy(RemoveEnemyRequest removeEnemyRequest) { var validation = _validator.ValidateRemoveEnemy(removeEnemyRequest); if (!validation.IsValid) { return(BadRequest(new { error = validation.ErrorMessage })); } var user = _memberRepo.GetMember(removeEnemyRequest.MemberId); user.Enemies.Remove(removeEnemyRequest.EnemyId); return(Accepted($"api/members/{user.Id}/enemies", user.Enemies)); }
//Validates that a proper member Id and enemyId were submitted and that the enemy is on members enemy list for remove enemy request. public ValidationResponse ValidateRemoveEnemy(RemoveEnemyRequest request) { if (MemberRepo._Members.Where(member => member.Id == request.MemberId).Count() == 0) { return(new ValidationResponse(false, "Invalid member Id. No member found with matching Id.")); } else if (MemberRepo._Members.Where(member => member.Id == request.EnemyId).Count() == 0) { return(new ValidationResponse(false, "Invalid enemy Id. No member found with matching Id.")); } else if (!_members.GetMember(request.MemberId).Enemies.Contains(request.EnemyId)) { return(new ValidationResponse(false, "Enemy is not on member's enemy list.")); } return(new ValidationResponse(true)); }