/// <summary>
        /// This method downloads the file of the FTP server
        /// </summary>
        /// <param name="post"></param>
        private void DownloadMedia(Post post)
        {
            if (post.MediaID == 0) return;

            _media = LogicCollection.MediaLogic.GetById(post.MediaID);

            var saveMedia = new FolderBrowserDialog();

            if (saveMedia.ShowDialog() != DialogResult.OK) return;

            var pathSelected = saveMedia.SelectedPath;

            var succeeded = false;
            if (_media.Type == MediaType.Image)
            {
                try
                {
                    pbMediaMessage.Image.Save($"{pathSelected}/{_media.Path}");
                    succeeded = true;
                }
                catch (IOException e)
                {
                    Logger.Write(e.Message);
                    succeeded = false;
                }
            }
            else
            {
                succeeded = FtpHelper.DownloadFile($"/{post.EventID}/{post.GuestID}/{_media.Path}", $"{pathSelected}/{_media.Path}");
            }

            MessageBox.Show(succeeded
                ? "Bestand is succesvol gedownload"
                : "Er is iets misgegaan met het downloaden van deze media");
        }
        public bool AddLikeToPost(Post post, Guest guest)
        {
            if (_likes.Any(x => x.Key == post.ID && x.Value == guest.ID)) return false;

            _likes.Add(new KeyValuePair<int, int>(post.ID, guest.ID));
            return true;
        }
        /// <summary>
        /// Creates a post adds it to database
        /// </summary>
        private void btPostAanmaken_Click(object sender, EventArgs e)
        {
            // Check if message is empty
            if (string.IsNullOrEmpty(tbBerichtPost.Text))
            {
                MessageBox.Show("Ga je echt niets vertellen?");
            }
            else
            {
                // Check if chosen file is uploaded
                if (!string.IsNullOrEmpty(_uploadedMedia.Filepath) && (_uploadedMedia.UploadedFile == null))
                {
                    MessageBox.Show("Eerst uploaden voor het posten.");
                }
                else
                {
                    Post addedPost = null;
                    if (string.IsNullOrEmpty(_uploadedMedia.Filepath))
                    {
                        var media = (Media)cmbOwnMedia.SelectedItem;
                        Post p;
                        if (media == null)
                        {
                            // Post without media
                            p = new Post(0, _user.ID, _event.ID, 0, DateTime.Now, true, tbBerichtPost.Text);
                        }
                        else
                        {
                            p = new Post(0, _user.ID, _event.ID, media.ID, DateTime.Now, true, tbBerichtPost.Text);
                        }
                        addedPost = _logicPost.InsertPost(p);

                    }
                    else if(!string.IsNullOrEmpty(_uploadedMedia.Filepath))
                    {
                        // Post with media
                        if (_uploadedMedia.UploadedFile != null)
                        {
                            addedPost = _logicPost.InsertPost(new Post(0, _user.ID, _event.ID, _uploadedMedia.UploadedFile.ID, DateTime.Now, true, tbBerichtPost.Text));
                        }
                    }

                    // List of tags
                    if (addedPost != null)
                    {
                        foreach (var tag in addedPost.Tags)
                        {
                            _logicPost.AddTagToPost(addedPost, tag.ToLower());
                        }
                        MessageBox.Show("Je bericht is gepubliceerd op je tijdlijn");
                    }
                    else
                    {
                        MessageBox.Show("Je bericht is niet gepubliceerd op de tijdlijn");
                    }

                }
            }
        }
        public bool CheckReportStatus(Post post)
        {
            var allReportsByPost = LogicCollection.PostLogic.GetReportsByPost(post);
            if (allReportsByPost.Count < 5) return false;

            post.Visible = false;
            LogicCollection.PostLogic.UpdatePost(post);
            return true;
        }
        public bool Delete(Post entity)
        {
            var post = _posts.FirstOrDefault(e => e.ID == entity.ID);
            if (post == null) return false;

            _posts.Remove(post);
            _posts.Add(entity);
            return true;
        }
        public PostFeedExtended(Post post, Event ev, User admin)
        {
            InitializeComponent();
            _logicPost = new PostLogic();
            _reportContext = new ReportOracleContext();

            _post = post;
            _event = ev;
            _admin = admin;
        }
        public PostFeedExtended(Post post, Event ev, User user)
        {
            InitializeComponent();
            _logicPost = new PostLogic();
            _reportContext = new ReportOracleContext();

            _post = post;
            _event = ev;

            _activeUser = user;
        }
        public PostFeedExtended(Post post, Event ev, Guest active)
        {
            InitializeComponent();
            _logicPost = new PostLogic();
            _reportContext = new ReportOracleContext();

            _post = post;
            _event = ev;

            // Currently signed in guest
            _activeUser = active;
        }
        public PostFeed(Post post, Event ev, User user, bool reply)
        {
            InitializeComponent();

            Post = post;
            _event = ev;

            lbReaction.Visible = !reply;

            // Currently signed in user
            _activeUser = user;

            // Guest of the post
            _postUser = LogicCollection.UserLogic.GetById(Post.GuestID);
        }
        /// <summary>
        /// This method is use to load image from FTP server
        /// </summary>
        /// <param name="post">The post to look up the media of</param>
        private void ShowMedia(Post post)
        {
            if (post.MediaID != 0)
            {
                _media = LogicCollection.MediaLogic.GetById(post.MediaID);
                switch (_media.Type)
                {
                    case MediaType.Image:
                        var ftpPath = $"/{post.EventID}/{post.GuestID}/{_media.Path}";
                        pbMediaMessage.ImageLocation = $"{FtpHelper.ServerHardLogin}/{ftpPath}";
                        break;
                    case MediaType.Audio:
                        // Show mp3 icon
                        pbMediaMessage.Image = Properties.Resources.mp3;
                        break;
                    default:
                        // Show mp4 icon
                        pbMediaMessage.Image = Properties.Resources.mp4;
                        break;
                }
            }
            else
            {
                // Post doesn't have any attached media
                pbMediaMessage.Visible = false;
                lblDownloadMedia.Visible = false;

                tbMessage.Width = 614;

                lblLikeStatus.Location = new Point(545, lblLikeStatus.Location.Y);
                lbLike.Location = new Point(560, lbLike.Location.Y);

                lblDeletePost.Location = new Point(481, lblDeletePost.Location.Y);
                lbReport.Location = new Point(481, lbReport.Location.Y);

                lbReaction.Location = new Point(420, lbReaction.Location.Y);
            }
        }
 private void WatchPost(Post post)
 {
     var listOfReports = LogicCollection.PostLogic.GetReportsByPost(post);
     if (listOfReports.Count >= 1)
     {
         var rep = string.Empty;
         for (var i = 0; i < listOfReports.Count; i++)
         {
             rep += $"Report {i + 1}: {listOfReports[i].Reason}\r\n";
         }
         MessageBox.Show($"Inhoud bericht:\r\n{post.Content}\r\nDatum: {post.Date.ToString("dd MMMM yyyy")}\r\nGuestID: {post.GuestID}\r\n\r\n{rep}");
     }
     else
     {
         MessageBox.Show($"{post.Content}\r\nDatum: {post.Date.ToString("dd MMMM yyyy")}\r\nGuestID: {post.GuestID}");
     }
 }
 public Post InsertPost(Post post)
 {
     return _context.Insert(post);
 }
 public List<Report> GetReportsByPost(Post post)
 {
     return _reportContext.GetAllByPost(post);
 }
 public List<Reply> GetRepliesByPost(Post post)
 {
     return _context.GetRepliesByPost(post);
 }
 /// <summary>
 /// Adds a like to the a post
 /// </summary>
 /// <param name="guest">Guest that liked the post</param>
 /// <param name="post">Post that got liked</param>
 /// <returns>true if succesfull</returns>
 public bool Like(Guest guest, Post post)
 {
     return _context.AddLikeToPost(post, guest.ID);
 }
 public List<int> GetAllLikes(Post post)
 {
     return _likes.Where(x => x.Key == post.ID).Select(y=> y.Value).ToList();
 }
 public List<string> GetTagsByPost(Post post)
 {
     throw new NotImplementedException();
 }
Beispiel #18
0
 /// <summary>
 /// Adds a like to the a post
 /// </summary>
 /// <param name="admin">Guest that liked the post</param>
 /// <param name="post">Post that got liked</param>
 /// <returns>true if succesfull</returns>
 public bool Like(User admin, Post post)
 {
     return _context.AddLikeToPost(post, admin);
 }
Beispiel #19
0
 /// <summary>
 /// Removes a like from a post
 /// </summary>
 /// <param name="admin">Guest that unliked the post</param>
 /// <param name="post">Post that got unliked</param>
 /// <returns>true if succesfull</returns>
 public bool UnLike(User admin, Post post)
 {
     return _context.RemoveLikeFromPost(post, admin);
 }
 /// <summary>
 /// Removes a like from a post
 /// </summary>
 /// <param name="guest">Guest that unliked the post</param>
 /// <param name="post">Post that got unliked</param>
 /// <returns>true if succesfull</returns>
 public bool Unlike(Guest guest, Post post)
 {
     return _context.RemoveLikeFromPost(post, guest.ID);
 }
 /// <summary>
 /// Removes a like from a post
 /// </summary>
 /// <param name="userid">Guest that unliked the post</param>
 /// <param name="post">Post that got unliked</param>
 /// <returns>true if succesfull</returns>
 public bool Unlike(int userid, Post post)
 {
     return _context.RemoveLikeFromPost(post, userid);
 }
 /// <summary>
 /// Adds a report to a post
 /// </summary>
 /// <param name="guest">Guest that reported the post</param>
 /// <param name="post">Post that got reported</param>
 /// <param name="reason">Reason of guest to report the post</param>
 /// <returns>true if Report was successfully entered</returns>
 public bool Report(Guest guest, Post post, string reason)
 {
     var report = new Report(guest.ID, post.ID, reason, DateTime.Now);
     return (_reportContext.Insert(report) != null);
 }
 /// <summary>
 /// Adds a like to the a post
 /// </summary>
 /// <param name="userid">GuestID of who liked the post</param>
 /// <param name="post">Post that got liked</param>
 /// <returns>true if succesfull</returns>
 public bool Like(int userid, Post post)
 {
     return _context.AddLikeToPost(post, userid);
 }
 public bool DeletePost(Post post)
 {
     return _context.Delete(post);
 }
 public List<Reply> GetRepliesByPost(Post post)
 {
     return _replies.Where(r => r.MainPostID == post.ID).ToList();
 }
 public List<int> GetAllLikes(Post post)
 {
     return _context.GetAllLikes(post);
 }
 public bool UpdatePost(Post post)
 {
     return _context.Update(post);
 }
 private void WatchPost(Post post)
 {
     MessageBox.Show($"Content: {post.Content} | Datum: {post.Date.ToString("yyyy MMMM dd")} | GuestID: {post.GuestID}");
 }
 private void CheckReportStatus(Post post, PostLogic postLogic, ReportOracleContext reportContext)
 {
     var allReports = reportContext.GetAllByPost(post);
     if (allReports.Count >= 5) post.Visible = false;
     postLogic.UpdatePost(post);
 }
 public bool AddTagToPost(Post post, string tag)
 {
     return _context.AddTagToPost(post, tag);
 }