//Материализует Post и преобразывает его во PostView static PostView postToPostView(Post post) { PostView postView = new PostView(); if (post != null) { postView.Header = post.Header ?? " "; if (post.Image!=null) { postView.id_image = post.Image.Id_image; } postView.id_post = post.Id_post; postView.tags = post.Tags.Select(tag => tag.name).ToList(); postView.textContent = post.Text ?? ""; postView.username = post.User.Login ?? ""; return postView; } else { throw new PostNotExistException(); } }
//добавляем новый пост в базу //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); } }