public Stream IpccSpeechTemplateList(SpeechTemplate speechtemplate)
        {
            InvokeResult <string> result = new InvokeResult <string> {
                Success = true
            };

            if (!string.IsNullOrEmpty(speechtemplate.RemoteUrl))
            {
                try {
                    HttpAdapter.postSyncAsJSON(speechtemplate.RemoteUrl, new { orgNo = speechtemplate.OrgCode }.ToStringObjectDictionary(), (ret, res) =>
                    {
                        if (speechtemplate.RetType == "json")
                        {
                            result.ret = JsonConvert.DeserializeObject(ret).ToString();
                        }
                        else
                        {
                            result.ret = ret.ToString();
                        }
                    });
                }
                catch (Exception ex) {
                    result.Success      = false;
                    result.ErrorMessage = ex.ToString();
                }
            }

            byte[] resultBytes = Encoding.UTF8.GetBytes(result.ToJson());
            WebOperationContext.Current.OutgoingResponse.ContentType = "application/json; charset=utf-8";
            return(new MemoryStream(resultBytes));
        }
        public Stream GetRemoteDataAsJSONP(string remoteUrl, string callback)
        {
            InvokeResult <string> result = new InvokeResult <string> {
                Success = true
            };

            HttpAdapter.getSyncTo(remoteUrl, (ret, res) =>
            {
                result.ret = JsonConvert.DeserializeObject(ret).ToString();
            });
            byte[] resultBytes = Encoding.UTF8.GetBytes(callback + "(" + result.ToJson() + ")");
            WebOperationContext.Current.OutgoingResponse.ContentType = "application/json; charset=utf-8";
            return(new MemoryStream(resultBytes));
        }
        public Stream QueueMemberList(IpccQueue ipccQueue)
        {
            InvokeResult <string> result = new InvokeResult <string> {
                Success = true
            };

            if (!string.IsNullOrEmpty(ipccQueue.RemoteUrl))
            {
                IList <StringObjectDictionary> queueMembers = new List <StringObjectDictionary>();

                if (ipccQueue.QueueNames != null && ipccQueue.QueueNames.Count > 0)
                {
                    try
                    {
                        foreach (string item in ipccQueue.QueueNames)
                        {
                            HttpAdapter.getSyncTo(ipccQueue.RemoteUrl + item, (ret, res) =>
                            {
                                dynamic agent = JsonConvert.DeserializeObject(ret);
                                if (agent.success == "true" && agent.data != null)
                                {
                                    foreach (var key in agent.data)
                                    {
                                        queueMembers.Add(new { queueName = item, uuid = key.uuid, cid_number = key.cid_number, cid_name = key.cid_name, join_time = key.join_time }.ToStringObjectDictionary());
                                    }
                                }
                            });
                        }

                        if (queueMembers.Count > 0)
                        {
                            result.ret = JsonConvert.SerializeObject(queueMembers);
                        }
                        else
                        {
                            result.ret = "";
                        }
                    }
                    catch (Exception ex)
                    {
                        result.Success      = false;
                        result.ErrorMessage = ex.ToString();
                    }
                }
            }

            byte[] resultBytes = Encoding.UTF8.GetBytes(result.ToJson());
            WebOperationContext.Current.OutgoingResponse.ContentType = "application/json; charset=utf-8";
            return(new MemoryStream(resultBytes));
        }
Esempio n. 4
0
        public Stream GetOpenIdByOAuth2AsJSONP(string code, string callback)
        {
            InvokeResult <string> result = new InvokeResult <string> {
                Success = true
            };
            string accessTokenUrl = string.Format(GlobalManager.TheWeiXinAPIOfV1[GlobalManager.APIGETKey_OAuth2_GetAccessToken], GlobalManager.TheServiceAccount.AppId, GlobalManager.TheServiceAccount.AppSecret, code);

            HttpAdapter.getSyncTo(accessTokenUrl, (ret, res) =>
            {
                result.ret = JsonConvert.DeserializeObject(ret).openid.ToString();
            });
            byte[] resultBytes = Encoding.UTF8.GetBytes(callback + "(" + result.ToJson() + ")");
            WebOperationContext.Current.OutgoingResponse.ContentType = "application/json; charset=utf-8";
            return(new MemoryStream(resultBytes));
        }
Esempio n. 5
0
        public Stream GetWXUserInfoAsJSONP(string openId, string callback)
        {
            InvokeResult <NormalAccount> result = new InvokeResult <NormalAccount> {
                Success = true
            };
            NormalAccount normalAccount = _GetWXUserInfo(openId);

            if (normalAccount != null)
            {
                result.ret = normalAccount;
            }
            byte[] resultBytes = Encoding.UTF8.GetBytes(callback + "(" + result.ToJson() + ")");
            WebOperationContext.Current.OutgoingResponse.ContentType = "application/json; charset=utf-8";
            return(new MemoryStream(resultBytes));
        }
Esempio n. 6
0
        public Stream RetrieveMessageAsJSONP(string openId, string callback)
        {
            InvokeResult <WXReceiveMessage> result = new InvokeResult <WXReceiveMessage> {
                Success = true
            };

            try
            {
                result.ret = _RetrieveMessage(openId);
            }
            catch (Exception ex)
            {
                result.ErrorCode    = 500;
                result.ErrorMessage = ex.Message;
            }
            byte[] resultBytes = Encoding.UTF8.GetBytes(callback + "(" + result.ToJson() + ")");
            WebOperationContext.Current.OutgoingResponse.ContentType = "application/json; charset=utf-8";
            return(new MemoryStream(resultBytes));
        }
        public Stream GetRemoteData(Remote remote)
        {
            InvokeResult <string> result = new InvokeResult <string> {
                Success = true
            };

            if (remote != null && !string.IsNullOrEmpty(remote.RemoteUrl))
            {
                HttpAdapter.getSyncTo(remote.RemoteUrl, (ret, res) =>
                {
                    if (remote.RetType == "json")
                    {
                        result.ret = JsonConvert.DeserializeObject(ret).ToString();
                    }
                    else
                    {
                        result.ret = ret.ToString();
                    }
                });
            }
            byte[] resultBytes = Encoding.UTF8.GetBytes(result.ToJson());
            WebOperationContext.Current.OutgoingResponse.ContentType = "application/json; charset=utf-8";
            return(new MemoryStream(resultBytes));
        }
        public Stream GetConferenceInfo(ConferenceInfo conferenceInfo)
        {
            InvokeResult <string> result = new InvokeResult <string> {
                Success = true
            };

            if (!string.IsNullOrEmpty(conferenceInfo.ConferenceUrl))
            {
                HttpAdapter.getSyncTo(conferenceInfo.ConferenceUrl, (ret, res) =>
                {
                    if (string.IsNullOrEmpty(conferenceInfo.ConferenceMemberUrl))
                    {
                        result.ret = JsonConvert.DeserializeObject(ret).ToString(); //未获得获取会议室成员的URL,直接返回会议室列表
                    }
                    else
                    {
                        List <StringObjectDictionary> conferencelist = new List <StringObjectDictionary>();
                        var conf_data = JsonConvert.DeserializeObject(ret);

                        if ((bool)conf_data.success && conf_data.data != null)
                        {
                            StringObjectDictionary conference;
                            foreach (var item in conf_data.data)
                            {
                                string confname = (string)item.conf_name;
                                if (confname.IndexOf(conferenceInfo.ExtCode) > -1)   //过滤出属于当前区域的会议室
                                {
                                    conference = new StringObjectDictionary();
                                    conference.Add("conf_name", confname);
                                    conference.Add("uuid", item.uuid);
                                    conference.Add("members", item.members);
                                    conference.Add("runtimes", item.runtimes);

                                    string url = conferenceInfo.ConferenceMemberUrl + "&confname=" + confname;
                                    HttpAdapter.getSyncTo(url, (ret2, res2) =>
                                    {
                                        var conf_data2 = JsonConvert.DeserializeObject(ret2);
                                        if (conf_data2.success == "true" && conf_data2.data != null)
                                        {
                                            List <StringObjectDictionary> sodlist = new List <StringObjectDictionary>();
                                            StringObjectDictionary conferenceMember;
                                            foreach (var o in conf_data2.data)
                                            {
                                                conferenceMember = new StringObjectDictionary();
                                                conferenceMember.Add("id", o.id);
                                                conferenceMember.Add("uuid", o.uuid);
                                                conferenceMember.Add("caller_name", o.caller_name);
                                                conferenceMember.Add("caller_number", o.caller_number);
                                                conferenceMember.Add("join_time", o.join_time);
                                                conferenceMember.Add("last_talking", o.last_talking);
                                                sodlist.Add(conferenceMember);
                                            }
                                            conference.Add("member_data", sodlist.ToArray());
                                        }
                                    });

                                    conferencelist.Add(conference);
                                }
                            }

                            if (conferencelist.Count > 0)
                            {
                                result.ret = JsonConvert.SerializeObject(new { data = conferencelist }.ToStringObjectDictionary());
                            }
                            else
                            {
                                result.ret = "";
                            }
                        }
                    }
                });
            }
            byte[] resultBytes = Encoding.UTF8.GetBytes(result.ToJson());
            WebOperationContext.Current.OutgoingResponse.ContentType = "application/json; charset=utf-8";
            return(new MemoryStream(resultBytes));
        }
        public Stream QueueAgentList(IpccQueue ipccQueue)
        {
            InvokeResult <string> result = new InvokeResult <string> {
                Success = true
            };

            if (!string.IsNullOrEmpty(ipccQueue.RemoteUrl))
            {
                IList <StringObjectDictionary> queueAgents = new List <StringObjectDictionary>();

                if (ipccQueue.QueueNames != null && ipccQueue.QueueNames.Count > 0)
                {
                    try {
                        string agent_no = "";
                        foreach (string item in ipccQueue.QueueNames)
                        {
                            HttpAdapter.getSyncTo(ipccQueue.RemoteUrl + item, (ret, res) =>
                            {
                                dynamic agent = JsonConvert.DeserializeObject(ret);
                                if (agent.success == "true" && agent.data != null)
                                {
                                    StringObjectDictionary sod;
                                    foreach (var key in agent.data)
                                    {
                                        agent_no = (string)key.agent_no;

                                        sod = queueAgents.FirstOrDefault(s => s["agent_no"].Equals(agent_no));
                                        if (sod == null)
                                        {
                                            sod = new StringObjectDictionary();
                                            sod.Add("agent_no", agent_no);
                                            sod.Add("uuid", key.uuid);
                                            sod.Add("status", key.status);
                                            sod.Add("cause", key.cause);
                                            sod.Add("state", key.state);
                                            sod.Add("last_offered_call", key.last_offered_call);
                                            sod.Add("last_status_change", key.last_status_change);
                                            sod.Add("no_answer_count", key.no_answer_count);
                                            sod.Add("answer_count", key.answer_count);
                                            sod.Add("ext", (item.IndexOf("999") > -1 ? 1 : 0));
                                            sod.Add("queueName", new List <string>()
                                            {
                                                item
                                            });
                                            queueAgents.Add(sod);
                                        }
                                        else
                                        {
                                            List <string> queueNames = (List <string>)sod.First(s => s.Key == "queueName").Value;
                                            if (queueNames != null)
                                            {
                                                queueNames.Add(item);
                                            }
                                        }
                                    }
                                }
                            });
                        }

                        if (queueAgents.Count > 0)
                        {
                            result.ret = JsonConvert.SerializeObject(queueAgents);
                        }
                        else
                        {
                            result.ret = "";
                        }
                    }
                    catch (Exception ex) {
                        result.Success      = false;
                        result.ErrorMessage = ex.ToString();
                    }
                }
            }

            byte[] resultBytes = Encoding.UTF8.GetBytes(result.ToJson());
            WebOperationContext.Current.OutgoingResponse.ContentType = "application/json; charset=utf-8";
            return(new MemoryStream(resultBytes));
        }