public ActionResult Create(CreatePostModel post, HttpPostedFileBase image = null) { if (ModelState.IsValid) { ContentRepository.addPost(post, image, User.Identity.Name); return RedirectToAction("Index", "Home"); } else { return View(); } }
//добавляем новый пост в базу //postModel - текстовые данные введённый пользователем //image - изображение в том виде, в каком мы получили его от браузера //username - имя пользователя, которому принадлежит пост public static void addPost(CreatePostModel postModel, HttpPostedFileBase image, string username) { using (DBContext db = new DBContext()) { Post post = new Post(); //добавление к записи заголовка и текста post.Header = postModel.Header; post.Text = postModel.Text; //добавляем изображение if (image != null) { post.Image = new Image { ImageMimeType = image.ContentType, ImageData = new byte[image.ContentLength] }; //записываем битарей изображения image.InputStream.Read(post.Image.ImageData, 0, image.ContentLength); } //добавляем пользователя, автора поста post.User = db.Users.FirstOrDefault(u => u.Login == username); Debug.Assert(post.User != null, "пользователь не существует"); //сохранение в базе db.Posts.Add(post); db.SaveChanges(); //добавляем теги в базу var tags = addTags(postModel.Tags); //ассоциируем с ними пост relatedTagsAndPost(post.Id_post, tags); } }