Пример #1
0
        //Материализует 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();
            }
        }
Пример #2
0
        //добавляем новый пост в базу
        //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);
            }
        }