Ejemplo n.º 1
0
        private void setupTitle()
        {
            labelTime.Text = DateTimeHelp.ISO8601ToDotNet(Post.timestamp, true);
            labelWho.Text  = I18n.L.T("DetailView.Via") + " " + Post.code_name;

            labelWho.Left = labelTime.Right + 8;
        }
Ejemplo n.º 2
0
        private Rectangle DrawPostTime(Graphics g, Font font, Rectangle cellRect, Post post)
        {
            string _postTime = post.timestamp;

            _postTime = DateTimeHelp.ISO8601ToDotNet(_postTime, false);
            _postTime = DateTimeHelp.PrettyDate(_postTime);

            Size      _sizeTime = TextRenderer.MeasureText(g, _postTime, font) + new Size(2, 2);
            Rectangle _timeRect = new Rectangle(cellRect.X + cellRect.Width - _sizeTime.Width - 2 - ((post.favorite != null) ? FavoriteIconSize : 0), cellRect.Y + cellRect.Height - _sizeTime.Height - 4, _sizeTime.Width, _sizeTime.Height);

            TextRenderer.DrawText(g, _postTime, font, _timeRect, Color.FromArgb(127, 127, 127),
                                  TextFormatFlags.PreserveGraphicsClipping | TextFormatFlags.EndEllipsis);

            return(_timeRect);
        }
Ejemplo n.º 3
0
        public void ScrollToDay(DateTime date)
        {
            int k = -1;

            for (int i = 0; i < m_posts.Count; i++)
            {
                if (DateTimeHelp.ISO8601ToDateTime(m_posts[i].timestamp).Date == date)
                {
                    k = i;
                    break;
                }
            }

            if (k != -1)
            {
                dataGridView.FirstDisplayedScrollingRowIndex = k;
                m_postBS.Position = k;
            }
        }
Ejemplo n.º 4
0
        private void setCalendarBoldedDates(List <Post> posts)
        {
            MonthCalendar _mc = leftArea.MonthCalendar;

            _mc.SuspendLayout();

            _mc.BoldedDates.Clear();

            foreach (Post _p in posts)
            {
                DateTime _dt = DateTimeHelp.ISO8601ToDateTime(_p.timestamp);

                if (!_mc.BoldedDates.Contains(_dt.Date))
                {
                    _mc.BoldedDates.Add(_dt.Date);
                }
            }

            _mc.ResumeLayout();

            _mc.Invalidate();
        }
Ejemplo n.º 5
0
        private void setCalendarDay()
        {
            Post _post = m_postBS[m_postBS.Position] as Post;

            Main.Current.setCalendarDay(DateTimeHelp.ISO8601ToDateTime(_post.timestamp).Date);
        }
Ejemplo n.º 6
0
        private void bgWorkerGetAllData_DoWork(object sender, DoWorkEventArgs e)
        {
            string _firstGetCount               = "100";  //200
            string _continueGetCount            = "-100"; //200
            Dictionary <string, Post> _allPosts = new Dictionary <string, Post>();
            string _datum = string.Empty;

            MR_posts_getLatest _getLatest = null;

            try
            {
                _getLatest = RT.REST.Posts_getLatest(_firstGetCount);
            }
            catch
            {
                //Hack: Cloud ¦R¥X¿ù»~¸ê®Æ

                ForceLogout();
                m_getAllDataError = true;
                return;
            }

            if (_getLatest != null)
            {
                foreach (Post _p in _getLatest.posts)
                {
                    _allPosts.Add(_p.post_id, _p);
                    _datum = _p.timestamp;
                }

                if (_getLatest.get_count < _getLatest.total_count)
                {
                    int _remainingCount = int.MaxValue;

                    while (_remainingCount > 0)
                    {
                        _datum =
                            DateTimeHelp.ToUniversalTime_ToISO8601(DateTimeHelp.ISO8601ToDateTime(_datum).AddSeconds(1));

                        MR_posts_get _postsGet = RT.REST.Posts_get(_continueGetCount, _datum, "");

                        if (_postsGet != null)
                        {
                            foreach (Post _p in _postsGet.posts)
                            {
                                if (!_allPosts.ContainsKey(_p.post_id))
                                {
                                    _allPosts.Add(_p.post_id, _p);
                                    _datum = _p.timestamp;
                                }
                            }

                            _remainingCount = _postsGet.remaining_count;
                        }
                    }
                }
            }

            List <Post> _tmpPosts = new List <Post>();

            foreach (Post _p in _allPosts.Values)
            {
                _tmpPosts.Add(_p);
            }

            if (m_manualRefresh)
            {
                RT.SetAllCurrentGroupPostHaveRead();
            }

            RT.CurrentGroupPosts = _tmpPosts;

            if (m_manualRefresh)
            {
                SetLastReadPos();
            }

            s_logger.Info("bgWorkerGetAllData_DoWork. Get Post Count:" + _tmpPosts.Count);
        }
Ejemplo n.º 7
0
        public string GenCommentHTML(Post post)
        {
            string _html = "<blockquote><font face='微軟正黑體, Helvetica, Arial, Verdana, sans-serif' color='#eef'>";

            int k = 1;

            foreach (Comment _c in post.comments)
            {
                StringBuilder _s = new StringBuilder();

                _s.Append("	<table border=\"0\">");
                _s.Append("    	   <tr>");
                //_s.Append("            <td>&nbsp;&nbsp;&nbsp;</td>");
                _s.Append("      	     <td>");
                _s.Append(" 		<table border=\"0\">");
                _s.Append("    			<tr>");

                string _t = "      				<td><font size='2pt' color='gray'>[CommentTime] "+ I18n.L.T("DetailView.Via") +
                            " [code_name]</font></td>";

                _s.Append(_t);
                _s.Append("    			</tr>");
                _s.Append("    			<tr>");
                _s.Append("      				<td><font size='2.75pt'>[Comment]</font></td>");
                _s.Append("    			</tr>");
                _s.Append("		</table>");
                _s.Append("      	     </td>");
                _s.Append("    	  </tr>");
                _s.Append("	</table>");

                if (post.comment_count != k)
                {
                    _s.Append("<p></p>");
                }

                k++;

                string _content = HttpUtility.HtmlEncode(_c.content);
                _content = _content.Replace(Environment.NewLine, "<BR>");
                _content = _content.Replace("\n", "<BR>");
                _content = _content.Replace("\r", "<BR>");

                _html += _s.ToString();
                _html  = _html.Replace("[Comment]", _content);
                _html  = _html.Replace("[CommentTime]", DateTimeHelp.ISO8601ToDotNet(_c.timestamp, true));
                _html  = _html.Replace("[code_name]", _c.code_name);

                foreach (User _user in Main.Current.RT.AllUsers)
                {
                    if (_user.user_id == _c.creator_id)
                    {
                        _html = _html.Replace("[UserName]", _user.nickname);
                        _html = _html.Replace("[Avatar]", _user.avatar_url);
                    }
                }
            }

            _html += "</font></blockquote>";

            _html += "<HR>";

            return(_html);
        }