예제 #1
0
        public ActionResult AddPost(Post model, HttpPostedFileBase imageData)
        {
            if (!ModelState.IsValid)
            {
                var postsN = dbContext.Posts.OrderByDescending(c => c.Id).ToList();
                ViewBag.Posts = postsN;

                return(View("Index", model));
            }

            if (imageData == null && model.Text == null)
            {
                ModelState.AddModelError(string.Empty, "Не загружено ни изображение, ни текст");
                var postsN = dbContext.Posts.OrderByDescending(c => c.Id).ToList();
                ViewBag.Posts = postsN;
                return(View("Index", model));
            }

            model.PubishDate = DateTime.Now;

            if (imageData != null)
            {
                if (!ImageFormatHelper.IsJpg(imageData))
                {
                    ModelState.AddModelError(string.Empty, "Загруженное изображение не картинка формата JPG");
                    var postsdb = dbContext.Posts.OrderByDescending(c => c.Id).ToList();
                    ViewBag.Posts = postsdb;
                    return(View("Index", model));
                }

                model.Photo = ImageSaveHelper.SaveImage(imageData);
            }



            var userId   = Convert.ToInt32(Session["UserId"]);
            var userInDb = dbContext.Users.FirstOrDefault(c => c.Id == userId);

            if (userInDb == null)
            {
                //пользователь не авторизован
                TempData["errorMessage"] = "Время сессии истекло. Авторизуйтесь повторно.";

                return(RedirectToAction("Index", "Home"));
            }

            model.Author = userInDb;

            dbContext.Posts.Add(model);

            dbContext.SaveChanges();

            var posts = dbContext.Posts.OrderByDescending(c => c.Id).ToList();

            ViewBag.Posts = posts;

            ModelState.Clear();

            return(View("Index"));
        }
        public ActionResult Register(User model, HttpPostedFileBase imageData)
        {
            if (ModelState.IsValid)
            {
                if (model.Password != model.PasswordConfirm)
                {
                    ModelState.AddModelError(string.Empty, "Введенные пароли не совпадают!");
                    return(View("Index", model));
                }

                var userIndb = dbContext.Users.FirstOrDefault(c => c.Nickname == model.Nickname);

                if (userIndb != null)
                {
                    ModelState.AddModelError(string.Empty, "Пользователь с таким именем уже существует");
                    return(View("Index", model));
                }

                var emailIndb = dbContext.Users.FirstOrDefault(c => c.Email == model.Email);

                if (emailIndb != null)
                {
                    ModelState.AddModelError(string.Empty, "Такая почта уже зарегистрирована");
                    return(View("Index", model));
                }


                if (imageData != null)
                {
                    if (!ImageFormatHelper.IsJpg(imageData))
                    {
                        ModelState.AddModelError(string.Empty, "Загруженное изображение не картинка формата JPG");
                        return(View("Index", model));
                    }

                    model.Photo = ImageSaveHelper.SaveImage(imageData);
                }

                dbContext.Users.Add(model);
                dbContext.SaveChanges();

                FormsAuthentication.SetAuthCookie(model.Nickname, false); // авторизация через куки
                Session["UserId"]   = model.Id.ToString();
                Session["Nickname"] = model.Nickname;
                Session["Photo"]    = ImageUrlHelper.GetUrl(model.Photo);

                return(RedirectToAction("Index", "Feed"));
            }
            return(View("Index", model));
        }
예제 #3
0
        public ActionResult Register(User model, HttpPostedFileBase imageData)//получать данные с формы и сохранять инфу в БД
        {
            if (ModelState.IsValid)
            {
                //регистрация
                if (model.Password != model.PasswordConfirm)//если пароли
                {
                    ModelState.AddModelError(string.Empty, "Введенные пароли не совпадают!");
                    return(View("Index", model));
                }
                //проверка для никнэйма
                var userInDb = dbContext.Users.FirstOrDefault(c => c.NickName == model.NickName);
                if (userInDb != null)
                {
                    ModelState.AddModelError(string.Empty, "Пользователь с таким псевдонимом уже существует!");
                    return(View("Index", model));
                }

                //проверка для почты
                var userEmailInDb = dbContext.Users.FirstOrDefault(c => c.Email == model.Email);
                if (userEmailInDb != null)
                {
                    ModelState.AddModelError(string.Empty, "Пользователь с такой почтой уже существует!");
                    return(View("Index", model));
                }

                if (imageData != null)
                {
                    if (!ImageFormatHelper.IsJpg(imageData))
                    {
                        ModelState.AddModelError(string.Empty, "Загруженное изображение не картинка формата JPG");
                        return(View("Index", model));
                    }

                    model.Photo = ImageSaveHelper.SaveImage(imageData);
                }
                dbContext.Users.Add(model);
                dbContext.SaveChanges();

                FormsAuthentication.SetAuthCookie(model.NickName, false); // задаем куки авторизации
                Session["UserId"]   = model.Id.ToString();
                Session["Nickname"] = model.NickName;
                Session["Photo"]    = ImageUrlHelper.GetUrl(model.Photo);

                return(RedirectToAction("Index", "Feed")); // переход на ленту
            }
            return(View("Index", model));
        }