Exemple #1
0
        public void SubmitAbsoluteScore()
        {
            var userBusiness = new UserBusiness();

            var requestObject = new AbsoluteScoreDTO()
            {
                Total = 100,
                User  = 1,
            };

            var result = userBusiness.SubmitAbsoluteScore(requestObject);

            Assert.IsNotNull(result);

            requestObject = new AbsoluteScoreDTO()
            {
                Total = 100,
                User  = 500,
            };

            result = userBusiness.SubmitAbsoluteScore(requestObject);

            Assert.IsNull(result);

            requestObject = new AbsoluteScoreDTO()
            {
                Total = 915154,
                User  = 1,
            };

            result = userBusiness.SubmitAbsoluteScore(requestObject);

            Assert.IsNull(result);
        }
        public HttpResponseMessage PutSubmitAbsoluteScore(AbsoluteScoreDTO absoluteScoreDTO)
        {
            HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.InternalServerError);

            try
            {
                if (ModelState.IsValid)
                {
                    UserBusiness userBusiness = new UserBusiness();

                    var result = userBusiness.SubmitAbsoluteScore(absoluteScoreDTO);

                    if (result != null)
                    {
                        response = Request.CreateResponse(HttpStatusCode.OK, "Absolute score successfully updated");
                    }
                    else
                    {
                        response = Request.CreateResponse(HttpStatusCode.NotFound, "User not found");
                    }
                }
                else
                {
                    response = Request.CreateResponse(HttpStatusCode.BadRequest, "The request object doesn't match with the requirement");
                }
            }
            catch (Exception e)
            {
                Logger.Error("UserController", "Get", e.Message);
                response = Request.CreateResponse(HttpStatusCode.InternalServerError, "Unexpected error");
            }

            return(response);
        }
Exemple #3
0
        public void PutSubmitAbsoluteScore()
        {
            var controller = SetController();

            var requestObject = new AbsoluteScoreDTO()
            {
                Total = 100,
                User  = 1,
            };

            controller.Validate(requestObject);
            var result = controller.PutSubmitAbsoluteScore(requestObject);

            Assert.IsNotNull(result.StatusCode);

            Assert.AreEqual(HttpStatusCode.OK, result.StatusCode);

            requestObject = new AbsoluteScoreDTO()
            {
                Total = 100,
                User  = 500,
            };

            controller.Validate(requestObject);
            result = controller.PutSubmitAbsoluteScore(requestObject);

            Assert.IsNotNull(result.StatusCode);

            Assert.AreEqual(HttpStatusCode.NotFound, result.StatusCode);

            requestObject = new AbsoluteScoreDTO()
            {
                Total = 915154,
                User  = 1,
            };

            controller.Validate(requestObject);
            result = controller.PutSubmitAbsoluteScore(requestObject);

            Assert.IsNotNull(result.StatusCode);

            Assert.AreEqual(HttpStatusCode.BadRequest, result.StatusCode);
        }
        public UserDTO SubmitAbsoluteScore(AbsoluteScoreDTO absoluteScoreDTO)
        {
            Logger.Trace("UserBusiness", "SubmitAbsoluteScore", "Starting the method");

            UserDTO result = null;

            try
            {
                var unitOfWork = Database.Context.Instance;

                var userRepository = new UserRepository(unitOfWork);

                var user = userRepository.GetById(absoluteScoreDTO.User);

                if (user != null && absoluteScoreDTO.Total >= 0 && absoluteScoreDTO.Total <= 1000)
                {
                    if (user.Games != null)
                    {
                        //this is because for this specific test I only have used one game
                        user.Games[0].Score = absoluteScoreDTO.Total;
                    }
                    else
                    {
                        throw new BusinessCustomException("The user has not subscribed to any game");
                    }

                    user = userRepository.Update(user);

                    result = UserToUserDTO(user);
                }
            }
            catch (Exception e)
            {
                Logger.Error("UserBusiness", "SubmitAbsoluteScore", e.Message);
                throw e;
            }
            finally
            {
                Logger.Trace("UserBusiness", "SubmitAbsoluteScore", "Finishing method");
            }

            return(result);
        }