예제 #1
0
    void DataBindToRepeater(int currentPage)
    {
        DataTable dt    = (DataTable)Session["dt"];
        int       count = dt.Rows.Count;

        for (int i = 0; i < count; i++)
        {
            dt.Rows[i][2] = Server.HtmlEncode(dt.Rows[i][2].ToString());
        }
        PagedDataSource pds = new PagedDataSource();

        pds.AllowPaging = true;

        pds.PageSize = 5;

        pds.DataSource = dt.DefaultView;

        lbTotal.Text = pds.PageCount.ToString();

        pds.CurrentPageIndex = currentPage - 1;//当前页数从零开始,故把接受的数减一

        LeaveMessage.DataSource = pds;

        LeaveMessage.DataBind();
    }
예제 #2
0
 public List <LeaveMessage> ReceiveLeaveMsg()
 {
     try
     {
         var dataLists = new List <LeaveMessage>();
         var data      = dbContext.LEAVEWORDINFO.ToList();
         foreach (var item in data)
         {
             LeaveMessage leaveMessage = new LeaveMessage()
             {
                 LeaveState = item.LEAVESTATE,
                 LeaveTime  = (DateTime)item.LEAVETIME,
                 Message    = item.MESSAGE
             };
             leaveMessage.RealName = dbContext.USERINFO.Where(x => x.NICKNAME == item.NICKNAME).ToList().First().REALNAME;
             dataLists.Add(leaveMessage);
         }
         return(dataLists);
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.Message);
     }
     return(null);
 }
예제 #3
0
        //string updateSql = "update LeaveMessage set Name = @Name,Company = @Company,Email = @Email,Phone = @Phone,MessageContent = @MessageContent, MessageType = @MessageType,IsEnable=@IsEnable, LeaveDate = @LeaveDate where LeaveMessageId=@LeaveMessageId;";
        //string selSql = "select * from LeaveMessage where LeaveMessageId=@LeaveMessageId;";
        //string sql = "select * from LeaveMessage order by  LeaveMessageId desc;";

        /// <summary>
        /// 添加留言信息
        /// </summary>
        /// <param name="model">留言信息</param>
        /// <returns>新添加的留言信息</returns>
        public bool AddLeaveMessage(LeaveMessage model)
        {
            int num = 0;

            param.Add("[@Name],[" + model.Name + "]");
            param.Add("[@Company],[" + model.Company + "]");
            param.Add("[@Address],[" + model.Address + "]");
            param.Add("[@Email],[" + model.Email + "]");
            param.Add("[@Phone],[" + model.Phone + "]");
            param.Add("[@MessageContent],[" + model.MessageContent + "]");
            param.Add("[@LeaveDate],[" + model.LeaveDate + "]");
            param.Add("[@MessageType],[" + model.MessageType + "]");
            param.Add("[@IsEnable],[" + model.IsEnable);

            try
            {
                ws_mysql.Credentials = new System.Net.NetworkCredential(PublicConst.WS_USERNAME, PublicConst.WS_USERPWD);
                num = ws_mysql.ExecuteNonQuery(param.ToArray(), "", addSql, "dgm");
            }
            catch
            { }
            finally
            {
                param.Clear();
            }
            return(num > 0);
        }
예제 #4
0
 public IActionResult AddLeaveMessage([FromForm] LeaveMessage leaveMessage)
 {
     if (leaveMessage.Nickname != null && leaveMessage.Template != null)
     {
         _leaveMessagesCollection.Insert(leaveMessage);
     }
     return(RedirectToAction("TeamspeakPage"));
 }
예제 #5
0
 public LeaveMessage[] ListAll()
 {
     DataTable table = SqlHelper.ExecuteDataTable("select Name,Subject,Email,Message,Date from Message ");
     LeaveMessage[] dt = new LeaveMessage[table.Rows.Count];
     for (int i = 0; i < table.Rows.Count; i++) {
     dt[i] = ToModel(table.Rows[i]);}
     return dt;
 }
예제 #6
0
        public ActionResult DeleteConfirmed(int id)
        {
            LeaveMessage leaveMessage = db.LeaveMessages.Find(id);

            db.LeaveMessages.Remove(leaveMessage);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
예제 #7
0
 /// <summary>
 /// Create a new ZreMsgOriginal
 /// </summary>
 public ZreMsgOriginal()
 {
     Hello   = new HelloMessage();
     Whisper = new WhisperMessage();
     Shout   = new ShoutMessage();
     Join    = new JoinMessage();
     Leave   = new LeaveMessage();
     Ping    = new PingMessage();
     PingOk  = new PingOkMessage();
 }
예제 #8
0
 public void Insert(LeaveMessage model)
 {
     SqlHelper.ExecuteNonQuery(@"insert into Tb_LeaveMessage(Name,Subject,Email,Message,Date) values(
                                 @Name,@Subject,@Email,@Message,@Date)",
     new SqlParameter("@Name", model.Name),
     new SqlParameter("@Subject", model.Subject),
     new SqlParameter("@Email", model.Email),
     new SqlParameter("@Message", model.Message),
     new SqlParameter("@Date", model.Date));
 }
예제 #9
0
        private void SendLeave()
        {
            var leaveMsg = new LeaveMessage()
            {
                SourceID      = _config.ID,
                DestinationID = Constants.NULL_DESTINATION,
                KeyCount      = _keys.Count
            };

            SendMessage(leaveMsg, _group);
        }
예제 #10
0
        private void HandleLeave(LeaveMessage msg)
        {
            _tcpServer = new TCPServer(
                IPAddress.Parse(_config.TCPServerAddress),
                Int32.Parse(_config.TCPServerPort));
            _tcpServer.OnReceiveMessage += _tcpServer_OnReceiveMessage;

            _joinMsg  = null;
            _leaveMsg = msg;
            _elector.Elect();
        }
예제 #11
0
 public ActionResult Edit([Bind(Include = "Id,Body,AuthorId,Time")] LeaveMessage leaveMessage)
 {
     if (ModelState.IsValid)
     {
         db.Entry(leaveMessage).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     ViewBag.AuthorId = new SelectList(db.Users, "Id", "UserName", leaveMessage.AuthorId);
     return(View(leaveMessage));
 }
예제 #12
0
        public ActionResult Create([Bind(Include = "Id,Body,AuthorId,Time")] LeaveMessage leaveMessage)
        {
            if (ModelState.IsValid)
            {
                db.LeaveMessages.Add(leaveMessage);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            ViewBag.AuthorId = new SelectList(db.Users, "Id", "UserName", leaveMessage.AuthorId);
            return(View(leaveMessage));
        }
예제 #13
0
    protected void Submit_onclick(object sender, EventArgs e)
    {
        using (DataClassesDataContext db = new DataClassesDataContext())
        {
            LeaveMessage message = new LeaveMessage();
            message.Content  = reply.Text;
            message.UserID   = Session["UserID"].ToString();
            message.HostID   = Session["HostID"].ToString();
            message.DateTime = DateTime.Now;

            db.LeaveMessage.InsertOnSubmit(message);
            db.SubmitChanges();
        }
    }
예제 #14
0
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            LeaveMessage leaveMessage = db.LeaveMessages.Find(id);

            if (leaveMessage == null)
            {
                return(HttpNotFound());
            }
            return(View(leaveMessage));
        }
예제 #15
0
 public void Update(LeaveMessage model)
 {
     SqlHelper.ExecuteNonQuery(@"UPDATE Message set
                                 Name = @Name,
                                 Subject = @Subject,
                                 Email = @Email,
                                 Message = @Message,
                                 Date = @Date WHERE ID=@ID",
         new SqlParameter("@ID", model.ID),
         new SqlParameter("@Name", model.Name),
         new SqlParameter("@Subject", model.Subject),
         new SqlParameter("@Email", model.Email),
         new SqlParameter("@Message", model.Message),
         new SqlParameter("@Date", model.Date));
 }
예제 #16
0
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            LeaveMessage leaveMessage = db.LeaveMessages.Find(id);

            if (leaveMessage == null)
            {
                return(HttpNotFound());
            }
            ViewBag.AuthorId = new SelectList(db.Users, "Id", "UserName", leaveMessage.AuthorId);
            return(View(leaveMessage));
        }
예제 #17
0
        public void Add(LeaveMessageDTO leaveMessageDTO)
        {
            LeaveMessage leaveMessage = new LeaveMessage();

            leaveMessage.IsAction      = false;
            leaveMessage.IsFriendLink  = leaveMessageDTO.IsFriendLink;
            leaveMessage.CreateTime    = DateTime.Now;
            leaveMessage.ContractEmail = leaveMessageDTO.ContractEmail;
            leaveMessage.Content       = leaveMessageDTO.Content;
            _leaveMessageRepository.Insert(leaveMessage);
            EmailData emailData = new EmailData();

            emailData.Body    = leaveMessage.Content;
            emailData.Subject = "天天博客有个新留言";
            _eventBus.Publish(emailData);
        }
예제 #18
0
        public string AddLeaveMessage(string username1, string username2, string content)
        {
            int userid1      = getUserIdByName(username1);
            int userid2      = getUserIdByName(username2);
            var leavemessage = new LeaveMessage
            {
                content  = content,
                time     = time.getCurrentDateTime(),
                userid1  = userid1,
                userid2  = userid2,
                isreaded = 0
            };

            db.LeaveMessage.Add(leavemessage);
            db.SaveChanges();
            return("留言成功");
        }
예제 #19
0
        public List <LeaveMessage> GetLeaveMessage(string username)
        {
            int userid2 = getUserIdByName(username);
            List <LeaveMessage> leavemessagelist = new List <LeaveMessage>();
            var          q = from c in db.LeaveMessage where c.userid2 == userid2 select c;
            LeaveMessage l = null;

            foreach (var a in q)
            {
                l          = new LeaveMessage();
                l.Id       = a.Id;
                l.content  = a.content;
                l.isreaded = a.isreaded;
                l.time     = a.time;
                l.userid1  = a.userid1;
                l.userid2  = a.userid2;
                leavemessagelist.Add(l);
            }
            return(leavemessagelist);
        }
예제 #20
0
        protected void btnSearch_Click(object sender, EventArgs e)
        {
            DateTime start = new DateTime();
            DateTime end = new DateTime();
            string Name = this.txtName.Text.Trim();
            if (Name != "" || this.txtStartTime.Text != string.Empty || this.txtEndTime.Text != string.Empty)
            {
                DateTime.TryParse(this.txtStartTime.Text, out  start);
                DateTime.TryParse(this.txtEndTime.Text, out end);
                IList<CY.UME.Core.Business.SpaceComment> LeaveList = CY.UME.Core.Business.InstantlyKilling.SearchLeaveList(Name, start, end);
                List<LeaveMessage> LeaveMessages = new List<LeaveMessage>();
                for (int i = 0; i < LeaveList.Count; i++)
                {
                    CY.UME.Core.Business.Account acc = CY.UME.Core.Business.Account.Load(LeaveList[i].AuthorId);
                    if (acc != null)
                    {
                        LeaveMessage lm = new LeaveMessage();
                        lm.Id = LeaveList[i].Id;
                        lm.InstanceId = LeaveList[i].InstanceId;
                        lm.AccountId = LeaveList[i].AccountId;
                        lm.AuthorId = LeaveList[i].AuthorId;
                        lm.AuthorName = acc.Name;
                        lm.Content = LeaveList[i].Content;
                        lm.IP = LeaveList[i].IP;
                        lm.DateCreated = LeaveList[i].DateCreated;
                        lm.ReferedId = LeaveList[i].ReferedId;
                        lm.IsPublic = LeaveList[i].IsPublic;

                        LeaveMessages.Add(lm);
                    }
                }
                this.AspNetPager1.Visible = false;

                this.Repeater1.DataSource = LeaveMessages;
                Repeater1.DataBind();
            }
        }
예제 #21
0
 public void SendLeaveMsg(SceneManagerServer server, LeaveMessage msg)
 {
     scene_name = "";
     server.ReceiveLeaveMsg(msg);
 }
예제 #22
0
    public void Update()
    {
        // Check for Join/Leave Session
        while (m_join_messages.Count > 0)
        {
            JoinMessage msg = m_join_messages.Dequeue();

            if (msg.scene_name == scene_name)
            {
                session.AddClient(msg.client);

                if (msg.client.client_id == client_id)
                {
                    SyncSceneMessage sync_msg = new SyncSceneMessage();
                    sync_msg.scene_name = scene_name;
                    sync_msg.client_id  = client_id;

                    SendSyncSceneMsg(server, sync_msg);
                }
            }
        }

        while (m_leave_messages.Count > 0)
        {
            LeaveMessage msg = m_leave_messages.Dequeue();

            if (msg.scene_name == scene_name)
            {
                session.RemoveClient(msg.client);
            }
        }

        while (m_sync_scene_messages.Count > 0)
        {
            // Check if the given objects are in the client
            // Map the Client's ObjectID's to the Server's ObjectID's
            // Set Client Objects as copies of Server Objects
            // TODO: Create an object if it's not present on Client
            SyncSceneMessage msg = m_sync_scene_messages.Dequeue();

            if (msg.scene_name == scene_name)
            {
                GameObject[] objs = session.GetGameObjects();

                foreach (GameObject obj in objs)
                {
                    Object.DestroyImmediate(obj);
                }

                foreach (GameObject obj in msg.objects)
                {
                    GameObject g_obj = Object.Instantiate(obj);
                    ClientToServerID[g_obj.GetInstanceID()] = obj.GetInstanceID();
                    ServerToClientID[obj.GetInstanceID()]   = g_obj.GetInstanceID();

                    Component[] server_comps = obj.GetComponents(typeof(Component));
                    Component[] client_comps = g_obj.GetComponents(typeof(Component));

                    for (int i = 0; i < client_comps.Length; ++i)
                    {
                        ClientToServerID[client_comps[i].GetInstanceID()] = server_comps[i].GetInstanceID();
                        ServerToClientID[server_comps[i].GetInstanceID()] = client_comps[i].GetInstanceID();
                    }
                }
            }
        }

        // Check for Locked/Unlocked Object(s)

        while (m_lock_obj_messages.Count > 0)
        {
            LockObjectMessage msg = m_lock_obj_messages.Dequeue();

            if (msg.scene_name == scene_name)
            {
                session.LockObject(msg.object_id, msg.lock_info.client_info);
            }
        }

        while (m_unlock_obj_messages.Count > 0)
        {
            UnlockObjectMessage msg = m_unlock_obj_messages.Dequeue();

            if (msg.scene_name == scene_name)
            {
                session.UnlockObject(msg.object_id, msg.lock_info.client_info);
            }
        }

        // Check for SyncObjects

        while (m_sync_obj_messages.Count > 0)
        {
            SyncObjectMessage msg = m_sync_obj_messages.Dequeue();

            if (msg.scene_name == scene_name)
            {
                msg.object_id = GetClientObjID(msg.object_id);

                if (msg.client_info.client_id != client_id)
                {
                    session.UpdateObject(msg);
                }
            }
        }

        // If any of those checked, update log



        //Object[] obj = Object.FindObjectsOfType(typeof(Component));
    }
예제 #23
0
 public void ReceiveLeaveMsg(LeaveMessage msg)
 {
     //msg.scene_name = "Session";
     m_leave_messages.Enqueue(msg);
 }
예제 #24
0
 public virtual void onLeave(LeaveMessage message)
 {
 }
예제 #25
0
        public ActionResult Put(LeaveMessageInputDto msg)
        {
            UserInfoOutputDto user = Session.GetByRedis <UserInfoOutputDto>(SessionKey.UserInfo);

            msg.Content = msg.Content.Trim().Replace("<p><br></p>", string.Empty);
            if (Regex.Match(msg.Content, ModRegex).Length <= 0)
            {
                msg.Status = Status.Pended;
            }

            if (user != null)
            {
                msg.NickName   = user.NickName;
                msg.QQorWechat = user.QQorWechat;
                msg.Email      = user.Email;
                if (user.IsAdmin)
                {
                    msg.Status   = Status.Pended;
                    msg.IsMaster = true;
                }
            }
            msg.PostDate = DateTime.Now;
            msg.Content  = Regex.Replace(msg.Content.HtmlSantinizerStandard().ConvertImgSrcToRelativePath(), @"<img\s+[^>]*\s*src\s*=\s*['""]?(\S+\.\w{3,4})['""]?[^/>]*/>", "<img src=\"$1\"/>");
            msg.Browser  = msg.Browser ?? Request.Browser.Type;
            msg.IP       = Request.UserHostAddress;
            LeaveMessage msg2 = LeaveMessageBll.AddEntitySaved(msg.Mapper <LeaveMessage>());

            if (msg2 != null)
            {
                var    email   = GetSettings("ReceiveEmail");
                string content = System.IO.File.ReadAllText(Request.MapPath("/template/notify.html")).Replace("{{time}}", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")).Replace("{{nickname}}", msg2.NickName).Replace("{{content}}", msg2.Content);
                if (msg.Status == Status.Pended)
                {
                    if (!msg2.IsMaster)
                    {
                        MessageBll.AddEntitySaved(new InternalMessage()
                        {
                            Title = $"来自【{msg2.NickName}】的新留言", Content = msg2.Content, Link = Url.Action("Index", "Msg", new { cid = msg2.Id }, "http")
                        });
                    }
#if !DEBUG
                    if (msg.ParentId == 0)
                    {
                        //新评论,只通知博主
                        BackgroundJob.Enqueue(() => SendMail(Request.Url.Authority + "|博客新留言:", content.Replace("{{link}}", Url.Action("Index", "Msg", new { cid = msg2.Id }, "http")), email));
                    }
                    else
                    {
                        //通知博主和上层所有关联的评论访客
                        var pid    = LeaveMessageBll.GetParentMessageIdByChildId(msg2.Id);
                        var emails = LeaveMessageBll.GetSelfAndAllChildrenMessagesByParentId(pid).Select(c => c.Email).ToList();
                        emails.Add(email);
                        emails = emails.Distinct().Except(new List <string>()
                        {
                            msg2.Email
                        }).ToList();
                        Parallel.ForEach(emails, e =>
                        {
                            string link = Url.Action("Index", "Msg", new { cid = msg2.Id, email = e }, "http");
                            BackgroundJob.Enqueue(() => SendMail($"{Request.Url.Authority}{GetSettings("Title")} 留言回复:", content.Replace("{{link}}", link), e));
                        });
                    }
#endif
                    return(ResultData(null, true, "留言发表成功,服务器正在后台处理中,这会有一定的延迟,稍后将会显示到列表中!"));
                }
                BackgroundJob.Enqueue(() => SendMail(Request.Url.Authority + "|博客新留言(待审核):", content.Replace("{{link}}", Url.Action("Index", "Msg", new { cid = msg2.Id }, "http")) + "<p style='color:red;'>(待审核)</p>", email));
                return(ResultData(null, true, "留言发表成功,待站长审核通过以后将显示到列表中!"));
            }
            return(ResultData(null, false, "留言发表失败!"));
        }
예제 #26
0
 private LeaveMessage ToModel(DataRow row)
 {
     LeaveMessage model = new LeaveMessage();
     model.Name = (System.String)SqlHelper.FromDBValue(row["Name"]);
     model.Subject = (System.String)SqlHelper.FromDBValue(row["Subject"]);
     model.Email = (System.String)SqlHelper.FromDBValue(row["Email"]);
     model.Message = (System.String)SqlHelper.FromDBValue(row["Message"]);
     model.Date = (System.DateTime)SqlHelper.FromDBValue(row["Date"]);
     return model;
 }
예제 #27
0
 public override void onLeave(LeaveMessage message)
 {
     RemovePlayer(message.playerId);
 }
예제 #28
0
파일: EventPipe.cs 프로젝트: judgegc/dkab
        public void Push(InPacket packet)
        {
            #region Playable unit events
            if (packet is ReceiveDestination)
            {
                ReceiveDestination pos = packet as ReceiveDestination;

                if (presentedUnits.Contains(pos.Name))
                {
                    events.Enqueue(PacketConverter.ReceiveDestination(pos, ReceiveDestinationForm.MOVE));
                }
                else
                {
                    presentedUnits.Add(pos.Name);
                    events.Enqueue(PacketConverter.ReceiveDestination(pos, ReceiveDestinationForm.SPAWN));
                }
            }
            else if (packet is LeaveMessage)
            {
                LeaveMessage lev = packet as LeaveMessage;

                presentedUnits.Remove(lev.Name);
                events.Enqueue(lev.ToString());
            }
            #endregion
            #region Fauna events
            else if (packet is UpdateMonster)
            {
                UpdateMonster monster = packet as UpdateMonster;

                if (presentedFauna.Contains(monster.Id))
                {
                    events.Enqueue(PacketConverter.UpdateMonster(monster, UpdateMonsterForm.MOVE));
                }
                else
                {
                    presentedFauna.Add(monster.Id);
                    events.Enqueue(PacketConverter.UpdateMonster(monster, UpdateMonsterForm.SPAWN));
                }
            }
            #endregion
            #region Flora events
            else if (packet is UpdateHerb)
            {
                UpdateHerb herb = packet as UpdateHerb;

                if (presentedFauna.Contains(herb.Id))
                {
                    if (herb.State == 0)
                    {
                        events.Enqueue(PacketConverter.UpdateHerb(herb, UpdateHerbForm.REMOVE));
                    }
                    else
                    {
                        events.Enqueue(PacketConverter.UpdateHerb(herb, UpdateHerbForm.GROWTH));
                    }
                }
                else
                {
                    presentedFlora.Add(herb.Id);
                    events.Enqueue(PacketConverter.UpdateHerb(herb, UpdateHerbForm.SPAWN));
                }
            }
            #endregion
        }
예제 #29
0
 public void SendLeaveMsg(SceneManagerClient client, LeaveMessage msg)
 {
     client.ReceiveLeaveMsg(msg);
 }
예제 #30
0
        public ActionResult Put(LeaveMessageInputDto msg)
        {
            UserInfoOutputDto user = HttpContext.Session.Get <UserInfoOutputDto>(SessionKey.UserInfo);

            msg.Content = msg.Content.Trim().Replace("<p><br></p>", string.Empty);
            if (msg.Content.RemoveHtml().Trim().Equals(HttpContext.Session.Get <string>("msg")))
            {
                return(ResultData(null, false, "您刚才已经发表过一次留言了!"));
            }
            if (Regex.Match(msg.Content, CommonHelper.ModRegex).Length <= 0)
            {
                msg.Status = Status.Pended;
            }

            if (user != null)
            {
                msg.NickName   = user.NickName;
                msg.QQorWechat = user.QQorWechat;
                msg.Email      = user.Email;
                if (user.IsAdmin)
                {
                    msg.Status   = Status.Pended;
                    msg.IsMaster = true;
                }
            }
            msg.PostDate = DateTime.Now;
            msg.Content  = Regex.Replace(msg.Content.HtmlSantinizerStandard().ConvertImgSrcToRelativePath(), @"<img\s+[^>]*\s*src\s*=\s*['""]?(\S+\.\w{3,4})['""]?[^/>]*/>", "<img src=\"$1\"/>");
            msg.Browser  = msg.Browser ?? Request.Headers[HeaderNames.UserAgent];
            msg.IP       = HttpContext.Connection.RemoteIpAddress.MapToIPv4().ToString();
            LeaveMessage msg2 = LeaveMessageService.AddEntitySaved(msg.Mapper <LeaveMessage>());

            if (msg2 != null)
            {
                HttpContext.Session.Set("msg", msg.Content.RemoveHtml().Trim());
                var    email   = CommonHelper.SystemSettings["ReceiveEmail"];
                string content = System.IO.File.ReadAllText(_hostingEnvironment.WebRootPath + "/template/notify.html").Replace("{{title}}", "网站留言板").Replace("{{time}}", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")).Replace("{{nickname}}", msg2.NickName).Replace("{{content}}", msg2.Content);
                if (msg.Status == Status.Pended)
                {
                    if (!msg2.IsMaster)
                    {
                        MessageService.AddEntitySaved(new InternalMessage()
                        {
                            Title   = $"来自【{msg2.NickName}】的新留言",
                            Content = msg2.Content,
                            Link    = Url.Action("Index", "Msg", new
                            {
                                cid = msg2.Id
                            }, Request.Scheme)
                        });
                    }
#if !DEBUG
                    if (msg.ParentId == 0)
                    {
                        //新评论,只通知博主
                        BackgroundJob.Enqueue(() => CommonHelper.SendMail(HttpUtility.UrlDecode(Request.Headers[HeaderNames.Referer]) + "|博客新留言:", content.Replace("{{link}}", Url.Action("Index", "Msg", new { cid = msg2.Id }, Request.Scheme)), email));
                    }
                    else
                    {
                        //通知博主和上层所有关联的评论访客
                        var pid    = LeaveMessageService.GetParentMessageIdByChildId(msg2.Id);
                        var emails = LeaveMessageService.GetSelfAndAllChildrenMessagesByParentId(pid).Select(c => c.Email).ToList();
                        emails.Add(email);
                        string link = Url.Action("Index", "Msg", new { cid = msg2.Id }, Request.Scheme);
                        foreach (var s in emails.Distinct().Except(new[] { msg2.Email }))
                        {
                            BackgroundJob.Enqueue(() => CommonHelper.SendMail($"{HttpUtility.UrlDecode(Request.Headers[HeaderNames.Referer])}{CommonHelper.SystemSettings["Title"]} 留言回复:", content.Replace("{{link}}", link), s));
                        }
                    }
#endif
                    return(ResultData(null, true, "留言发表成功,服务器正在后台处理中,这会有一定的延迟,稍后将会显示到列表中!"));
                }
                BackgroundJob.Enqueue(() => CommonHelper.SendMail(HttpUtility.UrlDecode(Request.Headers[HeaderNames.Referer]) + "|博客新留言(待审核):", content.Replace("{{link}}", Url.Action("Index", "Msg", new
                {
                    cid = msg2.Id
                }, Request.Scheme)) + "<p style='color:red;'>(待审核)</p>", email));
                return(ResultData(null, true, "留言发表成功,待站长审核通过以后将显示到列表中!"));
            }
            return(ResultData(null, false, "留言发表失败!"));
        }
예제 #31
0
		/// <summary>
		/// Create a new ZreMsg
		/// </summary>
		public ZreMsg()
		{    
			Hello = new HelloMessage();
			Whisper = new WhisperMessage();
			Shout = new ShoutMessage();
			Join = new JoinMessage();
			Leave = new LeaveMessage();
			Ping = new PingMessage();
			PingOk = new PingOkMessage();
		}			
예제 #32
0
    public void Display()
    {
        EditorGUI.BeginChangeCheck();
        GUILayout.Label("Pick a Session", EditorStyles.boldLabel);
        //SceneServerFile = EditorGUILayout.TextField("Scene Name:", SceneServerFile);
        scene_index     = EditorGUILayout.Popup(scene_index, scene_names);
        SceneServerFile = scene_names[scene_index];

        if (EditorGUI.EndChangeCheck())
        {
            if (isLinked)
            {
                LeaveMessage msg    = new LeaveMessage();
                ClientInfo   c_info = new ClientInfo();
                c_info.client_id = Client.client_id;
                c_info.m_name    = Client.client_name;
                msg.client       = c_info;

                Client.SendLeaveMsg(Server, msg);

                isLinked = false;
                isReset  = true;
            }

            Status = "Unlinked";
        }

        GUILayout.Label("Link Status: " + Status, EditorStyles.boldLabel);

        if (isLinked)
        {
            GUI.enabled = false;
        }
        else
        {
            GUI.enabled = true;
        }
        bool linkButton = GUILayout.Button("Join");

        if (isLinked)
        {
            GUI.enabled = true;
        }
        else
        {
            GUI.enabled = false;
        }
        bool unlinkButton = GUILayout.Button("Leave");

        GUI.enabled = true;

        if (linkButton && !isLinked)
        {
            sc1_exists = File.Exists("Assets/" + SceneServerFile + ".unity");

            if (!sc1_exists)
            {
                Status = "Invalid scene name!";
            }
            else
            {
                JoinMessage msg    = new JoinMessage();
                ClientInfo  c_info = new ClientInfo();
                c_info.client_id = Client.client_id;
                c_info.m_name    = Client.client_name;
                msg.client       = c_info;
                msg.scene_name   = SceneServerFile;

                Client.SendJoinMsg(Server, msg);

                /*
                 * sc1 = EditorSceneManager.GetSceneByName(SceneSourceFile);
                 * if (!sc1.IsValid())
                 * {
                 *  sc1 = EditorSceneManager.OpenScene("Assets/" + SceneSourceFile + ".unity", OpenSceneMode.Additive);
                 * }
                 *
                 * sc2 = EditorSceneManager.GetSceneByName(SceneDestinationFile);
                 * if (!sc2.IsValid())
                 * {
                 *  sc2 = EditorSceneManager.OpenScene("Assets/" + SceneDestinationFile + ".unity", OpenSceneMode.Additive);
                 * }
                 *
                 * int sceneCount = EditorSceneManager.sceneCount;
                 *
                 * if (sceneCount > 0)
                 * {
                 *  EditorSceneManager.SaveCurrentModifiedScenesIfUserWantsTo();
                 *
                 *  List<int> sc_index = new List<int>();
                 *
                 *  for (int i = 0; i < sceneCount; ++i)
                 *  {
                 *      if (EditorSceneManager.GetSceneAt(i) != sc1 &&
                 *          EditorSceneManager.GetSceneAt(i) != sc2)
                 *      {
                 *          sc_index.Add(i);
                 *      }
                 *  }
                 *
                 *  foreach (int si in sc_index)
                 *  {
                 *      EditorSceneManager.CloseScene(EditorSceneManager.GetSceneAt(si), true);
                 *  }
                 * }*/

                isLinked = true;
                Status   = "Linked";
            }
        }

        if (unlinkButton && isLinked)
        {
            LeaveMessage msg    = new LeaveMessage();
            ClientInfo   c_info = new ClientInfo();
            c_info.client_id = Client.client_id;
            c_info.m_name    = Client.client_name;
            msg.client       = c_info;

            Client.SendLeaveMsg(Server, msg);

            // EditorSceneManager.NewScene(NewSceneSetup.DefaultGameObjects, NewSceneMode.Single);

            isLinked = false;
            isReset  = true;
            Status   = "Unlinked";
        }
    }
예제 #33
0
 public void ReceiveLeaveMsg(LeaveMessage msg)
 {
     m_leave_messages.Enqueue(msg);
 }
예제 #34
0
    public void Update()
    {
        // Check for Join/Leave Session
        while (m_join_messages.Count > 0)
        {
            JoinMessage msg = m_join_messages.Dequeue();

            Session s = new Session();

            if (!m_session_mgr.Exists(msg.scene_name))
            {
                // CreateSession
                s = m_session_mgr.CreateSession(m_name_to_path[msg.scene_name], OpenSceneMode.Additive);
            }

            if (s)
            {
                s.AddClient(msg.client);

                foreach (SceneManagerClient smc in clients)
                {
                    SendJoinMsg(smc, msg);
                }
            }
        }

        while (m_leave_messages.Count > 0)
        {
            LeaveMessage msg = m_leave_messages.Dequeue();

            Session s = m_session_mgr.GetSessionBySceneName(msg.scene_name);

            if (s)
            {
                s.RemoveClient(msg.client);

                if (!(s.GetClientSize() > 0))
                {
                    // Save Scene
                    // EditorSceneManager.Save
                    // DestroySession
                    m_session_mgr.DestroySession(m_session_mgr.GetSessionBySceneName(msg.scene_name));
                }

                foreach (SceneManagerClient smc in clients)
                {
                    SendLeaveMsg(smc, msg);
                }
            }
        }

        while (m_sync_scene_messages.Count > 0)
        {
            // Grab all objects in the scene and send them to the client to map
            SyncSceneMessage msg = m_sync_scene_messages.Dequeue();

            Session s = m_session_mgr.GetSessionBySceneName(msg.scene_name);

            SyncSceneMessage sync_msg = new SyncSceneMessage();
            sync_msg.scene_name = s.Scene.name;
            sync_msg.client_id  = 0;
            sync_msg.objects    = s.Scene.GetRootGameObjects();

            SceneManagerClient client = clients.Find(x => x.client_id == msg.client_id);

            SendSyncSceneMsg(client, sync_msg);
        }

        while (m_lock_obj_messages.Count > 0)
        {
            LockObjectMessage msg = m_lock_obj_messages.Dequeue();

            Session s = m_session_mgr.GetSessionBySceneName(msg.scene_name);

            if (s)
            {
                s.LockObject(msg.object_id, msg.lock_info.client_info);

                //foreach (SceneManagerClient smc in clients)
                //{
                //    SendLockObjMsg(smc, msg);
                //}
            }
        }

        while (m_unlock_obj_messages.Count > 0)
        {
            UnlockObjectMessage msg = m_unlock_obj_messages.Dequeue();

            Session s = m_session_mgr.GetSessionBySceneName(msg.scene_name);

            if (s)
            {
                s.UnlockObject(msg.object_id, msg.lock_info.client_info);

                //foreach (SceneManagerClient smc in clients)
                //{
                //    SendUnlockObjMsg(smc, msg);
                //}
            }
        }

        while (m_sync_obj_messages.Count > 0)
        {
            SyncObjectMessage msg = m_sync_obj_messages.Dequeue();

            Session s = m_session_mgr.GetSessionBySceneName(msg.scene_name);

            if (s)
            {
                s.UpdateObject(msg);

                foreach (SceneManagerClient smc in clients)
                {
                    SendSyncObjectMessage(smc, msg);
                }
            }
        }

        m_session_mgr.Update();
    }
예제 #35
0
 public static void Save(LeaveMessage message)
 {
     new LeaveMessageDAL().Insert(message);
 }
예제 #36
0
 public bool AddLeaveMessage(LeaveMessage model)
 {
     return(new LeaveMessageDAL().AddLeaveMessage(model));
 }
예제 #37
0
 private void HandleJoin(JoinMessage msg)
 {
     _leaveMsg = null;
     _joinMsg  = msg;
     _elector.Elect();
 }
예제 #38
0
        private void bindMessage()
        {
            CY.UME.Core.PagingInfo pagingInfo = new CY.UME.Core.PagingInfo();
            pagingInfo.CurrentPage = AspNetPager1.CurrentPageIndex;
            pagingInfo.PageSize = AspNetPager1.PageSize = SetCurrentPageSize.CurrentPageSize;

            IList<CY.UME.Core.Business.SpaceComment> LeaveList = CY.UME.Core.Business.InstantlyKilling.GetAllLeaveList(pagingInfo);
            List<LeaveMessage> LeaveMessages = new List<LeaveMessage>();
            for (int i = 0; i < LeaveList.Count; i++)
            {
                CY.UME.Core.Business.Account acc = CY.UME.Core.Business.Account.Load(LeaveList[i].AuthorId);
                if (acc != null)
                {
                    LeaveMessage lm = new LeaveMessage();
                    lm.Id = LeaveList[i].Id;
                    lm.InstanceId = LeaveList[i].InstanceId;
                    lm.AccountId = LeaveList[i].AccountId;
                    lm.AuthorId = LeaveList[i].AuthorId;
                    lm.AuthorName = acc.Name;
                    lm.Content = LeaveList[i].Content;
                    lm.IP = LeaveList[i].IP;
                    lm.DateCreated = LeaveList[i].DateCreated;
                    lm.ReferedId = LeaveList[i].ReferedId;
                    lm.IsPublic = LeaveList[i].IsPublic;

                    LeaveMessages.Add(lm);
                }
            }

            if (LeaveMessages != null && LeaveMessages.Count >= 1)
            {
                CY.UME.Core.Business.InstantlyKilling kill = new CY.UME.Core.Business.InstantlyKilling();
                AspNetPager1.RecordCount = kill.GetLevelWordsCount();
                Repeater1.DataSource = LeaveMessages;
                Repeater1.DataBind();
            }
        }