Пример #1
0
        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;
            }
        }
Пример #2
0
        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();
        }
Пример #3
0
	public void RegisterFunction(eMessageType _type, MessageFunction _func)
	{
		if(m_dicFunction.ContainsKey(_type) == true)
			m_dicFunction.Remove(_type);
		
		m_dicFunction.Add(_type, _func);
	}
Пример #4
0
        public MessageService()
        {
            BlogContext dbContext = new BlogContext();

            messageRepositories = new MessageFunction(dbContext);
            userRepositories    = new UserFunction(dbContext);
        }
Пример #5
0
        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");
                }
            }
        }
Пример #6
0
        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;
                }
            }
        }
Пример #7
0
 public MessageTypeIndicator(ISO8583Version version, MessageClass @class, MessageFunction function, MessageOrigin origin)
 {
     Version  = version;
     Class    = @class;
     Function = function;
     Origin   = origin;
 }
Пример #8
0
        public TopicService()
        {
            BlogContext dbContext = new BlogContext();

            topicRepositiries   = new TopicFunction(dbContext);
            messageRepositories = new MessageFunction(dbContext);
            userRepositories    = new UserFunction(dbContext);
        }
Пример #9
0
 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;
 }
Пример #10
0
        //提供了三种输出消息窗口的接口
        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);
        }
Пример #11
0
        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}");
        }
Пример #12
0
        public async void WaitForClient()
        {
            client = await listener.AcceptTcpClientAsync();

            //client = listener.AcceptTcpClient();
            string clientIp = GetClientIp();

            MessageFunction?.Invoke($"Klient podłączony. [{clientIp}]");

            WaitForMessage();
        }
Пример #13
0
        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}");
        }
Пример #14
0
        /// <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);
        }
Пример #15
0
        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;
        }
Пример #16
0
        /// <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);
        }
Пример #17
0
        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.");
        }
Пример #18
0
        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;
            }
        }
Пример #19
0
        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);
        }
Пример #20
0
        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");
            }
        }
Пример #21
0
        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");
            }
        }
Пример #22
0
        /// <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);
        }
Пример #23
0
    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);
    }
Пример #24
0
    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);
    }
Пример #25
0
        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();
        }
Пример #26
0
        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();
        }
Пример #27
0
        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ć...");
            }
        }
Пример #28
0
        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;
            }
        }
Пример #29
0
        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 { }
        }
Пример #30
0
        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;
        }
Пример #31
0
        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));
 }
Пример #33
0
 public void StartListening()
 {
     listener.Start();
     MessageFunction?.Invoke("Rozpocząłem nasłuch");
 }
Пример #34
0
        /// <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);
        }
Пример #35
0
 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");
     }
 }
Пример #36
0
 /// <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;
 }
Пример #37
0
        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.");
            }
              }
        }