public void SendMessage(string message) { try { Message messageToSend = new Message() { SendTime = DateTime.Now, Nick = nick, Text = message }; var serializer = new BinaryFormatter(); serializer.Serialize(stream, messageToSend); /** * using (MemoryStream memStream = new MemoryStream()) * { * serializer.Serialize(memStream, messageToSend); * byte[] dataToSend = memStream.GetBuffer(); * await stream.WriteAsync(dataToSend, 0, (int)memStream.Length); * }*/ } catch (Exception) { Message mess = new Message() { SendTime = DateTime.Now, Nick = nick, Text = "Serwer zakończył działanie." }; MessageFunction?.Invoke(mess); return; } }
public async void ClientConnect() { try { await client.ConnectAsync(serverIp, port); } catch (Exception) { } Message message = new Message() { SendTime = DateTime.Now, Nick = nick }; if (client.Connected) { string serverIp = GetServerIp(); message.Text = $"Połączyłem się z [{serverIp}]"; } else { message.Text = $"Błąd połączenia"; } MessageFunction?.Invoke(message); messageWaiting = new Task(() => WaitForMessage()); messageWaiting.Start(); }
public void RegisterFunction(eMessageType _type, MessageFunction _func) { if(m_dicFunction.ContainsKey(_type) == true) m_dicFunction.Remove(_type); m_dicFunction.Add(_type, _func); }
public MessageService() { BlogContext dbContext = new BlogContext(); messageRepositories = new MessageFunction(dbContext); userRepositories = new UserFunction(dbContext); }
public async void WaitForMessage() { bool wait = true; while (wait) { try { MessageFunction?.Invoke("Ozcekuję na wiadomości..."); //receivedData = server.Receive(ref client); var result = await server.ReceiveAsync(); client = result.RemoteEndPoint; string receivedMessage = System.Text.Encoding.ASCII.GetString(result.Buffer); MessageFunction?.Invoke($"Wiadomość z {client.ToString()}"); MessageFunction?.Invoke($"Treść: {receivedMessage}"); string messageToSendBack = DoSomeWork(receivedMessage); SendBack(messageToSendBack); } catch (Exception) { wait = false; MessageFunction?.Invoke("Przerywam działanie"); } } }
private async void WaitForMessage() { bool wait = true; byte[] receivedData = new byte[BUFFER]; int downloadedBytes = 0; while (wait) { try { NetworkStream stream = client.GetStream(); downloadedBytes = await stream.ReadAsync(receivedData, 0, receivedData.Length); string receivedMessage = System.Text.Encoding.ASCII.GetString(receivedData, 0, downloadedBytes); MessageFunction?.Invoke($"Otrzymałem: {receivedMessage}"); string newMessage = DoSomeWork(receivedMessage); SendMessage(newMessage); } catch (Exception) { MessageFunction?.Invoke("Klient się odłączył"); wait = false; } } }
public MessageTypeIndicator(ISO8583Version version, MessageClass @class, MessageFunction function, MessageOrigin origin) { Version = version; Class = @class; Function = function; Origin = origin; }
public TopicService() { BlogContext dbContext = new BlogContext(); topicRepositiries = new TopicFunction(dbContext); messageRepositories = new MessageFunction(dbContext); userRepositories = new UserFunction(dbContext); }
public MessageTypeIndicator(MessageVersion messageVersion, MessageClass messageClass, MessageFunction messageFunction, MessageOrigin originMessage) { MessageVersion = messageVersion; MessageClass = messageClass; MessageFunction = messageFunction; OriginMessage = originMessage; Mit = (int)messageVersion + (int)messageClass + (int)messageFunction + (int)originMessage; }
//提供了三种输出消息窗口的接口 public static MessageResult Show(MessageFunction function, string title, string message) { MessageWindow window = new MessageWindow(function, title, message); Application.Current.Dispatcher.Invoke(new Action(() => { window.ShowDialog(); })); return(window.Result); }
private async void SendMessage(string message) { byte[] dataToSend = new byte[BUFFER]; NetworkStream stream = client.GetStream(); dataToSend = System.Text.Encoding.ASCII.GetBytes(message); await stream.WriteAsync(dataToSend, 0, dataToSend.Length); MessageFunction?.Invoke($"Wysłałem: {message}"); }
public async void WaitForClient() { client = await listener.AcceptTcpClientAsync(); //client = listener.AcceptTcpClient(); string clientIp = GetClientIp(); MessageFunction?.Invoke($"Klient podłączony. [{clientIp}]"); WaitForMessage(); }
private async void WaitForMessage() { byte[] receivedData = new byte[BUFFER]; NetworkStream stream = client.GetStream(); int downloadedBytes = await stream.ReadAsync(receivedData, 0, receivedData.Length); string receivedMessage = System.Text.Encoding.ASCII.GetString(receivedData, 0, downloadedBytes); MessageFunction?.Invoke($"Otrzymałem: {receivedMessage}"); }
/// <summary> /// 菜单点击事件 /// </summary> public override IResponseMessageBase OnEvent_ClickRequest(RequestMessageEvent_Click requestMessage) { IResponseMessageBase reponseMessage = null; MessageFunction cmfun = new MessageFunction(); string keywords = requestMessage.EventKey; //查询关健字 int accountId = cmfun.GetAccountId(); //公众账户ID string EventName = ""; if (requestMessage.Event.ToString().Trim() != "") { EventName = requestMessage.Event.ToString(); } else if (requestMessage.EventKey != null) { EventName += requestMessage.EventKey.ToString(); } if (!cmfun.ExistsOriginalId(accountId, requestMessage.ToUserName)) { //验证接收方是否为我们系统配置的帐号,即验证微帐号与微信原始帐号id是否一致,如果不一致,说明【1】配置错误,【2】数据来源有问题 // new BLL.weixin_response_content().Add(accountId, requestMessage.FromUserName, requestMessage.MsgType.ToString(), EventName, "none", "未取到关键词对应的数据", requestMessage.ToUserName); return(cmfun.GetResponseMessageTxtByContent(requestMessage, "验证微帐号与微信原始帐号id不一致,可能原因【1】系统配置错误,【2】非法的数据来源有问题", accountId)); } int responseType = 0; //回复类型 //int ruleId = new BLL.weixin_request_rule().GetKeywordsRuleId(accountId, string.Empty, out responseType); //if (ruleId == 0) //{ // //new BLL.weixin_response_content().Add(accountId, requestMessage.FromUserName, requestMessage.MsgType.ToString(), EventName, "none", "未取到关键词对应的数据", requestMessage.ToUserName); // return cmfun.GetResponseMessageTxtByContent(requestMessage, "", accountId); //} reponseMessage = cmfun.GetResponseMessageTxt(requestMessage, accountId); //switch (responseType) //{ // case 1: // //发送纯文字 // break; // case 2: // //发送多图文 // reponseMessage = cmfun.GetResponseMessageNews(requestMessage, ruleId, accountId); // break; // case 3: // //发送语音 // reponseMessage = cmfun.GetResponseMessageeMusic(requestMessage, ruleId, accountId); // break; // default: // break; //} return(reponseMessage); }
public MessageWindow(MessageFunction function, string title, string message) { InitializeComponent(); this.Opacity = 0; Function.SetAnimation(0, animation); animation.Completed += animation_Completed; this.BeginAnimation(TextBlock.OpacityProperty, animation);//开始动画 this.Title = title; this.function = function; //label.Content = message; labeltext.Text = message; Result = MessageResult.None; }
/// <summary> /// 处理文字请求 /// </summary> public override IResponseMessageBase OnTextRequest(RequestMessageText requestMessage) { IResponseMessageBase IR = null; MessageFunction cmfun = new MessageFunction(); //BLL.weixin_request_rule ruleBLL = new BLL.weixin_request_rule(); int accountId = 0; try { string keywords = requestMessage.Content; //发送了文字信息 accountId = cmfun.GetAccountId(); //获取公众账户ID //验证公众账户原始ID是否一致 if (!cmfun.ExistsOriginalId(accountId, requestMessage.ToUserName)) { // new BLL.weixin_response_content().Add(accountId, requestMessage.FromUserName, requestMessage.MsgType.ToString(), requestMessage.Content, "none", "验证微帐号与微信原始帐号id不一致,说明【1】配置错误,【2】数据来源有问题", requestMessage.ToUserName); return(cmfun.GetResponseMessageTxtByContent(requestMessage, "验证微帐号与微信原始帐号id不一致,可能原因【1】系统配置错误,【2】非法的数据来源", accountId)); } IR = cmfun.GetResponseMessageTxt(requestMessage, accountId); int responseType = 0; //int ruleId = ruleBLL.GetKeywordsRuleId(accountId, keywords, out responseType); //if (ruleId <= 0 || responseType <= 0) //{ // //new BLL.weixin_response_content().Add(accountId, requestMessage.FromUserName, requestMessage.MsgType.ToString(), requestMessage.Content, "none", "未取到关键词对应的数据", requestMessage.ToUserName); // return cmfun.GetResponseMessageTxtByContent(requestMessage, "未找到匹配的关键词", accountId); //} //switch (responseType) //{ // case 1: // //发送纯文字 // break; // case 2: // //发送多图文 // IR = cmfun.GetResponseMessageNews(requestMessage, ruleId, accountId); // break; // case 3: // //发送语音 // IR = cmfun.GetResponseMessageeMusic(requestMessage, ruleId, accountId); // break; // default: // break; //} //new BLL.weixin_response_content().Add(accountId, requestMessage.MsgType.ToString(), requestMessage.FromUserName, requestMessage.CreateTime.ToString(), requestMessage.Content, requestMessage.ToString(), string.Empty); } catch (Exception ex) { } return(IR); }
public void GetNegativeMessage_should_log_message() { // Arrange var logger = (ListLogger)TestFactory.CreateLogger(LoggerTypes.List); MessageFunction messageFunction = new MessageFunction(_messageResponderServer.Object); // Act messageFunction.GetNegativeMessage(null, logger); // Assert var msg = logger.Logs[0]; msg.Should().Contain("MessageFunction - C# HTTP trigger function processed a request for GetNegativeMessage."); }
void HandleClientMessage(NetIncomingMessage msg) { MessageFunction type = (MessageFunction)msg.ReadInt32(); switch (type) { case MessageFunction.ClassMessage: string assemblyName = msg.ReadString(); string classType = msg.ReadString(); Message report = (Message)Activator.CreateInstance(assemblyName, classType).Unwrap(); msg.ReadAllFields(report); report.OnCalled(report, msg); break; case MessageFunction.SpawnAllPlayer: int count = msg.ReadInt32(); for (int i = 0; i < count; i++) { int id = msg.ReadInt32(); string playerName = msg.ReadString(); SpawnPlayer(id, playerName); } int newId = SpawnLocalPlayer(); MessageSpawnPlayer spawnMessage = new MessageSpawnPlayer(); spawnMessage.playerId = newId; spawnMessage.playerName = PlatformService.personaName; SendNetworkMessage(spawnMessage, SendTo.Others); break; case MessageFunction.UpdateVehiclesPositions: m_vNetworkManager.UpdateCarsPositions(msg); break; case MessageFunction.RemoveVehicle: int carID2 = msg.ReadInt32(); m_vNetworkManager.RemoveCar(carID2); break; case MessageFunction.UpdateCitizensPositions: m_cNetworkManager.UpdateCitizensPositions(msg); break; default: Debug.LogWarning("Unhandled msg type: " + type.ToString()); break; } }
public void GetSecretMessage_Http_trigger_should_return_known_string() { // Arrange MessageFunction messageFunction = new MessageFunction(_messageResponderServer.Object); var request = TestFactory.CreateHttpRequest(); // Act var response = (OkObjectResult)messageFunction.GetSecretMessage(request, logger).Result; // Assert response.Value.Should().Be("This is classified"); _messageResponderServer.Verify(x => x.GetPositiveMessage(), Times.Never); _messageResponderServer.Verify(x => x.GetNegativeMessage(), Times.Never); _messageResponderServer.Verify(x => x.GetSecretMessage(), Times.Once); }
private async void WaitForMessage() { try { var result = await client.ReceiveAsync(); string receivedMessage = System.Text.Encoding.ASCII.GetString(result.Buffer); MessageFunction?.Invoke($"Odebrałem: {receivedMessage}"); } catch (Exception) { MessageFunction?.Invoke("Przerywam działanie"); } }
public async void SendMessage(string message) { byte[] dataToSend = System.Text.Encoding.ASCII.GetBytes(message); try { await client.SendAsync(dataToSend, dataToSend.Length); MessageFunction?.Invoke("Wysłałem wiadomość."); WaitForMessage(); } catch (Exception) { MessageFunction?.Invoke("Nie udało się wysłać wiadomości"); } }
/// <summary> /// 获取新信息个数,类别应该是收的信息,不是发的信息 /// </summary> /// <returns>记录个数</returns> public int GetNewCount(MessageFunction messageFunction) { int returnValue = 0; string sqlQuery = " SELECT COUNT(*) " + " FROM " + BaseMessageEntity.TableName + " WHERE (" + BaseMessageEntity.FieldIsNew + " = " + ((int)MessageStateCode.New).ToString() + " ) " + " AND (" + BaseMessageEntity.FieldCategoryCode + " = 'Receiver' )" + " AND (" + BaseMessageEntity.FieldReceiverId + " = '" + UserInfo.Id + "' )" + " AND (" + BaseMessageEntity.FieldDeletionStateCode + " = 0 )" + " AND (" + BaseMessageEntity.FieldFunctionCode + " = '" + messageFunction.ToString() + "' )"; object returnObject = DbHelper.ExecuteScalar(sqlQuery); if (returnObject != null) { returnValue = int.Parse(returnObject.ToString()); } return(returnValue); }
public WWWRequestHandle RequestWWW(string url, Command cmd, MessageFunction completeCallback, MessageFunction errorCallback, int Id) { if (url == null) { DebugUtil.Error("ResourceManager::RequestWWW() url is null"); return(null); } WWWRequestHandle ret = new WWWRequestHandle(); ret.url = url; ret.cmd = cmd; ret.Id = Id; ret.completeCallback = completeCallback; ret.errorCallback = errorCallback; fetchingQueue.Add(ret); ret.m_LoadResTimeCost.Start(); return(ret); }
public WWWRequestHandle RequestWWW(string url, Command cmd, MessageFunction completeCallback, MessageFunction errorCallback) { if (url == null) { DebugUtil.Error("ResourceManager::RequestWWW() url is null"); return(null); } //DebugOutPut.Log("ResourceManager WWW at url: " + url, DebugLogLevel.LogLevel1); WWWRequestHandle ret = new WWWRequestHandle(); ret.url = url; ret.cmd = cmd; ret.completeCallback = completeCallback; ret.errorCallback = errorCallback; fetchingQueue.Add(ret); ret.m_LoadResTimeCost.Start(); return(ret); }
private void WaitForMessage() { stream = client.GetStream(); while (client.Connected) { try { /** * using (MemoryStream memStream = new MemoryStream()) * { * //First Aproach * byte[] receivedBytes = new byte[BUFFER]; * * int receivedBytesLength = await stream.ReadAsync(receivedBytes, 0, receivedBytes.Length); * * memStream.Write(receivedBytes, 0, receivedBytesLength); * memStream.Seek(0, SeekOrigin.Begin); * * // We are sending all the data in one package * var serializer = new BinaryFormatter(); * Message receivedMessage = (Message)serializer.Deserialize(memStream); * } */ // Second Aproach var serializer = new BinaryFormatter(); Message receivedMessage = (Message)serializer.Deserialize(stream); MessageFunction?.Invoke(receivedMessage); } catch (Exception exc) { Message mess = new Message() { SendTime = DateTime.Now, Nick = nick, Text = "Błąd pobierania wiadomości. Serwer nie odpowiada?." + exc.Message }; MessageFunction?.Invoke(mess); } } stream.Close(); }
public async void SendMessage(string message) { byte[] dataToSend = new byte[BUFFER]; try { NetworkStream stream = client.GetStream(); dataToSend = System.Text.Encoding.ASCII.GetBytes(message); await stream.WriteAsync(dataToSend, 0, dataToSend.Length); } catch (Exception) { MessageFunction?.Invoke("Serwer zakończył działanie."); return; } MessageFunction?.Invoke($"Wysłałem: {message}"); WaitForMessage(); }
public async void ClientConnect() { try { await client.ConnectAsync(serverIp, port); } catch (Exception) { } if (client.Connected) { string serverIp = GetServerIp(); MessageFunction?.Invoke($"Połączyłem się z [{serverIp}]"); } else { MessageFunction?.Invoke("Nie udało się połączyć..."); } }
void HandleSeverMessage(NetIncomingMessage msg) { MessageFunction type = (MessageFunction)msg.ReadInt32(); switch (type) { case MessageFunction.ClassMessage: SendTo sendTo = (SendTo)msg.ReadInt32(); string assemblyName = msg.ReadString(); string classType = msg.ReadString(); Message report = (Message)Activator.CreateInstance(assemblyName, classType).Unwrap(); msg.ReadAllFields(report); SendNetworkMessage(report, sendTo, msg); break; case MessageFunction.SpawnPlayer: // broadcast this to all connections, except sender List <NetConnection> all2 = m_server.Connections; // get copy all2.Remove(msg.SenderConnection); int id2 = msg.ReadInt32(); string playerName = msg.ReadString(); if (all2.Count > 0) { NetOutgoingMessage om = m_server.CreateMessage(); om.Write((int)MessageFunction.SpawnPlayer); om.Write(id2); om.Write(playerName); m_server.SendMessage(om, all2, NetDeliveryMethod.ReliableUnordered, 0); } SpawnPlayer(id2, playerName, msg.SenderConnection); break; default: Debug.LogWarning("Unhandled msg type: " + type.ToString()); break; } }
public void Process() { try { if (!this.haveHeader) { if (this.client.Available >= 8) { this.requestType = (MessageType)this.reader.ReadByte(); this.requestFunction = (MessageFunction)this.reader.ReadByte(); this.requestStatus = (MessageStatus)this.reader.ReadByte(); this.requestTag = this.reader.ReadByte(); this.requestLength = this.reader.ReadInt32(); if (this.requestLength > 0) { this.haveHeader = true; } else { Handle(new byte[] { }); } } } else { if (this.client.Available >= this.requestLength) { byte[] requestData = this.reader.ReadBytes(this.requestLength); Handle(requestData); this.haveHeader = false; } } } catch { } }
private byte[] TryExecute(MessageFunction function, byte[] data) { byte[] replyData = null; try { Debug.WriteLine("TryExecute " + function.ToString()); if (!this.client.Connected) { Debug.WriteLine("Failed. Reconnect"); Connect(); } if (this.client.Connected) { replyData = Execute(function, data); } else { Debug.WriteLine("Reconnect failed"); } } catch (Exception ex) { Debug.WriteLine("TryExecute failed: " + ex.ToString()); } return replyData; }
public int BroadcastProcess(string systemCode, bool allcompany, string[] roleIds, string[] areaIds, string[] companyIds, bool subCompany, string[] departmentIds, bool subDepartment, string[] userIds, string message, bool onlineOnly, MessageFunction functionCode = MessageFunction.SystemPush, DateTime?expireAt = null) { int result = 0; // 1: 这里需要生成一个sql语句。 // 2: 只发给中天客户端,中天客户端有登录过的用户? // 3: 一边读取一边执行发送指令,马上能见效。 // 4: 节约数据库资源,节约服务器资源。 // 5: 广播提醒,过期时间1周就可以了,太时间了,浪费内存资源。 // 2015-09-29 吉日嘎拉 从最高到最低的顺序判断 string commandText = " SELECT " + BaseUserEntity.FieldId + " FROM " + BaseUserEntity.TableName + " WHERE " + BaseUserEntity.FieldEnabled + " = 1 " + " AND " + BaseUserEntity.FieldDeletionStateCode + " = 0 " + " AND " + BaseUserEntity.FieldUserFrom + " = 'Base' "; if (allcompany) { // 什么都不过滤 } if (areaIds != null) { // 这个需要进行叠加处理 commandText += " AND " + BaseUserEntity.FieldCompanyId + " IN ( " + " SELECT " + BaseOrganizeEntity.FieldId + " FROM " + BaseOrganizeEntity.TableName + " WHERE " + BaseOrganizeEntity.FieldEnabled + " = 1 " + " AND " + BaseOrganizeEntity.FieldDeletionStateCode + " = 0 " + " AND (" + BaseOrganizeEntity.FieldProvinceId + " IN (" + StringUtil.ArrayToList(areaIds) + ")" + " OR " + BaseOrganizeEntity.FieldCityId + " IN (" + StringUtil.ArrayToList(areaIds) + ")" + " OR " + BaseOrganizeEntity.FieldStreetId + " IN (" + StringUtil.ArrayToList(areaIds) + ")" + " OR " + BaseOrganizeEntity.FieldDistrictId + " IN (" + StringUtil.ArrayToList(areaIds) + ")) )"; } if (subCompany) { commandText += " AND " + BaseUserEntity.FieldCompanyId + " IN ( " + " SELECT " + BaseOrganizeEntity.FieldId + " FROM " + BaseOrganizeEntity.TableName + " WHERE " + BaseOrganizeEntity.FieldEnabled + " = 1 " + "AND " + BaseOrganizeEntity.FieldDeletionStateCode + " = 0 " + "AND " + BaseOrganizeEntity.FieldId + " IN (" + StringUtil.ArrayToList(companyIds) + ") UNION " + " SELECT " + BaseOrganizeEntity.FieldId + " FROM " + BaseOrganizeEntity.TableName + " WHERE " + BaseOrganizeEntity.FieldEnabled + " = 1 " + "AND " + BaseOrganizeEntity.FieldDeletionStateCode + " = 0 " + " START WITH " + BaseOrganizeEntity.FieldParentId + " IN (" + StringUtil.ArrayToList(companyIds) + ") " + " CONNECT BY PRIOR " + BaseOrganizeEntity.FieldId + " = " + BaseOrganizeEntity.FieldParentId + ")"; } if (companyIds != null && companyIds.Length > 0) { commandText += " AND " + BaseUserEntity.FieldCompanyId + " IN (" + StringUtil.ArrayToList(companyIds) + ")"; } if (subDepartment) { commandText += " AND " + BaseUserEntity.FieldDepartmentId + " IN ( " + " SELECT " + BaseDepartmentEntity.FieldId + " FROM " + BaseDepartmentEntity.TableName + " WHERE " + BaseDepartmentEntity.FieldEnabled + " = 1 " + " AND " + BaseDepartmentEntity.FieldDeletionStateCode + " = 0 " + " AND " + BaseOrganizeEntity.FieldDeletionStateCode + " = 0 " + "AND " + BaseDepartmentEntity.FieldId + " IN (" + StringUtil.ArrayToList(departmentIds) + ") UNION " + " SELECT " + BaseDepartmentEntity.FieldId + " FROM " + BaseDepartmentEntity.TableName + " WHERE " + BaseDepartmentEntity.FieldEnabled + " = 1 " + " AND " + BaseDepartmentEntity.FieldDeletionStateCode + " = 0 " + " AND " + BaseOrganizeEntity.FieldDeletionStateCode + " = 0 " + " START WITH " + BaseDepartmentEntity.FieldParentId + " IN (" + StringUtil.ArrayToList(departmentIds) + ") " + " CONNECT BY PRIOR " + BaseDepartmentEntity.FieldId + " = " + BaseDepartmentEntity.FieldParentId + ") "; } if (departmentIds != null && departmentIds.Length > 0) { commandText += " AND " + BaseUserEntity.FieldDepartmentId + " IN (" + StringUtil.ArrayToList(departmentIds) + ")"; } if (roleIds != null && roleIds.Length > 0) { string tableName = systemCode + "UserRole"; commandText += " AND " + BaseUserEntity.FieldId + " IN ( SELECT UserId FROM " + tableName + " WHERE RoleId IN (" + StringUtil.ArrayToList(roleIds) + "))"; } if (userIds != null && userIds.Length > 0) { commandText += " AND " + BaseUserEntity.FieldId + " IN (" + StringUtil.ArrayToList(userIds) + ")"; } using (var redisClient = PooledRedisHelper.GetMessageClient()) { var userManager = new BaseUserManager(this.UserInfo); using (IDataReader dataReader = userManager.ExecuteReader(commandText)) { while (dataReader.Read()) { string[] receiverIds = new string[] { dataReader[BaseUserEntity.FieldId].ToString() }; BaseMessageEntity entity = new BaseMessageEntity(); // entity.Id = BaseBusinessLogic.NewGuid(); entity.FunctionCode = functionCode.ToString(); // entity.FunctionCode = MessageFunction.SystemPush.ToString(); // entity.FunctionCode = MessageFunction.Remind.ToString(); entity.Contents = message; entity.CreateCompanyId = this.UserInfo.CompanyId; entity.CreateCompanyName = this.UserInfo.CompanyName; entity.CreateDepartmentId = this.UserInfo.DepartmentId; entity.CreateDepartmentName = this.UserInfo.DepartmentName; entity.CreateUserId = this.UserInfo.Id; entity.CreateBy = this.UserInfo.RealName; entity.IPAddress = this.UserInfo.IPAddress; entity.CreateOn = DateTime.Now; entity.IsNew = 1; entity.ReadCount = 0; entity.DeletionStateCode = 0; if (!expireAt.HasValue) { expireAt = DateTime.Now.AddDays(5); } result = Send(redisClient, entity, receiverIds, false, expireAt); } } } return(result); }
public Task <string> MessageQueryAsync(MessageFunction messageFunction, BlockParameter blockParameter = null) { return(ContractHandler.QueryAsync <MessageFunction, string>(messageFunction, blockParameter)); }
public void StartListening() { listener.Start(); MessageFunction?.Invoke("Rozpocząłem nasłuch"); }
/// <summary> /// 调用消息广播接口 /// </summary> /// <returns></returns> public static BaseResult Broadcast(BaseUserInfo userInfo, string systemCode, bool allcompany, string[] roleIds , string[] areaIds, string[] companyIds, bool subCompany , string[] departmentIds, bool subDepartment, string[] userIds, string message, bool onlineOnly, MessageFunction functionCode = MessageFunction.Remind, DateTime?expireAt = null) { BaseResult result = null; string url = BaseSystemInfo.UserCenterHost + "/UserCenterV42/MessageService.ashx"; WebClient webClient = new WebClient(); NameValueCollection postValues = new NameValueCollection(); postValues.Add("system", BaseSystemInfo.SoftFullName); postValues.Add("systemCode", systemCode); postValues.Add("securityKey", BaseSystemInfo.SecurityKey); postValues.Add("function", "Broadcast"); postValues.Add("userInfo", userInfo.Serialize()); postValues.Add("allcompany", allcompany.ToString()); if (roleIds != null) { postValues.Add("roleIds", string.Join(",", roleIds)); } if (areaIds != null) { postValues.Add("areaIds", string.Join(",", areaIds)); } if (companyIds != null) { postValues.Add("companyIds", string.Join(",", companyIds)); } postValues.Add("subCompany", subCompany.ToString()); if (departmentIds != null) { postValues.Add("departmentIds", string.Join(",", departmentIds)); } postValues.Add("subDepartment", subDepartment.ToString()); if (userIds != null) { postValues.Add("userIds", string.Join(",", userIds)); } postValues.Add("message", HttpUtility.HtmlEncode(message)); postValues.Add("onlineOnly", onlineOnly.ToString()); // 2016-04-06 吉日嘎拉 提高弹出消息的位置 postValues.Add("functionCode", functionCode.ToString()); if (expireAt.HasValue) { postValues.Add("expireAt", expireAt.Value.ToString(BaseSystemInfo.DateTimeFormat)); } // 向服务器发送POST数据 byte[] responseArray = webClient.UploadValues(url, postValues); string response = Encoding.UTF8.GetString(responseArray); if (!string.IsNullOrEmpty(response)) { JavaScriptSerializer javaScriptSerializer = new JavaScriptSerializer(); result = javaScriptSerializer.Deserialize <BaseResult>(response); } return(result); }
public JsonResult ModifyMessage(string UserName, string FunctionName, string functionlist, string MessageLevel) { int userid = MembershipService.GetUserID(UserName); int functionid = CRMMapper.Get().QueryForObject<int>("ProductFunction.FunctionID", FunctionName); try { Hashtable htparm = new Hashtable(); htparm["UserID"] = userid; htparm["FunctionID"] = functionid; htparm["functionlist"] = functionlist; htparm["MessageLevel"] = MessageLevel; int count = CRMMapper.Get().QueryForObject<int>("MessageFunction.MyFind", htparm); EmedBidSystem.Web.com.chinaemed.sms.Cache cache = new EmedBidSystem.Web.com.chinaemed.sms.Cache(); if (count != 0) { CRMMapper.Get().QueryForObject<string>("MessageFunction.UpdateCitylist", htparm); cache.RemoveSMSCache(); } else { MessageFunction user = new MessageFunction(); user.UserID = userid; user.FunctionID = functionid; user.CityList = functionlist; user.MessageLevel = MessageLevel; CRMMapper.Get().QueryForObject<string>("MessageFunction.Insert", user); cache.RemoveSMSCache(); } return Json("True"); } catch (Exception ex) { //string temp = ex.Message; return Json("false"); } }
/// <summary> /// 获取新信息个数,类别应该是收的信息,不是发的信息 /// </summary> /// <returns>记录个数</returns> public int GetNewCount(MessageFunction messageFunction) { int returnValue = 0; string sqlQuery = " SELECT COUNT(*) " + " FROM " + BaseMessageEntity.TableName + " WHERE (" + BaseMessageEntity.FieldIsNew + " = " + ((int)MessageStateCode.New).ToString() + " ) " + " AND (" + BaseMessageEntity.FieldCategoryCode + " = 'Receiver' )" + " AND (" + BaseMessageEntity.FieldReceiverId + " = '" + UserInfo.Id + "' )" + " AND (" + BaseMessageEntity.FieldDeletionStateCode + " = 0 )" + " AND (" + BaseMessageEntity.FieldFunctionCode + " = '" + messageFunction.ToString() + "' )"; object returnObject = DbHelper.ExecuteScalar(sqlQuery); if (returnObject != null) { returnValue = int.Parse(returnObject.ToString()); } return returnValue; }
public byte[] Execute(MessageFunction function, byte[] data) { DateTime timeout = DateTime.Now.AddSeconds(60); byte tag = 0; this.writer.Write((byte)MessageType.Request); this.writer.Write((byte)function); this.writer.Write((byte)MessageStatus.Unknown); this.writer.Write(tag); this.writer.Write(data.Length); this.writer.Flush(); this.writer.Write(data); this.writer.Flush(); while (this.client.Available < 8) { if (DateTime.Now > timeout) { this.client.Close(); throw new Exception("Netowrk timeout"); } Thread.Sleep(10); } MessageType responseType = (MessageType)this.reader.ReadByte(); MessageFunction responseFunction = (MessageFunction)this.reader.ReadByte(); MessageStatus responseStatus = (MessageStatus)this.reader.ReadByte(); byte responseTag = this.reader.ReadByte(); int length = this.reader.ReadInt32(); while (length > 0 && this.client.Available < length) { if (DateTime.Now > timeout) { this.client.Close(); throw new Exception("Netowrk timeout"); } Thread.Sleep(10); } if (length < 0 || length > 16777216) { this.writer.Close(); this.reader.Close(); this.client.Close(); throw new ClientException("Bad length"); } byte[] replyData = length > 0 ? this.reader.ReadBytes(length) : new byte[] { }; if (responseType != MessageType.Reply) { throw new ClientException("Bad response message type."); } else if (responseFunction != function) { throw new ClientException("Bad response message function."); } else if (responseTag != tag) { throw new ClientException("Bad response message tag."); } else { switch (responseStatus) { case MessageStatus.Success: return replyData; case MessageStatus.FailServerError: throw new ClientException("Server reports error: " + Encoding.UTF8.GetString(replyData)); case MessageStatus.FailBadRequest: throw new ClientException("Server reports bad request."); default: throw new ClientException("Bad response message status."); } } }