public IHttpActionResult Detail(string UserID, string MomentID)
        {
            DisplayedMoment dm    = new DisplayedMoment();
            string          Email = api.UserIDToEmail(UserID);
            //连接数据库
            OracleConnection conn = new OracleConnection(DBAccess.connStr);

            try
            {
                conn.Open();
            }
            catch (Exception ex)
            {
                throw (ex);
            }
            OracleCommand cmd = new OracleCommand();

            cmd.Connection = conn;
            OracleDataReader rd  = Access.GetDataReader(Access.Select("*", "moment", "id='" + MomentID + "'"));
            Moment           mmt = new Moment();

            if (rd.Read())
            {
                mmt.ID         = rd[0].ToString();
                mmt.SenderID   = rd[1].ToString();
                mmt.Content    = rd[2].ToString();
                mmt.LikeNum    = Convert.ToInt32(rd[3]);
                mmt.ForwardNum = Convert.ToInt32(rd[4]);
                mmt.CollectNum = Convert.ToInt32(rd[5]);
                mmt.CommentNum = Convert.ToInt32(rd[6]);
                if (rd[7] is DBNull)
                {
                    mmt.Time = null;
                }
                else
                {
                    mmt.Time = rd[7].ToString();
                }
                if (rd[8] is DBNull)
                {
                    mmt.QuoteMID = null;
                }
                else
                {
                    mmt.QuoteMID = rd[8].ToString();
                }
            }

            dm             = All_Info_Of(mmt, Email, 1000);
            dm.FollowState = api.CheckFollowState(UserID, mmt.SenderID);

            return(Json(dm));
        }
        /// <summary>
        /// 获得一条动态的相关信息
        /// </summary>
        /// <param name="mmt">Moment类型的动态</param>
        /// <param name="email">发送请求的用户的邮箱</param>
        /// <returns>用于展示的DisplayedMoment类型</returns>
        private DisplayedMoment All_Info_Of(Moment mmt, string email, int comment_limit)
        {
            DBAccess        access = new DBAccess();
            DisplayedMoment dm     = new DisplayedMoment();

            //获取动态内容
            dm.moment = mmt;

            //获取发送动态的用户信息
            Users user = api.GetUserInfoByID(mmt.SenderID);

            dm.user_email    = user.Email;
            dm.user_username = user.Username;
            dm.user_bio      = user.Bio;

            //获取原始动态的用户信息
            OracleDataReader rd = access.GetDataReader(access.Select("sender_ID", "moment", "ID='" + mmt.QuoteMID + "'"));

            if (rd.Read())
            {
                Users forwarded = api.GetUserInfoByID(rd[0].ToString());
                dm.forwarded_id       = forwarded.Email;
                dm.forwarded_username = forwarded.Username;
            }
            else
            {
                dm.forwarded_id       = null;
                dm.forwarded_username = null;
            }

            //获取标签信息
            dm.tags = new List <string>();
            string CommandText = "select tag from moment_tag where moment_id = '" + mmt.ID + "'";

            rd = access.GetDataReader(CommandText);
            while (rd.Read())
            {
                dm.tags.Add(rd[0].ToString());
            }

            //获取评论信息
            dm.comments = null;


            //获知是否点赞过
            dm.liked = api.CheckLikeState(email, mmt.ID);

            //获知是否收藏过
            dm.collected = api.CheckCollectState(email, mmt.ID);

            return(dm);
        }
        public IHttpActionResult Followings(string Email, int Page)
        {
            OracleConnection conn = new OracleConnection(DBAccess.connStr);
            OracleCommand    CMD  = new OracleCommand();

            CMD.Connection = conn;
            List <DisplayedMoment> moments = new List <DisplayedMoment>();

            //获取用户ID
            string UserID = api.EmailToUserID(Email);

            //获取朋友圈中所有Moment
            CMD.CommandText = "select moment.id, sender_id, content,  like_num, forward_num, collect_num, comment_num, TO_CHAR(time,'YYYY-MM-DD HH24:MI:SS'), quote_mid " +
                              "from users,moment " +
                              "where moment.sender_id = users.id and " +
                              "(users.id = '" + UserID + "' or " +
                              "users.id in (select following_id " +
                              "from follow_user " +
                              "where follow_user.user_id = '" + UserID + "')) " +
                              "order by moment.time desc";

            try
            {
                conn.Open();
            }
            catch (Exception ex)
            {
                throw (ex);
            }
            DataSet           ds    = new DataSet();
            OracleDataAdapter OraDA = new OracleDataAdapter(CMD.CommandText, conn);

            OraDA.Fill(ds, 5 * (Page - 1), 5, "ds");

            foreach (DataRow row in ds.Tables[0].Rows)
            {
                DisplayedMoment DM = new DisplayedMoment();

                //动态内容
                DM.moment            = new Moment();
                DM.moment.ID         = row[0].ToString();
                DM.moment.SenderID   = row[1].ToString();
                DM.moment.Content    = row[2].ToString();
                DM.moment.LikeNum    = Convert.ToInt32(row[3]);
                DM.moment.ForwardNum = Convert.ToInt32(row[4]);
                DM.moment.CollectNum = Convert.ToInt32(row[5]);
                DM.moment.CommentNum = Convert.ToInt32(row[6]);
                DM.moment.Time       = row[7].ToString();
                DM.moment.QuoteMID   = row[8].ToString();

                //是否有更多评论
                if (DM.moment.CommentNum > 4)
                {
                    DM.more_comments = true;
                }

                //发送动态的用户信息
                Users user = api.GetUserInfoByID(DM.moment.SenderID);
                DM.user_email    = user.Email;
                DM.user_username = user.Username;
                DM.user_bio      = user.Bio;

                //原始动态的用户信息
                //OracleDataReader R = access.GetDataReader(access.Select("sender_ID", "moment", "ID='" + DM.moment.QuoteMID + "'"));
                CMD.CommandText = "select sender_ID from moment where ID='" + DM.moment.QuoteMID + "'";
                OracleDataReader R = CMD.ExecuteReader();
                if (R.Read())
                {
                    Users forwarded = api.GetUserInfoByID(R[0].ToString());
                    DM.forwarded_id       = forwarded.ID;
                    DM.forwarded_username = forwarded.Username;
                }
                else
                {
                    DM.forwarded_id       = null;
                    DM.forwarded_username = null;
                }

                //获取标签信息
                DM.tags         = new List <string>();
                CMD.CommandText = "select tag from moment_tag where moment_id = '" + DM.moment.ID + "'";
                //R = access.GetDataReader(cmd);
                R = CMD.ExecuteReader();
                while (R.Read())
                {
                    DM.tags.Add(R[0].ToString());
                }

                //获取评论信息
                DM.comments = GetComments(DM.moment.ID, 4);

                //获知是否点赞过
                DM.liked = api.CheckLikeState(Email, DM.moment.ID);

                //获知是否收藏过
                DM.collected = api.CheckCollectState(Email, DM.moment.ID);

                moments.Add(DM);
            }

            conn.Close();
            return(Json(moments));
        }