public async Task <ActionResult> RequestToken([FromBody] TokenRequest request)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var authenticateResult = await authService.IsAuthenticated(request);

            if (authenticateResult.Success)
            {
                var result = new AuthenticatedUserResult()
                {
                    Success = true,
                    Message = ControllerMessages.StatusCode200(authenticateResult.Message),
                    User    = authenticateResult.User,
                    Token   = authenticateResult.Token
                };

                return(Ok(result));
            }
            else if (authenticateResult.Message.Equals(AppsMessages.AppDeactivatedMessage))
            {
                return(NotFound(ControllerMessages.StatusCode404(authenticateResult.Message)));
            }
            else if (authenticateResult.Message.Equals(AppsMessages.UserIsNotARegisteredUserOfThisAppMessage))
            {
                return(NotFound(ControllerMessages.StatusCode404(authenticateResult.Message)));
            }
            else
            {
                var result = await userManagementService
                             .ConfirmAuthenticationIssue(request.UserName, request.Password);

                if (result == UserAuthenticationErrorType.USERNAMEINVALID)
                {
                    return(BadRequest(ControllerMessages.StatusCode400("No User Has This User Name")));
                }
                else if (result == UserAuthenticationErrorType.PASSWORDINVALID)
                {
                    return(BadRequest(ControllerMessages.StatusCode400("Password Invalid")));
                }
                else
                {
                    return(BadRequest(ControllerMessages.StatusCode400("Bad Request")));
                }
            }
        }
        public async Task <IActionResult> AddSolutions(
            [FromBody] AddSolutionRequest request)
        {
            if (await appsService.IsRequestValidOnThisLicense(
                    request.AppId,
                    request.License,
                    request.RequestorId))
            {
                if (request.Limit <= 1000)
                {
                    var result = await solutionService.AddSolutions(request.Limit);

                    if (result.Success)
                    {
                        result.Message = ControllerMessages.StatusCode200(result.Message);

                        return(Ok(result));
                    }
                    else
                    {
                        result.Message = ControllerMessages.StatusCode404(result.Message);

                        return(NotFound(result));
                    }
                }
                else
                {
                    return(BadRequest(
                               ControllerMessages.StatusCode400(
                                   string.Format(
                                       "The Amount Of Solutions Requested, {0}, Exceeds The Service's 1,000 Limit",
                                       request.Limit.ToString())
                                   )));
                }
            }
            else
            {
                return(BadRequest(ControllerMessages.InvalidLicenseRequestMessage));
            }
        }
        public async Task <ActionResult> PostAnnonymousGame([FromQuery] AnnonymousGameRequest request)
        {
            if (request.DifficultyLevel == DifficultyLevel.NULL)
            {
                return(BadRequest(
                           ControllerMessages.StatusCode400(
                               GamesMessages.DifficultyLevelIsRequiredMessage)));
            }

            var result = await gamesService.CreateAnnonymousGame(request.DifficultyLevel);

            if (result.Success)
            {
                result.Message = ControllerMessages.StatusCode200(result.Message);

                return(Ok(result));
            }
            else
            {
                result.Message = ControllerMessages.StatusCode404(result.Message);

                return(NotFound(result));
            }
        }