public Boolean SaveTextSegment(TranslateMessage translateMessage) { try { if (translateMessage.Field == "TextSegment2") { const string qry = "UPDATE [dbo].[TextSegment] SET [TextSegment2] = @TextSegment2 WHERE [Id] = @Id AND [TextSegment1] = @TextSegment1"; int rowEffect = this.Database.ExecuteSqlCommand(qry, new SqlParameter("@Id", translateMessage.Id), new SqlParameter("@TextSegment1", translateMessage.TextSegment1), new SqlParameter("@TextSegment2", translateMessage.TextSegment2)); if (rowEffect > 0) { return(true); } else { return(false); } } else { return(true); } } catch (Exception) { throw; } }
public override void OnClose() { try { DashBoardModel dbModel = new DashBoardModel(); dbModel.UpdateLastModified(this.fileId, String.Format("{0:s}", DateTime.Now)); } catch (Exception ex) { Debug.WriteLine(ex.Message); } if (clients.Any(a => a == this)) { clients.Remove(this); TranslateMessage translateMessage = new TranslateMessage(); translateMessage.ClientId = this.clientId; translateMessage.SendTime = DateTime.Now; translateMessage.UserId = this.userId; translateMessage.UserName = this.userName; translateMessage.Color = this.userColor.Name; translateMessage.IsClose = true; foreach (var client in clients) { if (((APVTranslator_Web.Socket.wsHandler)client).projectId == this.projectId && ((APVTranslator_Web.Socket.wsHandler)client).fileId == this.fileId) { string msgBack = JsonConvert.SerializeObject(translateMessage); client.Send(msgBack); } } } base.OnClose(); }
private async Task HandlingMessage(TranslateMessage translateMessage, TranslateModel translateModel) { Boolean bReult = false; await Task.Run(() => bReult = translateModel.SaveTextSegment(translateMessage)); translateMessage.ClientId = this.clientId; translateMessage.SendTime = DateTime.Now; translateMessage.UserId = this.userId; translateMessage.UserName = this.userName; translateMessage.Color = this.userColor.Name; string jsonMessage = JsonConvert.SerializeObject(translateMessage); this.lastMessage = jsonMessage; if (bReult) { foreach (var item in clients) { if (item != this && ((APVTranslator_Web.Socket.wsHandler)item).projectId == this.projectId && ((APVTranslator_Web.Socket.wsHandler)item).fileId == this.fileId) { string msgBack = jsonMessage; item.Send(msgBack); } } ; } else { string msgBack = string.Format("{0} have sent {1} at {2}", this.WebSocketContext.User.Identity.Name, "Something error!", DateTime.Now.ToLongTimeString()); this.Send(msgBack); } }
private void Work(object obj) { try { var paras = obj as object[]; IPEndPoint remoteIP = paras[0] as IPEndPoint; byte[] msgBuffer = paras[1] as byte[]; byte[] buffer = null; object msgObj = FormatterHelper.Deserialize(msgBuffer); if (msgObj is LoginMessage) { LoginMessage lginMsg = (LoginMessage)msgObj; IPEndPoint userEndPoint = new IPEndPoint(remoteIP.Address, remoteIP.Port); User user = new User(lginMsg.UserName, userEndPoint); OnFriendLoginMessage onFriendLoginMessage = new OnFriendLoginMessage(user); buffer = FormatterHelper.Serialize(onFriendLoginMessage); foreach (User item in userList) { server.Send(buffer, buffer.Length, item.NetPoint); } if (!userList.Contain(user)) { userList.Add(user); } // 发送应答消息 OnLoginMessage onloginmsg = new OnLoginMessage(userList); buffer = FormatterHelper.Serialize(onloginmsg); server.Send(buffer, buffer.Length, remoteIP); } else if (msgObj is LogoutMessage) { P2P.WellKnown.C2S.LogoutMessage lgoutMsg = (P2P.WellKnown.C2S.LogoutMessage)msgObj; User lgoutUser = userList.Find(lgoutMsg.UserName); if (lgoutUser != null) { userList.Remove(lgoutUser); } } else if (msgObj is P2P.WellKnown.C2S.DownLoadMessage) { //DownLoadMessage downLoadMessage = msgObj as DownLoadMessage; //UdpTranferFile.UdpSendFile udpSendFile = new UdpTranferFile.UdpSendFile(remoteIP.Address.ToString(), downLoadMessage.Port, 2280); //udpSendFile.Start(); //UdpTranferFile.SendFileManager sendFileManager = new UdpTranferFile.SendFileManager(downLoadMessage.FileName); //if (udpSendFile.CanSend(sendFileManager)) //{ // udpSendFile.SendFile(sendFileManager, null); //} //else //{ // //MessageBox.Show("文件正在发送,不能发送重复的文件。"); //} } else if (msgObj is GetUsersMessage) { GetUsersResponseMessage srvResMsg = new GetUsersResponseMessage(userList); buffer = FormatterHelper.Serialize(srvResMsg); foreach (User user in userList) { server.Send(buffer, buffer.Length, user.NetPoint); } } else if (msgObj is MassMsg) { SendToEveryBody(); } else if (msgObj is TranslateMessage) { TranslateMessage transMsg = (P2P.WellKnown.C2S.TranslateMessage)msgObj; User toUser = userList.Find(transMsg.ToUserName); // 转发Purch Hole请求消息 if (toUser == null) { //Console.WriteLine("Remote host {0} cannot be found at index server", transMsg.ToUserName); } else { SomeOneCallYouMessage transMsg2 = new SomeOneCallYouMessage(remoteIP); buffer = FormatterHelper.Serialize(transMsg); server.Send(buffer, buffer.Length, toUser.NetPoint); } } } catch (Exception) { } }