Пример #1
0
        public void ProcessRequest(HttpContext context)
        {
            context.Response.ContentType = "application/json";
            CY.UME.Core.Business.Account account;
            CY.UME.Core.Business.MiniBlog miniBlog;
            long miniBlogId = 0;
            string content = String.Empty;
            string strReplyedId = String.Empty;

            #region validate
            if (context.Request.Form["MiniBlogId"] == null ||
                !long.TryParse(context.Request.Form["MiniBlogId"].ToString(), out miniBlogId))
            {
                context.Response.Write("{success:false,msg:'操作失败'}");
                return;
            }

            if (context.Request.Form["Content"] != null)
            {
                content = context.Request.Form["Content"].ToString().Trim();
                content = Utility.Common.StringUtility.HTMLEncode(content);
                content = Regex.Replace(content, @"(http:\/\/[\w.]+\/?)([^\u4e00-\u9fa5|\u0020]*)", "<a href=\"$1$2\">$1$2</a>", RegexOptions.IgnoreCase | RegexOptions.Multiline);
            }

            if (context.Request.Form["strReplyedMinBlogId"] != null)
            {
                strReplyedId = context.Request.Form["strReplyedMinBlogId"].ToString().Trim();
            }

            account = CY.UME.Core.Global.GetCurrentAccount();

            if (account == null)
            {
                context.Response.Write("{success:false,msg:'登录超时失败'}");
                return;
            }

            miniBlog = CY.UME.Core.Business.MiniBlog.Load(miniBlogId);

            if (miniBlog == null)
            {
                context.Response.Write("{success:false,msg:'参数错误'}");
                return;
            }

            if (account.Id == miniBlog.AccountId)
            {
                context.Response.Write("{success:false,msg:'不能转发自己的博文'}");
                return;
            }

            CY.UME.Core.Business.Account accountRefered = CY.UME.Core.Business.Account.Load(miniBlog.AccountId);

            if (accountRefered == null)
            {
                context.Response.Write("{success:false,msg:'您无法转发该篇博文'}");
                return;
            }

            if (miniBlog.HasTransedByThisAccount(account))
            {
                context.Response.Write("{success:false,msg:'您已经转发过该篇博文'}");
                return;
            }
            #endregion
            try
            {
                CY.UME.Core.Business.MiniBlog newMiniBlog = new CY.UME.Core.Business.MiniBlog();

                newMiniBlog.AccountId = account.Id;
                newMiniBlog.Content = content;
                newMiniBlog.DatePublish = DateTime.Now;
                newMiniBlog.IP = CY.Utility.Common.RequestUtility.ClientIP;

                newMiniBlog.Save();

                string imgPath = String.Empty;
                string flashPath = String.Empty;
                CY.UME.Core.Business.MiniBlogExtend miniBlogExtend = CY.UME.Core.Business.MiniBlogExtend.Load(miniBlog.Id);
                if (miniBlogExtend != null)
                {
                    imgPath = miniBlogExtend.ImgPath;
                    flashPath = miniBlogExtend.Video;
                }

                CY.UME.Core.Business.MiniBlogExtend newMiniBlogExtend = new CY.UME.Core.Business.MiniBlogExtend();

                newMiniBlogExtend.AccountId = newMiniBlog.AccountId;
                newMiniBlogExtend.Id = newMiniBlog.Id;
                newMiniBlogExtend.ImgPath = imgPath;
                newMiniBlogExtend.Video = flashPath;
                newMiniBlogExtend.IsMsgReceived = false;
                newMiniBlogExtend.IsPhoneSended = false;
                newMiniBlogExtend.ReferedId = miniBlog.Id;
                newMiniBlogExtend.ReferedName = accountRefered.Name;
                newMiniBlogExtend.ReferedAuthorId = accountRefered.Id;
                newMiniBlogExtend.TransferedNum = 0;

                newMiniBlogExtend.Save();

                account.SendNoticeToAllFriendAndFollower("miniblog", "转发了一篇微博", newMiniBlog.Id.ToString());

                CY.UME.Core.Business.Notice notice = new CY.UME.Core.Business.Notice();

                notice.AccountId = newMiniBlogExtend.AccountId;
                notice.AuthorId = newMiniBlogExtend.AccountId;
                notice.Content = "转发了一篇微博";
                notice.DateCreated = DateTime.Now;
                notice.InstanceId = newMiniBlogExtend.Id.ToString();
                notice.IsReaded = false;
                notice.Type = "miniblog";
                notice.Save();

                #region Reply
                string strReplyedIdTemp = String.Empty;
                string[] arrReplyedId = strReplyedId.Split(',');

                for (int i = 0; i < arrReplyedId.Length; i++)
                {
                    strReplyedIdTemp = arrReplyedId[i];

                    long replyedId = 0;
                    if (long.TryParse(strReplyedIdTemp, out replyedId))
                    {
                        CY.UME.Core.Business.MiniBlog replyedMiniBlog = CY.UME.Core.Business.MiniBlog.Load(replyedId);

                        if (replyedMiniBlog != null)
                        {
                            CY.UME.Core.Business.MiniBlogComment mbc = new CY.UME.Core.Business.MiniBlogComment();

                            mbc.AccountId = replyedMiniBlog.AccountId;
                            mbc.AuthorId = account.Id;
                            mbc.Content = content;
                            mbc.DateCreated = DateTime.Now;
                            mbc.IP = Utility.Common.RequestUtility.ClientIP;
                            mbc.InstanceId = replyedMiniBlog.Id;

                            mbc.Save();

                            CY.UME.Core.Business.Notice noticeTemp = new CY.UME.Core.Business.Notice();

                            noticeTemp.AccountId = replyedMiniBlog.AccountId;
                            noticeTemp.AuthorId = mbc.AuthorId;
                            noticeTemp.Content = "评论了您的微博";
                            noticeTemp.DateCreated = DateTime.Now;
                            noticeTemp.InstanceId = replyedId.ToString();
                            noticeTemp.IsReaded = false;
                            noticeTemp.Type = "miniblogreply";

                            noticeTemp.Save();
                        }
                    }
                }
                #endregion

                context.Response.Write("{success:true}");
            }
            catch
            {
                context.Response.Write("{success:false,msg:'服务器忙,请稍后再试'}");
            }
        }
Пример #2
0
        /// <summary>
        /// 获取好友最新更新博客
        /// </summary>
        /// <param name="context"></param>
        /// <returns> 0 登录失败 -1请求失败 -2系统错误</returns>
        public string GetMiniBlogNoticeList(HttpContext context)
        {
            string email = String.Empty;
            CY.UME.Core.Business.Account currentAccount;
            CY.UME.Core.Business.Account author;

            if (context.Request.QueryString["email"] == null)
            {
                return "0";
            }

            email = context.Request.QueryString["email"].ToString();

            CY.UME.Core.Business.AccountExtend ae = CY.UME.Core.Business.AccountExtend.Load(email);

            if (ae == null)
            {
                return "0";
            }

            currentAccount = CY.UME.Core.Business.Account.Load(ae.Id);

            string[] type = { "miniblog" };
            IList<CY.UME.Core.Business.Notice> nList = GetNoticeList(currentAccount, type);
            StringBuilder sb = new StringBuilder();
            long miniBlogId = 0;

            try
            {
                sb.Append("[");
                foreach (CY.UME.Core.Business.Notice notice in nList)
                {
                    CY.UME.Core.Business.MiniBlog miniBlog = new CY.UME.Core.Business.MiniBlog();

                    if (!CY.Utility.Common.ParseUtility.TryParseInt64(notice.InstanceId, out miniBlogId))
                    {
                        continue;
                    }
                    else
                    {
                        if (miniBlogId < 1) { continue; }
                        else
                        {
                            miniBlog = CY.UME.Core.Business.MiniBlog.Load(miniBlogId);
                        }
                    }

                    if (miniBlog == null)
                    {
                        notice.DeleteOnSave();
                        notice.Save();
                        continue;
                    }

                    author = CY.UME.Core.Business.Account.Load(notice.AuthorId);
                    if (author == null)
                    {
                        continue;
                    }

                    CY.UME.Core.Business.MiniBlogExtend mbe = CY.UME.Core.Business.MiniBlogExtend.Load(miniBlogId);

                    bool IsPhoneSended = false;
                    string picurl = String.Empty;
                    StringBuilder Refereds = new StringBuilder();

                    Refereds.Append("{");
                    if (mbe != null)
                    {
                        IsPhoneSended = mbe.IsPhoneSended;
                        picurl = mbe.ImgPath;
                        if (mbe.ReferedId > 0)
                        {
                            CY.UME.Core.Business.MiniBlogExtend mbeTemp = CY.UME.Core.Business.MiniBlogExtend.Load(mbe.Id);
                            bool check = true;
                            long orMiniBlogId = 0;
                            int orTraNum = 0;
                            int i = 0;

                            Refereds.Append("\"TraInfo\":[");
                            while (check)
                            {
                                if (i < 10)
                                {
                                    Refereds.Append("{");
                                    Refereds.Append("\"AccountId\":\"" + mbeTemp.AccountId+"\"");
                                    Refereds.Append(",\"Name\":\"" + (notice.AccountId == mbeTemp.AccountId ? "我" : mbeTemp.ReferedName) + "\"");
                                    Refereds.Append("},");
                                }

                                i++;
                                mbeTemp = CY.UME.Core.Business.MiniBlogExtend.Load(mbeTemp.ReferedId);
                                if (mbeTemp == null || mbeTemp.ReferedId == 0)
                                {
                                    check = false;
                                }

                                orMiniBlogId = mbeTemp.Id;
                                orTraNum = mbeTemp.TransferedNum;
                            }

                            Refereds.Remove(Refereds.Length - 1, 1);

                            Refereds.Append("]");
                            Refereds.Append(",\"Id\":\"" + orMiniBlogId+"\"");
                            Refereds.Append(",\"TrasNum\":\"" + orTraNum+"\"");
                        }
                    }
                    Refereds.Append("}");

                    sb.Append("{\"id\":\"");
                    sb.Append(notice.Id + "\"");
                    sb.Append(",\"type\":\"" + notice.Type+"\"");
                    sb.Append(",\"authorId\":\"");
                    sb.Append(notice.AuthorId + "\"");
                    sb.Append(",\"authorName\":");
                    sb.Append(CY.Utility.Common.JavaScriptUtility.ToEscapedJavaScriptString(author.Id == notice.AccountId ? "我" : author.Name) );
                    sb.Append(",\"content\":");
                    sb.Append(CY.Utility.Common.JavaScriptUtility.ToEscapedJavaScriptString(notice.Content));
                    sb.Append(",\"miniBlogId\":\"");
                    sb.Append(miniBlogId+"\"");
                    sb.Append(",\"miniBlogContent\":");
                    sb.Append(CY.Utility.Common.JavaScriptUtility.ToEscapedJavaScriptString(miniBlog.Content) );
                    sb.Append(",\"miniBlogPubDate\":\"");
                    sb.Append(CY.Utility.Common.StringUtility.getDateDifference(miniBlog.DatePublish) + "\"");
                    sb.Append(",\"Refereds\":" + Refereds.ToString());
                    sb.Append(",\"TrasNum\":\"" + (mbe == null ? "0" : mbe.TransferedNum.ToString()) + "\"");
                    sb.Append(",\"ReplyNum\":\"" + miniBlog.GetCommentCount() + "\"");
                    sb.Append(",\"IsPhoneSended\":\"" + (IsPhoneSended ? "1" : "0") + "\"");
                    sb.Append(",\"IsHasPic\":\"" + (picurl.Length == 0 ? "0" : "1") + "\"");
                    sb.Append("},");
                }

                sb.Remove(sb.Length - 1, 1);
                sb.Append("]");

                return sb.ToString();
            }
            catch
            {
                return "-2";
            }
        }
Пример #3
0
        /// <summary>
        /// 0登录失败 -1 请求失败 -2异常错误 -3该微博不存在或已被删除 -4 您无法转发自己的微博
        /// </summary>
        /// <param name="context"></param>
        /// <returns></returns>
        public string TransferMiniBlog(HttpContext context)
        {
            long miniBlogId = 0;
            string email = String.Empty;
            CY.UME.Core.Business.AccountExtend accountExtend;
            CY.UME.Core.Business.MiniBlog miniBlog;
            CY.UME.Core.Business.Account account;

            #region validate
            if (context.Request.QueryString["email"] == null
                || context.Request.QueryString["MiniBlogId"] == null
                || !long.TryParse(context.Request.QueryString["MiniBlogId"].ToString(), out miniBlogId))
            {
                return "-1";
            }
            email = context.Request.QueryString["email"].ToString();

            accountExtend = CY.UME.Core.Business.AccountExtend.Load(email);

            if (accountExtend == null)
            {
                return "-1";
            }

            account = CY.UME.Core.Business.Account.Load(accountExtend.Id);

            miniBlog = CY.UME.Core.Business.MiniBlog.Load(miniBlogId);

            if (miniBlog == null)
            {
                return "-3";
            }

            if (miniBlog.AccountId == accountExtend.Id)
            {
                return "-4";
            }

            CY.UME.Core.Business.Account refAccount = CY.UME.Core.Business.Account.Load(miniBlog.AccountId);

            #endregion

            CY.UME.Core.Business.MiniBlog newMiniBlog = new CY.UME.Core.Business.MiniBlog();

            newMiniBlog.AccountId = accountExtend.Id;
            newMiniBlog.Content = miniBlog.Content;
            newMiniBlog.DatePublish = DateTime.Now;
            newMiniBlog.IP = CY.Utility.Common.RequestUtility.ClientIP;

            newMiniBlog.Save();

            string imgPath = String.Empty;
            CY.UME.Core.Business.MiniBlogExtend miniBlogExtend = CY.UME.Core.Business.MiniBlogExtend.Load(miniBlog.Id);
            if (miniBlogExtend != null)
            {
                imgPath = miniBlogExtend.ImgPath;
            }

            CY.UME.Core.Business.MiniBlogExtend newMiniBlogExtend = new CY.UME.Core.Business.MiniBlogExtend();

            newMiniBlogExtend.AccountId = newMiniBlog.AccountId;
            newMiniBlogExtend.Id = newMiniBlog.Id;
            newMiniBlogExtend.ImgPath = imgPath;
            newMiniBlogExtend.IsMsgReceived = false;
            newMiniBlogExtend.IsPhoneSended = false;
            newMiniBlogExtend.ReferedId = miniBlog.Id;
            newMiniBlogExtend.ReferedName = refAccount == null ? "用户已被删除" : refAccount.Name;
            newMiniBlogExtend.TransferedNum = 0;

            newMiniBlogExtend.Save();

            account.SendNoticeToAllFriendAndFollower("miniblog", "转发了一篇微博", newMiniBlog.Id.ToString());

            return newMiniBlog.Id.ToString();
        }