예제 #1
0
        public void SuggestWordsTest()
        {
            ConfigureSimpleWordList();
            var undertest = new SimpleBoardController();
            var model     = new SuggestionRequestModel();
            var list      = WordListConfig.Lists[WordListConfig.ENGLISH_AS_A_SECOND_LANGUAGE];
            var board     = Board.InitiliseBoard(list);

            board.GetCell(1, 1).Letter = 'A';
            board.GetCell(1, 2).Letter = 'B';
            board.GetCell(1, 3).Letter = 'C';
            model.Board       = new BoardModel(board, list);
            model.Hand        = new HandModel("rtat");
            model.Suggestions = new SuggestionsModel();
            ActionResult action = undertest.SuggestWords(model);

            Assert.AreEqual(typeof(ViewResult), action.GetType());

            ViewResult result = action as ViewResult;

            Assert.AreEqual("Index", result.ViewName);
            Assert.IsNotNull(result.Model);
            Assert.AreEqual(typeof(SuggestionRequestModel), result.Model.GetType());

            var resultantModel = result.Model as SuggestionRequestModel;

            Assert.IsNotNull(resultantModel);
            Assert.IsNotNull(resultantModel.Board);
            Assert.IsNotNull(resultantModel.Hand);
            Assert.IsNotNull(resultantModel.Suggestions);
            Assert.AreEqual(3, resultantModel.Suggestions.Moves.Count());
        }
예제 #2
0
        public IHttpActionResult Post(SuggestionRequestModel model)
        {
            var userId = model.isAnonymous ? null : this.User.Identity.GetUserId();

            var newSuggestion = this.suggestions
                                .AddSuggestion(userId, Mapper.Map <Suggestion>(model));

            return(this.Ok(Mapper.Map <SuggestionResponseModel>(newSuggestion)));
        }
        public Suggestion UpdateSuggestion(Suggestion suggestionToUpdate, SuggestionRequestModel model)
        {
            suggestionToUpdate.Title     = model.Title;
            suggestionToUpdate.Content   = model.Content;
            suggestionToUpdate.isPrivate = model.isPrivate;

            this.suggestions.SaveChanges();
            return(suggestionToUpdate);
        }
        public ActionResult SuggestWords(SuggestionRequestModel suggestionRequest)
        {
            var suggestions = new SuggestionsModel();

            suggestions.Moves = FindMoves(suggestionRequest.Board.Board, suggestionRequest.Hand.Hand, suggestionRequest.Board.List)
                                .Take(20).ToImmutableList();
            suggestionRequest.Suggestions = suggestions;

            return(View("Index", suggestionRequest));
        }
        public IHttpActionResult Post(SuggestionRequestModel model)
        {
            var userId = model.isAnonymous ? null : this.User.Identity.GetUserId();

            var newSuggestion = this.suggestions
                                .AddSuggestion(userId, Mapper.Map <Suggestion>(model));

            return(this.Created(
                       string.Format("/api/suggestions/{0}", newSuggestion.Id),
                       Mapper.Map <SuggestionResponseModel>(newSuggestion)));
        }
        // GET: SimpleBoard
        public ActionResult Index()
        {
            WordList list  = WordListConfig.Lists[WordListConfig.ENGLISH_AS_A_SECOND_LANGUAGE];
            var      board = Board.InitiliseBoard(list);

            var suggestionRequest = new SuggestionRequestModel();

            suggestionRequest.Board       = new BoardModel(board, list);
            suggestionRequest.Hand        = new HandModel();
            suggestionRequest.Suggestions = new SuggestionsModel();

            return(View(suggestionRequest));
        }
        public IHttpActionResult Put(int id, SuggestionRequestModel model)
        {
            var suggestion = this.suggestions
                             .GetSuggestionById(id)
                             .SingleOrDefault();

            if (suggestions == null)
            {
                return(this.BadRequest("Suggestion does not exist"));
            }

            if (!this.suggestions.UserIsEligibleToModifySuggestion(suggestion, this.User.Identity.GetUserId(), this.User.IsInRole(UserConstants.AdminRole)))
            {
                return(this.BadRequest("You are not allowed to modify this suggestion!"));
            }

            var newSuggestion = this.suggestions
                                .UpdateSuggestion(suggestion, model);

            return(this.Ok(Mapper.Map <SuggestionResponseModel>(newSuggestion)));
        }
예제 #8
0
        public IHttpActionResult Put(int id, SuggestionRequestModel model)
        {
            var suggestion = this.suggestions
                             .GetSuggestionById(id)
                             .SingleOrDefault();

            if (suggestion == null)
            {
                return(this.BadRequest(SuggestionsConstants.SuggestionNotExist));
            }

            if (!this.suggestions.UserIsEligibleToModifySuggestion(suggestion, this.User.Identity.GetUserId(), this.User.IsInRole(UserConstants.AdminRole)))
            {
                return(this.BadRequest(SuggestionsConstants.NoPermissionToEdit));
            }

            var newSuggestion = this.suggestions
                                .UpdateSuggestion(suggestion, model);

            return(this.Ok(Mapper.Map <SuggestionResponseModel>(newSuggestion)));
        }