public async Task <PostPicture> AddPostPicture(PostPicture picture)
        {
            if (!await _context.Posts.AnyAsync(p => p.Id.Equals(picture.Post.Id)))
            {
                throw new PostNotFoundException(Constants.Errors.PostNotFound);
            }
            _context.Entry(picture.Post).State = EntityState.Unchanged;
            _context.PostPictures.Add(picture);
            await _context.SaveChangesAsync();

            return(picture);
        }
Esempio n. 2
0
        /// <summary>
        ///     Updates a post picture
        /// </summary>
        /// <param name="postPicture">Post picture</param>
        public virtual void UpdatePostPicture(PostPicture postPicture)
        {
            if (postPicture == null)
            {
                throw new ArgumentNullException("postPicture");
            }

            _postPictureRepository.Update(postPicture);

            //event notification
            _eventPublisher.EntityUpdated(postPicture);
        }
Esempio n. 3
0
        public async Task AddAlbumPictures(string id, string[] modelPictures)
        {
            var pictures = new List <PostPicture>();

            foreach (var b in modelPictures)
            {
                var picture = new PostPicture
                {
                    Id          = Guid.NewGuid().ToString(),
                    userId      = id,
                    postId      = id,
                    pictureLink = b,
                };
                pictures.Add(picture);
            }

            await _pictureRepository.AddPictures(pictures);
        }
Esempio n. 4
0
 public async Task <IActionResult> AddPostPicture([FromBody] PostPicture model)
 {
     return(Ok(await _postPictureService.AddPostPicture(model)));
 }
Esempio n. 5
0
 public bool Add(PostPicture picture)
 {
     _context.Add(picture);
     return(_context.SaveChanges() > 0);
 }
Esempio n. 6
0
        public async Task SendPost(string postText, string[] pictureLink, string id, string groupId)
        {
            string name   = "";
            string avatar = "";
            string link;

            if (groupId != null && _context.Groups.FirstOrDefault(x => x.userId == id && x.Id == groupId) != null)
            {
                id = groupId;
                Group group = await _context.Groups.FindAsync(id);

                name   = group.name;
                avatar = group.avatarLink;
                link   = $"/Group/{group.Id}";
            }
            else
            {
                if (_context.Subscribers.FirstOrDefault(x => x.userId == id && x.groupId == groupId && x.isAdmin == true) != null)
                {
                    id = groupId;
                    Group group = await _context.Groups.FindAsync(id);

                    name   = group.name;
                    avatar = group.avatarLink;
                    link   = $"/Group/{group.Id}";
                }
                else
                {
                    UserInfo user = await _context.UserInfo.FindAsync(id);

                    name   = $"{user.FirstName} {user.SecondName}";
                    avatar = user.Avatar;
                    link   = $"/Profile/{user.Id}";
                }
            }
            try
            {
                if (postText == "")
                {
                    throw new Exception();
                }
                Post newPost = new Post
                {
                    Id         = Guid.NewGuid().ToString(),
                    userId     = id,
                    postText   = postText,
                    createDate = DateTime.Now
                };
                await _context.Posts.AddAsync(newPost);

                List <Picture> pictures = new List <Picture>();
                if (pictureLink.Count() != 0)
                {
                    foreach (var b in pictureLink)
                    {
                        PostPicture picture = new PostPicture
                        {
                            Id          = Guid.NewGuid().ToString(),
                            userId      = id,
                            postId      = newPost.Id,
                            pictureLink = b,
                        };
                        pictures.Add(new Picture
                        {
                            Id          = picture.Id,
                            pictureLink = picture.pictureLink
                        });
                        await _context.Pictures.AddAsync(picture);
                    }
                }
                await _context.SaveChangesAsync();

                Posts post = new Posts
                {
                    Id          = newPost.Id,
                    userId      = name,
                    postText    = postText,
                    createDate  = DateTime.Now,
                    pictureLink = pictures,
                    likes       = 0,
                    avatar      = avatar,
                    link        = link,
                };
                await Clients.All.SendAsync("NewPost", post);
            }
            catch
            {
            }
        }