Ejemplo n.º 1
0
        private async Task Play(HttpContext context, WebSocket webSocket)
        {
            string userName = context.Request.Query["userName"];

            webSockets.Add(userName, webSocket);

            var buffer = new byte[1024 * 4];
            WebSocketReceiveResult result = await webSocket.ReceiveAsync(new ArraySegment <byte>(buffer), CancellationToken.None);

            while (!result.CloseStatus.HasValue)
            {
                string reqString = Encoding.UTF8.GetString(buffer);

                MessageReq msgReq = JsonConvert.DeserializeObject <MessageReq>(reqString);


                if (string.IsNullOrEmpty(msgReq.To))
                {
                    await sendToEveryOneAsync(msgReq.GetBytes(), result);
                }
                else
                {
                    await sendToPersonAsync(msgReq.GetBytes(), result, msgReq.To);
                }
                result = await webSocket.ReceiveAsync(new ArraySegment <byte>(buffer), CancellationToken.None);
            }
            await webSocket.CloseAsync(result.CloseStatus.Value, result.CloseStatusDescription, CancellationToken.None);

            webSockets.Remove(userName);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 查询订单返回
        /// </summary>
        /// <param name="orderId"></param>
        /// <returns></returns>
        public static string QueryOrder(string orderId)
        {
            string url = string.Format(domain + "/rest/v1.0/order/query/access_token/{0}/sf_appid/{1}/sf_appkey/{2}", QueryAccessToken(), SFAppId, SFAppKey);
            MessageReq <OrderQueryReqDto> req = new MessageReq <OrderQueryReqDto>();

            req.head.transType      = 203;
            req.head.transMessageId = DateTime.Now.ToLongTimeString();
            req.body         = new OrderQueryReqDto();
            req.body.orderId = orderId;
            MessageResp <OrderQueryRespDto> res = HttpWebHelper.doPost <MessageReq <OrderQueryReqDto>, MessageResp <OrderQueryRespDto> >(url, req);

            //return HttpWebHelper.ObjectToJson(res);
            if (res.head.code == "EX_CODE_OPENAPI_0105")
            {
                GetAccessToken();
                QueryOrder(orderId);
            }
            if (res.head.transType == 4203)
            {
                return(res.body.mailNo);
            }
            else
            {
                throw new Exception(res.head.message);
            }
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Message the specified workspaceId, input and callback.
        /// </summary>
        /// <param name="workspaceId">Workspace identifier.</param>
        /// <param name="input">Input.</param>
        /// <param name="callback">Callback.</param>
        public bool Message(string workspaceId, string input, OnMessage callback)
        {
            if (string.IsNullOrEmpty(workspaceId))
            {
                throw new ArgumentNullException("workspaceId");
            }
            if (string.IsNullOrEmpty(input))
            {
                throw new ArgumentNullException("input");
            }
            if (callback == null)
            {
                throw new ArgumentNullException("callback");
            }

            RESTConnector connector = RESTConnector.GetConnector(SERVICE_ID, "/v2/rest/workspaces");

            if (connector == null)
            {
                return(false);
            }

            string reqJson   = "{{\"input\": {{\"text\": \"{0}\"}}}}";
            string reqString = string.Format(reqJson, input);

            MessageReq req = new MessageReq();

            req.Callback = callback;
            req.Headers["Content-Type"] = "application/json";
            req.Function   = "/" + workspaceId + "/message";
            req.Send       = Encoding.UTF8.GetBytes(reqString);
            req.OnResponse = MessageResp;

            return(connector.Send(req));
        }
Ejemplo n.º 4
0
        public async Task Create_Chat_Room_For_Talk()
        {
            // Arrange
            var actualUserRegistered = await UserRegisterAsync(new UserReq
            {
                Name         = "Test",
                Surname      = "Test",
                EmailAddress = "*****@*****.**",
                Username     = "******",
                Password     = "******"
            });

            await AuthenticateAsync(actualUserRegistered.AccessToken);

            var actual = await TestClient.GetAsync("api/start-chat");

            var response = await actual.Content.ReadAsAsync <ResultExtended <string> >();

            //
            // Act
            var messageReq = new MessageReq
            {
                Username = "******",
                Text     = "Hello Jack!",
            };
            var expected = await TestClient.PostAsJsonAsync($"api/{response.Data}/send-message", messageReq);

            //
            // Assert
            expected.StatusCode.Should().Be(HttpStatusCode.OK);
            var result = await expected.Content.ReadAsAsync <ResultExtended <MessageRes> >();

            result.Data.ReceiverUsername.Should().Be(messageReq.Username);
            result.Data.Text.Should().Be(messageReq.Text);
        }
Ejemplo n.º 5
0
        }   //获取流水号   流水号格式 20171130+10位(时间戳)

        private void testwaybill(String id)
        {
            string url = "https://open-sbox.sf-express.com/rest/v1.0/waybill/image/access_token/" + accesstoken + "/sf_appid/00037521/sf_appkey/21662E074E84B37EB4DBA0F89F9803AA";
            MessageReq <WaybillReqDto> req  = new MessageReq <WaybillReqDto>();
            HeadMessageReq             req2 = new HeadMessageReq
            {
                transType      = 0xcd,
                transMessageId = GettransMessageId()
            };

            req.head = req2;
            WaybillReqDto dto = new WaybillReqDto
            {
                orderId = id
            };

            req.body = dto;
            MessageResp <WaybillRespDto> resp = WaybillDownloadTools.waybillDownload(url, req);
            //resp.body.images{string[]};
            string newLine = "打印信息:" + resp.head.message + "\n";

            richTextBox1.Text = richTextBox1.Text.Insert(0, newLine);
            if (resp.head.code.Equals("EX_CODE_OPENAPI_0200"))
            {
                String[] a = resp.body.images;
                Base64ToImg(a[0]);
            }
        }
Ejemplo n.º 6
0
 public bool UserExist(MessageReq mr)
 {
     foreach (CommonUsers us in _commonList)
     {
         if (us.Login == mr.Recipient)
         {
             return(true);
         }
     }
     return(false);
 }
Ejemplo n.º 7
0
        // string pathToArchivize = "Archiwum_Wiadomości.xml";

        public void Save(MessageReq msg, string pathToArchivize)
        {
            if (File.Exists(pathToArchivize))
            {
                AddNewElementToXmlFile(msg, pathToArchivize);
            }
            else
            {
                CreateArchivizeXmlFile(msg, pathToArchivize);
            }
        }
Ejemplo n.º 8
0
        public async Task <IActionResult> SendMessage(string chatId, MessageReq request)
        {
            var response = await _messageService.SendMessage(_currentUser.UserId, chatId, request.Username, request.Text);

            if (!response.Succeeded)
            {
                return(BadRequest(response));
            }

            return(Ok(response));
        }
Ejemplo n.º 9
0
        public IActionResult AddShortMessage([FromBody] MessageReq messageReq)
        {
            try
            {
                var reply = Client.AddShortMessage(messageReq);

                return(Json(new JsonResultModel(ReturnCode.Success, "Send short message successful.")));
            }
            catch (RpcException ex)
            {
                return(Json(new JsonResultModel(ReturnCode.SubmitError, ex.Status.Detail)));
            }
        }
Ejemplo n.º 10
0
        private void RouteQuery()
        {
            string url = "https://open-sbox.sf-express.com/rest/v1.0/route/query/access_token/" + accesstoken + "/sf_appid/00037521/sf_appkey/21662E074E84B37EB4DBA0F89F9803AA";
            MessageReq <RouteReqDto> req  = new MessageReq <RouteReqDto>();
            HeadMessageReq           req2 = new HeadMessageReq
            {
                transType      = 0x1f5,
                transMessageId = GettransMessageId()
            };

            req.head = req2;
            RouteReqDto dto = new RouteReqDto
            {
                methodType     = 2,
                trackingType   = 1,
                trackingNumber = textBox2.Text.ToString()
            };

            req.body = dto;
            MessageResp <List <RouteRespDto> > resp = RouteTools.routeQuery(url, req);
            string newLine = "订单追踪message:" + resp.head.message + "\n";

            //richTextBox1.Text = richTextBox1.Text.Insert(0, newLine);
            if (resp.head.code.Equals("EX_CODE_OPENAPI_0200"))
            {
                for (int i = 0; i < resp.body.Count; i++)
                {
                    newLine           = "{\n";
                    richTextBox1.Text = richTextBox1.Text.Insert(0, newLine);
                    newLine           = "     快递接收地址:" + resp.body[i].acceptAddress + "\n";
                    richTextBox1.Text = richTextBox1.Text.Insert(0, newLine);
                    newLine           = "     快递接收时间:" + resp.body[i].acceptTime + "\n";
                    richTextBox1.Text = richTextBox1.Text.Insert(0, newLine);
                    newLine           = "     客户订单号:" + resp.body[i].orderId + "\n";
                    richTextBox1.Text = richTextBox1.Text.Insert(0, newLine);
                    newLine           = "     快递运单号:" + resp.body[i].mailNo + "\n";
                    richTextBox1.Text = richTextBox1.Text.Insert(0, newLine);
                    newLine           = "     操作码:" + resp.body[i].opcode + "\n";
                    richTextBox1.Text = richTextBox1.Text.Insert(0, newLine);
                    newLine           = "     备注:" + resp.body[i].remark + "\n";
                    richTextBox1.Text = richTextBox1.Text.Insert(0, newLine);
                    newLine           = "}\n";
                    richTextBox1.Text = richTextBox1.Text.Insert(0, newLine);
                }
            }
            else
            {
                newLine           = "订单追踪message:" + resp.head.message + "\n";
                richTextBox1.Text = richTextBox1.Text.Insert(0, newLine);
            }
        }
Ejemplo n.º 11
0
        public bool Message(OnMessage callback, string workspaceID, string input, bool useAlternateIntents, string conversationID = default(string), string customData = default(string))
        {
            if (string.IsNullOrEmpty(workspaceID))
            {
                throw new ArgumentNullException("workspaceId");
            }
            if (string.IsNullOrEmpty(input))
            {
                throw new ArgumentNullException("input");
            }
            if (callback == null)
            {
                throw new ArgumentNullException("callback");
            }

            MessageRequest messageRequest = new MessageRequest();

            messageRequest.inputText         = input;
            messageRequest.alternate_intents = useAlternateIntents;
            if (conversationID != default(string))
            {
                messageRequest.conversationID = conversationID;
            }

            RESTConnector connector = RESTConnector.GetConnector(SERVICE_ID, SERVICE_MESSAGE);

            if (connector == null)
            {
                return(false);
            }

            fsData data;

            sm_Serializer.TrySerialize(messageRequest.GetType(), messageRequest, out data).AssertSuccessWithoutWarnings();
            string reqString = fsJsonPrinter.CompressedJson(data);

            MessageReq req = new MessageReq();

            req.Callback                = callback;
            req.MessageRequest          = messageRequest;
            req.Headers["Content-Type"] = "application/json";
            req.Headers["Accept"]       = "application/json";
            req.Parameters["version"]   = Version.VERSION;
            req.Function                = "/" + workspaceID + "/message";
            req.Data       = customData;
            req.Send       = Encoding.UTF8.GetBytes(reqString);
            req.OnResponse = MessageResp;

            return(connector.Send(req));
        }
Ejemplo n.º 12
0
        }   //获取流水号   流水号格式 20171130+10位(时间戳)

        public void OrderQuery(String OrderId_check)
        {
            string url = "https://open-sbox.sf-express.com/rest/v1.0/order/query/access_token/" + accesstoken + "/sf_appid/00037521/sf_appkey/21662E074E84B37EB4DBA0F89F9803AA";
            MessageReq <OrderQueryReqDto> req = new MessageReq <OrderQueryReqDto>();
            HeadMessageReq req2 = new HeadMessageReq
            {
                transType      = 0xcb,
                transMessageId = GettransMessageId()
            };

            req.head = req2;
            OrderQueryReqDto dto = new OrderQueryReqDto
            {
                orderId = OrderId_check
            };

            req.body = dto;
            MessageResp <OrderQueryRespDto> resp = OrderTools.orderQuery(url, req);
            string newLine = "message:" + resp.head.message + "\n";

            //richTextBox1.Text = richTextBox1.Text.Insert(0, newLine);

            /* newLine = "transMessageId(流水号):" + resp.head.transMessageId + "\n";
             * richTextBox1.Text = richTextBox1.Text.Insert(0, newLine);
             * newLine = "transType(处理类型):" + resp.head.transType + "\n";
             * richTextBox1.Text = richTextBox1.Text.Insert(0, newLine);
             * newLine = "code(状态码):" + resp.head.code + "\n";
             * richTextBox1.Text = richTextBox1.Text.Insert(0, newLine);*/
            if (resp.head.code.Equals("EX_CODE_OPENAPI_0200"))
            {
                newLine           = "resp.body.destcode(目的地代码):" + resp.body.destCode + "\n";
                richTextBox1.Text = richTextBox1.Text.Insert(0, newLine);
                newLine           = "resp.body.originCode(原寄地代码):" + resp.body.originCode + "\n";
                richTextBox1.Text = richTextBox1.Text.Insert(0, newLine);
                newLine           = "resp.body.orderId(订单号):" + resp.body.orderId + "\n";
                richTextBox1.Text = richTextBox1.Text.Insert(0, newLine);
                newLine           = "resp.body.maiNo(顺丰运单号):" + resp.body.mailNo + "\n";
                richTextBox1.Text = richTextBox1.Text.Insert(0, newLine);
                newLine           = "resp.body.remark(留言):" + resp.body.remark + "\n";
                richTextBox1.Text = richTextBox1.Text.Insert(0, newLine);
                newLine           = null;
                textBox2.Text     = resp.body.mailNo;
            }
            else
            {
                newLine           = "查询失败,错误信息:" + resp.head.message + "\n";
                richTextBox1.Text = richTextBox1.Text.Insert(0, newLine);
            }
        }
Ejemplo n.º 13
0
        /// <summary>
        /// Message the specified workspaceId, input and callback.
        /// </summary>
        /// <param name="successCallback">The success callback.</param>
        /// <param name="failCallback">The fail callback.</param>
        /// <param name="workspaceID">Workspace identifier.</param>
        /// <param name="input">Input.</param>
        /// <param name="customData">Custom data.</param>
        public bool Message(SuccessCallback <object> successCallback, FailCallback failCallback, string workspaceID, string input, Dictionary <string, object> customData = null)
        {
            //if (string.IsNullOrEmpty(workspaceID))
            //    throw new ArgumentNullException("workspaceId");
            if (successCallback == null)
            {
                throw new ArgumentNullException("successCallback");
            }
            if (failCallback == null)
            {
                throw new ArgumentNullException("failCallback");
            }

            RESTConnector connector = RESTConnector.GetConnector(Credentials, Workspaces);

            if (connector == null)
            {
                return(false);
            }

            string reqJson   = "{{\"input\": {{\"text\": \"{0}\"}}}}";
            string reqString = string.Format(reqJson, input);

            MessageReq req = new MessageReq();

            req.SuccessCallback         = successCallback;
            req.FailCallback            = failCallback;
            req.HttpMethod              = UnityWebRequest.kHttpVerbPOST;
            req.Headers["Content-Type"] = "application/json";
            req.Headers["Accept"]       = "application/json";
            req.Parameters["version"]   = VersionDate;
            req.Function   = "/" + workspaceID + "/message";
            req.Send       = Encoding.UTF8.GetBytes(reqString);
            req.OnResponse = MessageResp;
            req.Headers["X-IBMCloud-SDK-Analytics"] = "service_name=conversation;service_version=v1;operation_id=Message";
            req.DisableSslVerification = DisableSslVerification;
            req.CustomData             = customData == null ? new Dictionary <string, object>() : customData;
            if (req.CustomData.ContainsKey(Constants.String.CUSTOM_REQUEST_HEADERS))
            {
                foreach (KeyValuePair <string, string> kvp in req.CustomData[Constants.String.CUSTOM_REQUEST_HEADERS] as Dictionary <string, string> )
                {
                    req.Headers.Add(kvp.Key, kvp.Value);
                }
            }

            return(connector.Send(req));
        }
Ejemplo n.º 14
0
        //沙盒环境{domain} :open-sbox.sf-express.com
        //生产环境{domain} :open-prod.sf-express.com
        /// <summary>
        /// 获取Token 有效期为1小时
        /// </summary>
        /// <returns></returns>
        private static string GetAccessToken()
        {
            string url = string.Format(domain + "/public/v1.0/security/access_token/sf_appid/{0}/sf_appkey/{1}", SFAppId, SFAppKey);
            MessageReq <TokenEntity> accessTokenReq = new MessageReq <TokenEntity>();

            accessTokenReq.head.transType      = 301;
            accessTokenReq.head.transMessageId = DateTime.Now.ToLongTimeString();
            MessageResp <TokenEntity> res = HttpWebHelper.doPost <MessageReq <TokenEntity>, MessageResp <TokenEntity> >(url, accessTokenReq);

            if (res.head.transType == 4301)
            {
                return(res.body.accessToken);
            }
            else
            {
                throw new Exception(res.head.message);
            }
        }
Ejemplo n.º 15
0
        private void CreateArchivizeXmlFile(MessageReq msg, string pathToArchivize)
        {
            try
            {
                var newMessage =
                    new XElement("Messages",
                                 new XElement("Message",
                                              new XAttribute("Recipient", msg.Recipient),
                                              new XAttribute("Sender", msg.Login),
                                              new XAttribute("Date", DateTime.Now),
                                              new XElement("Body", msg.Message)));

                newMessage.Save(pathToArchivize);
            }
            catch (Exception)
            {
                Console.WriteLine("Błąd w tworzeniu pliku archiwizacji wiadomości");
            }
        }
Ejemplo n.º 16
0
        public string VerifySign(Test pars)
        {
            string res    = "";
            var    keyDic = GetKeyDics();

            #region 判断请求是否过期---假设过期时间是20秒
            DateTime requestTime = new DateTime(pars._timestamp);

            if (requestTime.AddSeconds(20) < DateTime.Now)
            {
                MessageReq message = new MessageReq();
                message.code = -1;
                message.msg  = "接口过期";
                res          = JsonConvert.SerializeObject(message);
            }
            #endregion

            #region 根据appkey获取key值
            string secret = keyDic.Where(T => T.Key == pars.appKey).FirstOrDefault().Value;
            #endregion

            #region 校验签名是否合法
            var param = new SortedDictionary <string, string>(new AsciiComparer());
            param.Add("age", pars.age.ToString());
            param.Add("appKey", pars.appKey);

            param.Add("appSecret", secret);//把secret加入进行加密

            param.Add("_timestamp", pars._timestamp.ToString());

            string currentSign = GetSign(param, pars.appKey);

            if (pars._sign != currentSign)
            {
                MessageReq message = new MessageReq();
                message.code = -2;
                message.msg  = "签名不合法";
                res          = JsonConvert.SerializeObject(message);
            }
            #endregion
            return(res);
        }
Ejemplo n.º 17
0
        public static string QueryRoute(string trackingNumber)
        {
            string url = string.Format(domain + "/rest/v1.0/route/query/access_token/{0}/sf_appid/{1}/sf_appkey/{2}", QueryAccessToken(), SFAppId, SFAppKey);
            MessageReq <RouteReqDto> req = new MessageReq <RouteReqDto>();

            req.head.transType      = 501;
            req.head.transMessageId = DateTime.Now.ToLongTimeString();
            req.body = new RouteReqDto();
            req.body.trackingNumber = trackingNumber;
            req.body.trackingType   = 2;//2 订单号查询 1 运单号查询
            req.body.methodType     = 1;
            MessageResp <List <RouteRespDto> > res = HttpWebHelper.doPost <MessageReq <RouteReqDto>, MessageResp <List <RouteRespDto> > >(url, req);

            if (res.head.code == "EX_CODE_OPENAPI_0105")
            {
                GetAccessToken();
                QueryRoute(trackingNumber);
            }
            return(HttpWebHelper.ObjectToJson(res));
        }
Ejemplo n.º 18
0
        public void SendMessage(string recipient, string message, byte[] imageData)
        {
            var messageReq = new MessageReq
            {
                Login     = Login,
                Message   = message,
                Recipient = recipient
            };

            if (imageData != null)
            {
                messageReq.Attachment = new Attachment
                {
                    Data = imageData
                };
            }

            _queueClientService.SendData(_configurationService.MainQueueName, RouteKey,
                                         _configurationService.ExchangeName, messageReq);
        }
Ejemplo n.º 19
0
        public static string SubmitOrder(string province, string city, string address, string contact, string tel, string goodsName, short payMethod)
        {
            string url = string.Format(domain + "/rest/v1.0/order/access_token/{0}/sf_appid/{1}/sf_appkey/{2}", QueryAccessToken(), SFAppId, SFAppKey);
            MessageReq <OrderReqEntity> req = new MessageReq <OrderReqEntity>();

            req.head.transType      = 200;
            req.head.transMessageId = DateTime.Now.ToLongTimeString();
            req.body             = new OrderReqEntity();
            req.body.orderId     = "SF" + DateTime.Now.ToString("yyyyMMddHHmmssfff");
            req.body.expressType = 1;         //标准快递
            req.body.isDoCall    = 1;         //通知收派员上门取件
            req.body.payMethod   = payMethod; //付款方式 1月结 2收方付 3第三方付
            if (req.body.payMethod == 1)
            {
                req.body.custId = SFYuJieCode;//顺丰月结卡号 10 位数字
            }
            req.body.consigneeInfo          = new DeliverConsigneeInfoDto();
            req.body.consigneeInfo.address  = address;
            req.body.consigneeInfo.city     = city;
            req.body.consigneeInfo.company  = "顺丰";
            req.body.consigneeInfo.contact  = contact;
            req.body.consigneeInfo.tel      = tel;
            req.body.consigneeInfo.province = province;
            req.body.cargoInfo       = new CargoInfoDto();
            req.body.cargoInfo.cargo = goodsName;
            MessageResp <OrderRespEntity> res = HttpWebHelper.doPost <MessageReq <OrderReqEntity>, MessageResp <OrderRespEntity> >(url, req);

            if (res.head.code == "EX_CODE_OPENAPI_0105")
            {
                GetAccessToken();
                SubmitOrder(province, city, address, contact, tel, goodsName, payMethod);
            }
            if (res.head.transType == 4200)
            {
                return(res.body.orderId);
            }
            else
            {
                throw new Exception(res.head.message);
            }
        }
Ejemplo n.º 20
0
        static void Main(string[] args)
        {
            var at = new Attachment();

            at.MimeType = "jakibubuus";
            byte[] scores = { 0111 };

            at.Data = scores;
            at.Name = "nafewfzwa";

            var mr = new MessageReq();

            mr.Attachment = at;
            mr.Message    = "Wiadomoewfweść";
            mr.Recipient  = "lfewffewfuj";
            mr.Login      = "******";

            var xma = new XmlMessageArchivizer();

            //  xma.Save(mr, @"c:\MyTest.xml");

            var us = new User();

            us.Login = "******";
            List <MessageNotification> mn = xma.Read(us, @"c:\MyTest.xml");

            foreach (var mess in mn)
            {
                Console.WriteLine(Encoding.UTF8.GetString(mess.Attachment.Data));
                Console.WriteLine(mess.Message);
                Console.WriteLine(mess.Attachment.MimeType);
                Console.WriteLine(mess.Attachment.Name);
                Console.WriteLine(mess.SendTime.ToString());
                Console.WriteLine(mess.Sender);
            }



            Console.ReadLine();
        }
Ejemplo n.º 21
0
        /// <summary>
        /// 查询AccessToken 可以查询到数据 但是可能过期
        /// </summary>
        /// <returns></returns>
        public static string QueryAccessToken()
        {
            string url = string.Format(domain + "/public/v1.0/security/access_token/query/sf_appid/{0}/sf_appkey/{1}", SFAppId, SFAppKey);
            MessageReq <TokenEntity> accessTokenReq = new MessageReq <TokenEntity>();

            accessTokenReq.head.transType      = 300;
            accessTokenReq.head.transMessageId = DateTime.Now.ToLongTimeString();
            MessageResp <TokenEntity> res = HttpWebHelper.doPost <MessageReq <TokenEntity>, MessageResp <TokenEntity> >(url, accessTokenReq);

            if (res.head.code == "EX_CODE_OPENAPI_0105")//访问令牌过期
            {
                return(GetAccessToken());
            }
            else if (res.head.transType == 4300)
            {
                return(res.body.accessToken);
            }
            else
            {
                throw new Exception(res.head.message);
            }
        }
Ejemplo n.º 22
0
        /// <summary>
        /// Message the specified workspaceId, input and callback.
        /// </summary>
        /// <param name="workspaceID">Workspace identifier.</param>
        /// <param name="input">Input.</param>
        /// <param name="callback">Callback.</param>
        /// <param name="customData">Custom data.</param>
        public bool Message(OnMessage callback, string workspaceID, string input, string customData = default(string))
        {
            if (string.IsNullOrEmpty(workspaceID))
            {
                throw new ArgumentNullException("workspaceId");
            }
            if (string.IsNullOrEmpty(input))
            {
                throw new ArgumentNullException("input");
            }
            if (callback == null)
            {
                throw new ArgumentNullException("callback");
            }

            RESTConnector connector = RESTConnector.GetConnector(SERVICE_ID, SERVICE_MESSAGE);

            if (connector == null)
            {
                return(false);
            }

            string reqJson   = "{{\"input\": {{\"text\": \"{0}\"}}}}";
            string reqString = string.Format(reqJson, input);

            MessageReq req = new MessageReq();

            req.Callback = callback;
            req.Headers["Content-Type"] = "application/json";
            req.Headers["Accept"]       = "application/json";
            req.Parameters["version"]   = Version.VERSION;
            req.Function   = "/" + workspaceID + "/message";
            req.Data       = customData;
            req.Send       = Encoding.UTF8.GetBytes(reqString);
            req.OnResponse = MessageResp;

            return(connector.Send(req));
        }
Ejemplo n.º 23
0
        private void AddNewElementToXmlFile(MessageReq msg, string pathToArchivize)
        {
            try
            {
                XDocument xmlFile = XDocument.Load(pathToArchivize);

                var newMessage =
                    new XElement("Message",
                                 new XAttribute("Recipient", msg.Recipient),
                                 new XAttribute("Sender", msg.Login),
                                 new XAttribute("Date", DateTime.Now),
                                 new XElement("Body", msg.Message)
                                 );

                xmlFile.Element("Messages").Add(newMessage);
                xmlFile.Save(pathToArchivize);
            }
            catch (Exception)
            {
                Console.WriteLine("Błąd w załadowaniu pliku " + pathToArchivize +
                                  " lub dodaniu kolejnej pozycji do pliku XML");
            }
        }
Ejemplo n.º 24
0
        /// <summary>
        /// Message the specified workspaceId, input and callback.
        /// </summary>
        /// <param name="successCallback">The success callback.</param>
        /// <param name="failCallback">The fail callback.</param>
        /// <param name="workspaceID">Workspace identifier.</param>
        /// <param name="input">Input.</param>
        /// <param name="customData">Custom data.</param>
        public bool Message(SuccessCallback <object> successCallback, FailCallback failCallback, string workspaceID, string input, Dictionary <string, object> customData = null)
        {
            //if (string.IsNullOrEmpty(workspaceID))
            //    throw new ArgumentNullException("workspaceId");
            if (successCallback == null)
            {
                throw new ArgumentNullException("successCallback");
            }
            if (failCallback == null)
            {
                throw new ArgumentNullException("failCallback");
            }

            RESTConnector connector = RESTConnector.GetConnector(Credentials, Workspaces);

            if (connector == null)
            {
                return(false);
            }

            string reqJson   = "{{\"input\": {{\"text\": \"{0}\"}}}}";
            string reqString = string.Format(reqJson, input);

            MessageReq req = new MessageReq();

            req.SuccessCallback         = successCallback;
            req.FailCallback            = failCallback;
            req.Headers["Content-Type"] = "application/json";
            req.Headers["Accept"]       = "application/json";
            req.Parameters["version"]   = VersionDate;
            req.Function   = "/" + workspaceID + "/message";
            req.Send       = Encoding.UTF8.GetBytes(reqString);
            req.OnResponse = MessageResp;
            req.CustomData = customData == null ? new Dictionary <string, object>() : customData;

            return(connector.Send(req));
        }
Ejemplo n.º 25
0
        /// <summary>
        /// Message the specified workspaceId, input and callback.
        /// </summary>
        /// <param name="successCallback">The success callback.</param>
        /// <param name="failCallback">The fail callback.</param>
        /// <param name="workspaceID">Workspace identifier.</param>
        /// <param name="messageRequest">Message request object.</param>
        /// <param name="customData">Custom data.</param>
        /// <returns></returns>
        public bool Message(SuccessCallback <object> successCallback, FailCallback failCallback, string workspaceID, MessageRequest messageRequest, Dictionary <string, object> customData = null)
        {
            if (string.IsNullOrEmpty(workspaceID))
            {
                throw new ArgumentNullException("workspaceId");
            }
            if (successCallback == null)
            {
                throw new ArgumentNullException("successCallback");
            }
            if (failCallback == null)
            {
                throw new ArgumentNullException("failCallback");
            }

            RESTConnector connector = RESTConnector.GetConnector(Credentials, Workspaces);

            if (connector == null)
            {
                return(false);
            }

            IDictionary <string, string> requestDict = new Dictionary <string, string>();

            if (messageRequest.context != null)
            {
                requestDict.Add("context", Json.Serialize(messageRequest.context));
            }
            if (messageRequest.input != null)
            {
                requestDict.Add("input", Json.Serialize(messageRequest.input));
            }
            requestDict.Add("alternate_intents", Json.Serialize(messageRequest.alternate_intents));
            if (messageRequest.entities != null)
            {
                requestDict.Add("entities", Json.Serialize(messageRequest.entities));
            }
            if (messageRequest.intents != null)
            {
                requestDict.Add("intents", Json.Serialize(messageRequest.intents));
            }
            if (messageRequest.output != null)
            {
                requestDict.Add("output", Json.Serialize(messageRequest.output));
            }

            int           iterator      = 0;
            StringBuilder stringBuilder = new StringBuilder("{");

            foreach (KeyValuePair <string, string> property in requestDict)
            {
                string delimeter = iterator < requestDict.Count - 1 ? "," : "";
                stringBuilder.Append(string.Format("\"{0}\": {1}{2}", property.Key, property.Value, delimeter));
                iterator++;
            }
            stringBuilder.Append("}");

            string stringToSend = stringBuilder.ToString();

            MessageReq req = new MessageReq();

            req.SuccessCallback         = successCallback;
            req.FailCallback            = failCallback;
            req.Headers["Content-Type"] = "application/json";
            req.Headers["Accept"]       = "application/json";
            req.Parameters["version"]   = VersionDate;
            req.Function   = "/" + workspaceID + "/message";
            req.Send       = Encoding.UTF8.GetBytes(stringToSend);
            req.OnResponse = MessageResp;
            req.CustomData = customData == null ? new Dictionary <string, object>() : customData;
            if (req.CustomData.ContainsKey(Constants.String.CUSTOM_REQUEST_HEADERS))
            {
                foreach (KeyValuePair <string, string> kvp in req.CustomData[Constants.String.CUSTOM_REQUEST_HEADERS] as Dictionary <string, string> )
                {
                    req.Headers.Add(kvp.Key, kvp.Value);
                }
            }

            return(connector.Send(req));
        }
Ejemplo n.º 26
0
        /// <summary>
        /// Message the specified workspaceId, input and callback.
        /// </summary>
        /// <param name="callback">Callback.</param>
        /// <param name="workspaceID">Workspace identifier.</param>
        /// <param name="messageRequest">Message request object.</param>
        /// <param name="customData">Custom data.</param>
        /// <returns></returns>
        public bool Message(OnMessage callback, string workspaceID, MessageRequest messageRequest, string customData = default(string))
        {
            if (string.IsNullOrEmpty(workspaceID))
            {
                throw new ArgumentNullException("workspaceId");
            }
            if (string.IsNullOrEmpty(messageRequest.input["text"] as string))
            {
                throw new ArgumentNullException("messageRequest.input.text");
            }
            if (callback == null)
            {
                throw new ArgumentNullException("callback");
            }

            RESTConnector connector = RESTConnector.GetConnector(Credentials, Workspaces);

            if (connector == null)
            {
                return(false);
            }

            IDictionary <string, string> requestDict = new Dictionary <string, string>();

            if (messageRequest.context != null)
            {
                requestDict.Add("context", Json.Serialize(messageRequest.context));
            }
            if (messageRequest.input != null)
            {
                requestDict.Add("input", Json.Serialize(messageRequest.input));
            }
            requestDict.Add("alternate_intents", Json.Serialize(messageRequest.alternate_intents));
            if (messageRequest.entities != null)
            {
                requestDict.Add("entities", Json.Serialize(messageRequest.entities));
            }
            if (messageRequest.intents != null)
            {
                requestDict.Add("intents", Json.Serialize(messageRequest.intents));
            }
            if (messageRequest.output != null)
            {
                requestDict.Add("output", Json.Serialize(messageRequest.output));
            }

            int           iterator      = 0;
            StringBuilder stringBuilder = new StringBuilder("{");

            foreach (KeyValuePair <string, string> property in requestDict)
            {
                string delimeter = iterator < requestDict.Count - 1 ? "," : "";
                stringBuilder.Append(string.Format("\"{0}\": {1}{2}", property.Key, property.Value, delimeter));
                iterator++;
            }
            stringBuilder.Append("}");

            string stringToSend = stringBuilder.ToString();

            MessageReq req = new MessageReq();

            req.Callback                = callback;
            req.MessageRequest          = messageRequest;
            req.Headers["Content-Type"] = "application/json";
            req.Headers["Accept"]       = "application/json";
            req.Parameters["version"]   = VersionDate;
            req.Function                = "/" + workspaceID + "/message";
            req.Data       = customData;
            req.Send       = Encoding.UTF8.GetBytes(stringToSend);
            req.OnResponse = MessageResp;

            return(connector.Send(req));
        }