private IActionResult OkSubmit(SuggestNameModel model)
        {
            var suggestion = model.CreateSuggestion(Request.HttpContext.Connection.RemoteIpAddress.ToString());

            DbContext.Suggestions.Add(suggestion);
            DbContext.SaveChanges();
            return(View("SubmitResults"));
        }
        public IActionResult SubmitResults([FromForm] SuggestNameModel model)
        {
            var sugState =
                model.GetSuggestionValidationState(Request.HttpContext.Connection.RemoteIpAddress.ToString(), DbContext);

            return(ModelState.IsValid && sugState == SuggestionValidationState.VALID
                ? OkSubmit(model)
                : FailSubmit(sugState, model));
        }
        private IActionResult FailSubmit(SuggestionValidationState sugState, SuggestNameModel model)
        {
            if (sugState == SuggestionValidationState.SUGGESTIONEXISTS)
            {
                if (UpVote.TryAdd(DbContext, model.Proposition,
                                  Request.HttpContext.Connection.RemoteIpAddress.ToString()))
                {
                    sugState = SuggestionValidationState.SUGGESTIONUPVOTED;
                }
            }
            ErrorSuggestModel errorSuggestModel = new ErrorSuggestModel(sugState);

            return(View("ErrorSubmit", errorSuggestModel));
        }