Example #1
0
        //логин не должен существовать
        //поля не должны быть пустыми
        //возраст не должен быть отрицательным? (не тут, в хтмл)
        //только русские буквы? (не тут?)
        //можно без описания?
        public IActionResult Registration()
        {
            ViewBag.Error = null;

            if (Request.Method == "POST")
            {
                /*if (!Request.Form.TryGetValue("kittenName", out var kittenName) ||
                 *  !Request.Form.TryGetValue("squireName", out var squireName) ||
                 *  !Request.Form.TryGetValue("warriorName", out var warriorName) ||
                 *  !Request.Form.TryGetValue("leaderName", out var leaderName) ||
                 *  !Request.Form.TryGetValue("age", out var age) ||
                 *  !Request.Form.TryGetValue("gender", out var gender) ||
                 *  !Request.Form.TryGetValue("clan", out var clan) ||
                 *  !Request.Form.TryGetValue("rank", out var rank) ||
                 *  !Request.Form.TryGetValue("login", out var login) ||
                 *  !Request.Form.TryGetValue("password", out var password) ||
                 *  !Request.Form.TryGetValue("password2", out var password2)
                 *  )
                 * {
                 *  ViewBag.Error = "Неправильный формат запроса!";
                 *  return View();
                 * }*/

                Request.Form.TryGetValue("kittenName", out var kittenName);
                Request.Form.TryGetValue("squireName", out var squireName);
                Request.Form.TryGetValue("warriorName", out var warriorName);
                Request.Form.TryGetValue("leaderName", out var leaderName);
                Request.Form.TryGetValue("age", out var age);
                Request.Form.TryGetValue("gender", out var gender);
                Request.Form.TryGetValue("clan", out var clan);
                Request.Form.TryGetValue("rank", out var rank);
                Request.Form.TryGetValue("login", out var login);
                Request.Form.TryGetValue("password", out var password);
                Request.Form.TryGetValue("password2", out var password2);

                if ((kittenName.ToString().Length < 1) || squireName.ToString().Length < 1 || warriorName.ToString().Length < 1 ||
                    leaderName.ToString().Length < 1 || age.ToString().Length < 1 || gender.ToString().Length < 1 ||
                    clan.ToString().Length < 1 || rank.ToString().Length < 1 || login.ToString().Length < 1 ||
                    password.ToString().Length < 1 || password2.ToString().Length < 1)
                {
                    ViewBag.Error = "Заполнены не все обязательные поля.";
                    return(View());
                }

                if (RegistrationModel.Users.Keys.Contains(login))
                {
                    ViewBag.Error = "Пользователь с таким логином уже существует.";
                    return(View());
                }

                if (password != password2)
                {
                    ViewBag.Error = "Пароли не совпадают!";
                    return(View());
                }
                Request.Form.TryGetValue("description", out var description);
                RegistrationModel.Add(new User((string)kittenName, (string)squireName, (string)warriorName, (string)leaderName, (string)age, (string)gender, (string)clan,
                                               (string)rank, (string)description, (string)login, (string)password));


                HttpContext.Session.SetString("author", login);
                return(Redirect(nameof(Index)));
            }
            return(View());
        }