예제 #1
0
 private static string GetTokenType(System.IdentityModel.Tokens.GenericXmlSecurityToken token)
 {
     using (System.Xml.XmlReader xmlReader = new System.Xml.XmlNodeReader(token.TokenXml))
     {
         xmlReader.MoveToContent();
         if (xmlReader.IsStartElement("BinarySecurityToken", "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"))
         {
             return(xmlReader.GetAttribute("ValueType", null));
         }
     }
     return(string.Empty);
 }
예제 #2
0
        private static OAuth2AccessTokenRequest CreateAccessTokenRequestWithAssertion(System.IdentityModel.Tokens.GenericXmlSecurityToken token, string resource)
        {
            Utility.VerifyNonNullArgument("token", token);
            OAuth2AccessTokenRequest    oAuth2AccessTokenRequest    = new OAuth2AccessTokenRequest();
            JsonWebSecurityTokenHandler jsonWebSecurityTokenHandler = new JsonWebSecurityTokenHandler();

            System.Xml.XmlReader reader = new System.Xml.XmlNodeReader(token.TokenXml);
            string text;
            string jsonTokenString = jsonWebSecurityTokenHandler.GetJsonTokenString(reader, out text);

            oAuth2AccessTokenRequest.GrantType = OAuth2MessageFactory.GetTokenType(token);
            oAuth2AccessTokenRequest.Assertion = jsonTokenString;
            oAuth2AccessTokenRequest.Resource  = resource;
            return(oAuth2AccessTokenRequest);
        }
예제 #3
0
        /// <summary>
        /// 將字串反序列化為 RtdCommInfo
        /// </summary>
        /// <param name="s"></param>
        /// <returns></returns>
        public RtdCommInfo SToMyInfo(string s)
        {
            try
            {
                // 如果傳入的 s 字串不是有效的 XML 格式的話,會發生 Exception,記得要做好 Error Handling
                System.Xml.XmlDocument xdoc = new System.Xml.XmlDocument();
                xdoc.LoadXml(s);
                System.Xml.XmlNodeReader reader            = new System.Xml.XmlNodeReader(xdoc.DocumentElement);
                System.Xml.Serialization.XmlSerializer ser = new System.Xml.Serialization.XmlSerializer(typeof(RtdCommInfo));
                object obj = ser.Deserialize(reader);

                return(obj as RtdCommInfo);
            }
            catch (Exception ex)
            {
                throw new Exception("無法反序列化:" + ex.Message);
            }
        }
예제 #4
0
파일: Utils.cs 프로젝트: nolith/tasque
        internal static object Deserialize(System.Xml.XmlNode node, Type type)
        {
            XmlSerializer serializer = GetSerializer(type);

            try
            {
                // Deserialise the web response into the Rtm response object
                System.Xml.XmlNodeReader reader = new System.Xml.XmlNodeReader(node);
                object o = serializer.Deserialize(reader);
                reader.Close();

                return(o);
            }
            catch (InvalidOperationException ex)
            {
                // Serialization error occurred!
                throw new ResponseXmlException("Invalid response received from Rtm.", ex);
            }
        }
예제 #5
0
        public ContentSlide(int SlideSerial)
        {
            _SlideSerial = SlideSerial;
            using (SqlConnection cn = new SqlConnection(ConfigurationManager.ConnectionStrings["ApplicationServices"].ConnectionString)) {
                string SQL = "SELECT [ModuleID], [SlideTitle], [SlideContents], [SlideImage], [SlideLink], [SortOrder] " +
                             "FROM [cms_Slideshow] " +
                             "WHERE SlideSerial = @SlideSerial";
                using (SqlCommand cmd = new SqlCommand(SQL, cn)) {
                    cmd.CommandType = CommandType.Text;
                    cmd.Parameters.Add("SlideSerial", SqlDbType.Int).Value = SlideSerial;

                    cmd.Connection.Open();
                    SqlDataReader dr = cmd.ExecuteReader(CommandBehavior.SingleRow);
                    if (dr.HasRows)
                    {
                        dr.Read();
                        _ModuleID      = dr.GetGuid(0);
                        _SlideTitle    = dr[1].ToString();
                        _SlideContents = dr[2].ToString();
                        _SlideImage    = dr[3].ToString();
                        _SlideLink     = dr[4].ToString();
                        _SortOrder     = dr.GetInt32(5);
                    }
                    cmd.Connection.Close();
                }

                if (!string.IsNullOrEmpty(_SlideImage))
                {
                    ImageSaveModel         imageSaveModel = new ImageSaveModel();
                    System.Xml.XmlDocument doc            = new System.Xml.XmlDocument();
                    doc.LoadXml(_SlideImage);
                    System.Xml.XmlNodeReader reader            = new System.Xml.XmlNodeReader(doc.DocumentElement);
                    System.Xml.Serialization.XmlSerializer ser = new System.Xml.Serialization.XmlSerializer(imageSaveModel.GetType());
                    imageSaveModel = (ImageSaveModel)ser.Deserialize(reader);

                    _SlideImageFile = imageSaveModel.Src;
                    _DimHeight      = Convert.ToInt32(imageSaveModel.Height);
                    _DimWidth       = Convert.ToInt32(imageSaveModel.Width);
                }
            }
        }
예제 #6
0
        private bool ParseCallbackSettingsXML()
        {
            Trace.TraceInformation("Enter.");

            try
            {
                if (xmlDoc == null)
                {
                    Trace.TraceWarning("xmlDoc is null.");
                    return(false);
                }

                System.Xml.XmlNodeReader reader = new System.Xml.XmlNodeReader(xmlDoc);

                List <CallbackContactServiceQueue> _TempQueues = new List <CallbackContactServiceQueue>();

                CallbackContactServiceQueue _cbCSQ = null;
                CallbackContactServiceQueueSettingsProfile _profile = null;

                CallbackBackupCSQ       _bckCSQ = null;
                CallbackAlgorithmFilter _filter = null;

                bool bAcceptCallbacksTimeframeElementEnded = true;
                bool bCallbackProcessingTimeframeEnded     = true;

                bool bCallbackReentryAlgorithmElementBegan = false;
                bool bCallbackOfferedAlgorithmElementBegan = false;

                while (reader.Read())
                {
                    switch (reader.NodeType)
                    {
                    case System.Xml.XmlNodeType.Element:

                        if (reader.Name.Equals("csq"))
                        {
                            _cbCSQ = new CallbackContactServiceQueue();

                            _cbCSQ.Name = reader.GetAttribute("name");

                            bCallbackReentryAlgorithmElementBegan = false;
                            bCallbackOfferedAlgorithmElementBegan = false;
                        }

                        if (reader.Name.Equals("CallbackEnabled"))
                        {
                            try
                            {
                                _cbCSQ.CallbackEnabled = bool.Parse(reader.ReadString());
                            }
                            catch
                            {
                                _cbCSQ.CallbackEnabled = false;
                            }
                        }

                        if (reader.Name.Equals("CallerRecording"))
                        {
                            if (_profile == null)
                            {
                                _profile = new CallbackContactServiceQueueSettingsProfile();
                            }

                            try
                            {
                                _profile.CallerRecording = bool.Parse(reader.ReadString());
                            }
                            catch
                            {
                                _profile.CallerRecording = false;
                            }
                        }

                        if (reader.Name.Equals("RetentionPeriod"))
                        {
                            if (_profile == null)
                            {
                                _profile = new CallbackContactServiceQueueSettingsProfile();
                            }

                            try
                            {
                                _profile.RetentionPeriod = int.Parse(reader.ReadString());
                            }
                            catch
                            {
                                _profile.RetentionPeriod = 7;
                            }
                        }

                        if (reader.Name.Equals("AppServerURLPrefix"))
                        {
                            if (_profile == null)
                            {
                                _profile = new CallbackContactServiceQueueSettingsProfile();
                            }

                            _profile.AppServerURLPrefix = reader.ReadString();
                        }

                        if (reader.Name.Equals("EmailAlerts"))
                        {
                            if (_profile == null)
                            {
                                _profile = new CallbackContactServiceQueueSettingsProfile();
                            }

                            try
                            {
                                _profile.EmailAlerts = bool.Parse(reader.ReadString());
                            }
                            catch
                            {
                                _profile.EmailAlerts = false;
                            }
                        }

                        if (reader.Name.Equals("AdminEmail"))
                        {
                            if (_profile == null)
                            {
                                _profile = new CallbackContactServiceQueueSettingsProfile();
                            }

                            _profile.AdminEmail = reader.ReadString();
                        }

                        if (reader.Name.Equals("CallerIDVerify"))
                        {
                            if (_profile == null)
                            {
                                _profile = new CallbackContactServiceQueueSettingsProfile();
                            }

                            try
                            {
                                _profile.CallerIDVerify = bool.Parse(reader.ReadString());
                            }
                            catch
                            {
                                _profile.CallerIDVerify = false;
                            }
                        }

                        if (reader.Name.Equals("AbandonCallback"))
                        {
                            if (_profile == null)
                            {
                                _profile = new CallbackContactServiceQueueSettingsProfile();
                            }

                            try
                            {
                                _profile.AbandonCallback = bool.Parse(reader.ReadString());
                            }
                            catch
                            {
                                _profile.AbandonCallback = false;
                            }
                        }

                        if (reader.Name.Equals("AbandonCBMinQTime"))
                        {
                            if (_profile == null)
                            {
                                _profile = new CallbackContactServiceQueueSettingsProfile();
                            }

                            try
                            {
                                _profile.AbandonCBMinQTime = int.Parse(reader.ReadString());
                            }
                            catch
                            {
                                _profile.AbandonCBMinQTime = 0;
                            }
                        }

                        if (reader.Name.Equals("AbandonCBMinInterCallTime"))
                        {
                            if (_profile == null)
                            {
                                _profile = new CallbackContactServiceQueueSettingsProfile();
                            }

                            try
                            {
                                _profile.AbandonCBMinInterCallTime = int.Parse(reader.ReadString());
                            }
                            catch
                            {
                                _profile.AbandonCBMinInterCallTime = 0;
                            }
                        }

                        if (reader.Name.Equals("CBQueue"))
                        {
                            if (_profile == null)
                            {
                                _profile = new CallbackContactServiceQueueSettingsProfile();
                            }

                            _bckCSQ = new CallbackBackupCSQ();

                            _bckCSQ.Name = reader.GetAttribute("csq");

                            try
                            {
                                _bckCSQ.OverflowTime = int.Parse(reader.GetAttribute("overflowtime"));
                            }
                            catch
                            {
                                _bckCSQ.OverflowTime = 0;
                            }

                            _profile.BackupCSQs.Add(_bckCSQ);

                            _bckCSQ = null;
                        }

                        if (reader.Name.Equals("AcceptCallbacksTimeframe"))
                        {
                            if (_profile == null)
                            {
                                _profile = new CallbackContactServiceQueueSettingsProfile();
                            }

                            bAcceptCallbacksTimeframeElementEnded = false;
                        }

                        if (reader.Name.Equals("Begin"))
                        {
                            if (!bAcceptCallbacksTimeframeElementEnded)
                            {
                                _profile.AcceptCallbacksTimeframeBegin = reader.ReadString();
                            }

                            if (!bCallbackProcessingTimeframeEnded)
                            {
                                _profile.CallbackProcessingTimeframeBegin = reader.ReadString();
                            }
                        }

                        if (reader.Name.Equals("End"))
                        {
                            if (!bAcceptCallbacksTimeframeElementEnded)
                            {
                                _profile.AcceptCallbacksTimeframeEnd = reader.ReadString();
                            }

                            if (!bCallbackProcessingTimeframeEnded)
                            {
                                _profile.CallbackProcessingTimeframeEnd = reader.ReadString();
                            }
                        }

                        if (reader.Name.Equals("CallbackOfferedAlgorithm"))
                        {
                            bCallbackOfferedAlgorithmElementBegan = true;
                        }

                        if (reader.Name.Equals("CallbackReentryAlgorithm"))
                        {
                            bCallbackReentryAlgorithmElementBegan = true;
                        }

                        if (reader.Name.Equals("TotalInQueue") ||
                            reader.Name.Equals("CSQAgentsReady") ||
                            reader.Name.Equals("CSQCallsWaiting") ||
                            reader.Name.Equals("AgentsLoggedIn") ||
                            reader.Name.Equals("CallsWaiting") ||
                            reader.Name.Equals("LongestQueueTime") ||
                            reader.Name.Equals("CallbackRequests"))
                        {
                            if (_profile == null)
                            {
                                _profile = new CallbackContactServiceQueueSettingsProfile();
                            }

                            _filter = new CallbackAlgorithmFilter();

                            _filter.Name = reader.Name;

                            try
                            {
                                _filter.Enabled = bool.Parse(reader.GetAttribute("Enabled"));
                            }
                            catch
                            {
                                _filter.Enabled = false;
                            }

                            _filter.Operation = reader.GetAttribute("Operation");

                            try
                            {
                                _filter.Value = int.Parse(reader.GetAttribute("Value"));
                            }
                            catch
                            {
                                _filter.Value = 0;
                            }

                            if (bCallbackOfferedAlgorithmElementBegan)
                            {
                                _profile.OfferedAlgorithmFilters.Add(_filter);
                            }

                            if (bCallbackReentryAlgorithmElementBegan)
                            {
                                _profile.ReentryAlgorithmFilters.Add(_filter);
                            }

                            _filter = null;
                        }

                        if (reader.Name.Equals("CallbackProcessingTimeframe"))
                        {
                            if (_profile == null)
                            {
                                _profile = new CallbackContactServiceQueueSettingsProfile();
                            }

                            bCallbackProcessingTimeframeEnded = false;
                        }

                        if (reader.Name.Equals("EndOfDayPurgeCallbackRequests"))
                        {
                            if (_profile == null)
                            {
                                _profile = new CallbackContactServiceQueueSettingsProfile();
                            }

                            try
                            {
                                _profile.EndOfDayPurgeCallbackRequests = bool.Parse(reader.ReadString());
                            }
                            catch
                            {
                                _profile.EndOfDayPurgeCallbackRequests = false;
                            }
                        }

                        break;

                    case System.Xml.XmlNodeType.EndElement:

                        if (reader.Name.Equals("csq"))
                        {
                            if (_cbCSQ != null)
                            {
                                _cbCSQ.Profile = _profile;
                                _TempQueues.Add(_cbCSQ);
                            }
                            else
                            {
                                Trace.TraceWarning("CSQ was not added to list because _cbCSQ is null.");
                            }

                            _profile = null;
                            _cbCSQ   = null;
                        }

                        if (reader.Name.Equals("CallbackReentryAlgorithm"))
                        {
                            bCallbackReentryAlgorithmElementBegan = false;
                        }

                        if (reader.Name.Equals("AcceptCallbacksTimeframe"))
                        {
                            bAcceptCallbacksTimeframeElementEnded = true;
                        }

                        if (reader.Name.Equals("CallbackOfferedAlgorithm"))
                        {
                            bCallbackOfferedAlgorithmElementBegan = false;
                        }

                        if (reader.Name.Equals("CallbackProcessingTimeframe"))
                        {
                            bCallbackProcessingTimeframeEnded = true;
                        }

                        break;
                    } //switch (reader.NodeType)
                }     //while (reader.Read())

                reader.Close();
                reader = null;

                xmlDoc = null;

                _Queues = _TempQueues;

                _TempQueues = null;
                _profile    = null;
                _cbCSQ      = null;

                return(true);
            }
            catch (Exception ex)
            {
                Trace.TraceError("Exception:" + ex.Message + Environment.NewLine + "StackTrace:" + ex.StackTrace);
                xmlDoc = null;
                return(false);
            }
        }
예제 #7
0
        private void Initialize()
        {
            if (_ContentID == Guid.Empty)
            {
                using (SqlConnection cn = new SqlConnection(ConfigurationManager.ConnectionStrings["ApplicationServices"].ConnectionString)) {
                    string SQL = "SELECT ContentID " +
                                 "FROM [cms_Content] " +
                                 "WHERE ModuleID = @ModuleID " +
                                 "AND IsDraft = 0 " +
                                 "AND UpdateDate IS NULL";
                    using (SqlCommand cmd = new SqlCommand(SQL, cn)) {
                        cmd.CommandType = CommandType.Text;
                        cmd.Parameters.Add("ModuleID", SqlDbType.UniqueIdentifier).Value = ModuleID;

                        cmd.Connection.Open();
                        SqlDataReader dr = cmd.ExecuteReader(CommandBehavior.SingleRow);
                        if (dr.HasRows)
                        {
                            dr.Read();
                            _ContentID = dr.GetGuid(0);
                        }
                        cmd.Connection.Close();
                    }
                }
            }

            if (_ContentID == Guid.Empty)
            {
                //still not found - at least get the containing page's information
                using (SqlConnection cn = new SqlConnection(ConfigurationManager.ConnectionStrings["ApplicationServices"].ConnectionString)) {
                    string SQL = "SELECT p.VirtualPath, p.PageID, m.ModuleName, mt.ModuleTypeName, ps.PageSectionName, p.Locale " +
                                 "	FROM cms_Module m JOIN cms_Page p ON m.PageID = p.PageID "+
                                 "	JOIN cms_ModuleType mt ON m.ModuleTypeID = mt.ModuleTypeID "+
                                 "	JOIN cms_PageSection ps ON m.PageSectionID = ps.PageSectionID "+
                                 "	WHERE m.ModuleID = @ModuleID";
                    using (SqlCommand cmd = new SqlCommand(SQL, cn)) {
                        cmd.CommandType = CommandType.Text;
                        cmd.Parameters.Add("ModuleID", SqlDbType.UniqueIdentifier).Value = ModuleID;

                        cmd.Connection.Open();
                        SqlDataReader dr = cmd.ExecuteReader(CommandBehavior.SingleRow);
                        if (dr.HasRows)
                        {
                            dr.Read();
                            _Locale          = dr[5].ToString();
                            _ModuleName      = dr[2].ToString();
                            _ModuleTypeName  = dr[3].ToString();
                            _PageID          = dr.GetGuid(1);
                            _PageSectionName = dr[4].ToString();
                            _PageURL         = dr[0].ToString();
                        }
                        cmd.Connection.Close();
                    }
                }
            }
            else
            {
                using (SqlConnection cn = new SqlConnection(ConfigurationManager.ConnectionStrings["ApplicationServices"].ConnectionString)) {
                    string SQL = "SELECT c.ModuleID, c.Contents, c.IsDraft, p.VirtualPath, p.PageID, " +
                                 "	m.ModuleName, p.Locale "+
                                 "	FROM [cms_Content] c JOIN cms_Module m ON c.ModuleID = m.ModuleID "+
                                 "	JOIN cms_Page p ON m.PageID = p.PageID "+
                                 "	WHERE ContentID = @ContentID";
                    using (SqlCommand cmd = new SqlCommand(SQL, cn)) {
                        cmd.CommandType = CommandType.Text;
                        cmd.Parameters.Add("ContentID", SqlDbType.UniqueIdentifier).Value = _ContentID;

                        cmd.Connection.Open();
                        SqlDataReader dr = cmd.ExecuteReader(CommandBehavior.SingleRow);
                        if (dr.HasRows)
                        {
                            dr.Read();
                            _Contents        = dr[1].ToString();
                            _Locale          = dr[6].ToString();
                            _ModuleID        = dr.GetGuid(0);
                            _ModuleName      = dr[5].ToString();
                            _ModuleTypeName  = "";
                            _PageID          = dr.GetGuid(4);
                            _PageSectionName = "";
                            _PageTitle       = "";
                            _PageURL         = dr[3].ToString();
                        }
                        else
                        {
                            _ContentID = Guid.Empty;
                        }
                        cmd.Connection.Close();
                    }
                    if (!string.IsNullOrEmpty(_Contents))
                    {
                        try {
                            VideoSaveModel         vidSaveModel = new VideoSaveModel();
                            System.Xml.XmlDocument doc          = new System.Xml.XmlDocument();
                            doc.LoadXml(_Contents);
                            System.Xml.XmlNodeReader reader            = new System.Xml.XmlNodeReader(doc.DocumentElement);
                            System.Xml.Serialization.XmlSerializer ser = new System.Xml.Serialization.XmlSerializer(vidSaveModel.GetType());
                            vidSaveModel = (VideoSaveModel)ser.Deserialize(reader);

                            _VideoURL    = vidSaveModel.URL;
                            _VideoSource = vidSaveModel.Src;
                            _Height      = vidSaveModel.Height;
                            _Width       = vidSaveModel.Width;
                        } catch {
                        }
                    }
                }
            }
        }
예제 #8
0
		internal static object Deserialize(System.Xml.XmlNode node, Type type)
		{
			XmlSerializer serializer = GetSerializer(type);
			try
			{
				// Deserialise the web response into the Flickr response object
				System.Xml.XmlNodeReader reader = new System.Xml.XmlNodeReader(node);
				object o = serializer.Deserialize(reader);
				reader.Close();

				return o;
			}
			catch(InvalidOperationException ex)
			{
				// Serialization error occurred!
				throw new ResponseXmlException("Invalid response received from Flickr.", ex);
			}
		}
예제 #9
0
        private bool ParseResponseIntoArraylist()
        {
            try
            {
                int iCode = 0;

                System.Xml.XmlDocument xmlDoc = null;

                xmlDoc = new System.Xml.XmlDocument();

                xmlDoc.LoadXml(sResponse);

                System.Xml.XmlNode nodCode = xmlDoc.SelectSingleNode("//response/code");

                if (nodCode != null)
                {
                    try
                    {
                        iCode = int.Parse(nodCode.InnerText);
                    }
                    catch (Exception ex)
                    {
                        Trace.TraceWarning("Exception casting Code to integer; Code defaulted to -1.");
                        iCode = -1;
                    }
                }
                else
                {
                    Trace.TraceWarning("//response/code element not found. Code defaulted to -1");
                    iCode = -1;
                }

                if (iCode == -1)
                {
                    Trace.TraceWarning("//response/code element = -1");
                    nodCode = null;
                    xmlDoc  = null;
                    return(false);
                }

                nodCode = null;

                System.Xml.XmlNodeReader reader = new System.Xml.XmlNodeReader(xmlDoc);

                CSQInfo.Clear();

                ContactServiceQueueInformation _con = null;

                while (reader.Read())
                {
                    switch (reader.NodeType)
                    {
                    case System.Xml.XmlNodeType.Element:

                        if (reader.Name.Equals("csq"))
                        {
                            _con = new ContactServiceQueueInformation();
                        }

                        if (reader.Name.Equals("id"))
                        {
                            _con.ID = reader.ReadString();
                        }

                        if (reader.Name.Equals("name"))
                        {
                            _con.Name = reader.ReadString();
                        }

                        if (reader.Name.Equals("agentsloggedin"))
                        {
                            _con.AgentsLoggedIn = int.Parse(reader.ReadString());
                        }

                        if (reader.Name.Equals("agentsnotready"))
                        {
                            _con.AgentsNotReady = int.Parse(reader.ReadString());
                        }

                        if (reader.Name.Equals("agentsready"))
                        {
                            _con.AgentsReady = int.Parse(reader.ReadString());
                        }

                        if (reader.Name.Equals("agentstalking"))
                        {
                            _con.AgentsTalking = int.Parse(reader.ReadString());
                        }

                        if (reader.Name.Equals("agentswork"))
                        {
                            _con.AgentsWork = int.Parse(reader.ReadString());
                        }

                        if (reader.Name.Equals("contactswaiting"))
                        {
                            _con.ContactsWaiting = int.Parse(reader.ReadString());
                        }

                        if (reader.Name.Equals("longestwaitingcontact"))
                        {
                            _con.LongestWaitingContact = int.Parse(reader.ReadString());
                        }

                        break;

                    case System.Xml.XmlNodeType.EndElement:

                        if (reader.Name.Equals("csq"))
                        {
                            CSQInfo.Add(_con);
                            _con = null;
                        }

                        break;
                    } //switch (reader.NodeType)
                }     //while (reader.Read())

                reader = null;
                xmlDoc = null;

                return(true);
            }
            catch (Exception ex)
            {
                Trace.TraceWarning("Exception: " + ex.Message + Environment.NewLine + "Stacktrace: " + ex.StackTrace);
                return(false);
            }
        }
예제 #10
0
        private void btnOK_Click(object sender, EventArgs e)
        {
            if (!string.IsNullOrEmpty(txtURL.Text))
            {
                txtResponse.Text = "";
                try
                {
                    System.Net.HttpWebRequest req = (System.Net.HttpWebRequest)System.Net.WebRequest.Create(txtURL.Text);
                    req.Method                   = metodoRequest.Text;
                    req.PreAuthenticate          = true;
                    req.ProtocolVersion          = System.Net.HttpVersion.Version10;
                    req.Headers["Authorization"] = "Basic " + Convert.ToBase64String(Encoding.Default.GetBytes(txtLogin.Text + ":" + txtSenha.Text));
                    req.Credentials              = new NetworkCredential("username", "password");

                    var type          = req.GetType();
                    var currentMethod = type.GetProperty("CurrentMethod", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance).GetValue(req);

                    var methodType = currentMethod.GetType();
                    methodType.GetField("ContentBodyNotAllowed", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance).SetValue(currentMethod, false);

                    System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls12;

                    if (!string.IsNullOrEmpty(txtJson.Text))
                    {
                        byte[] byteArray = System.Text.Encoding.UTF8.GetBytes(txtJson.Text);
                        req.ContentType   = "application/json; charset=utf-8";
                        req.ContentLength = byteArray.Length;
                        var dataStream = req.GetRequestStream();
                        dataStream.Write(byteArray, 0, byteArray.Length);
                        dataStream.Close();
                    }
                    else
                    {
                        //throw new Exception("Erro: JSON não informado.");
                    }

                    System.Net.HttpWebResponse resp          = req.GetResponse() as System.Net.HttpWebResponse;
                    System.IO.Stream           receiveStream = resp.GetResponseStream();
                    System.Text.Encoding       encode        = Encoding.GetEncoding("utf-8");
                    // Pipes the stream to a higher level stream reader with the required encoding format.
                    System.IO.StreamReader readStream = new System.IO.StreamReader(receiveStream, encode);
                    Char[] read = new Char[256];
                    // Reads 256 characters at a time.
                    int count = readStream.Read(read, 0, 256);
                    while (count > 0)
                    {
                        // Dumps the 256 characters on a string and displays the string to the console.
                        String str = new String(read, 0, count);
                        txtResponse.Text += (str);
                        count             = readStream.Read(read, 0, 256);
                    }

                    System.Xml.XmlDocument xDoc = new System.Xml.XmlDocument();

                    xDoc.LoadXml(txtResponse.Text);

                    System.Xml.XmlReader xmlReader = new System.Xml.XmlNodeReader(xDoc);

                    DataSet dsXml = new DataSet();

                    dsXml.ReadXml(xmlReader);

                    foreach (DataTable dt in dsXml.Tables)
                    {
                        if (dt.TableName == "value")
                        {
                            gridXMLDataTable.DataSource = dt;
                        }
                    }

                    // Releases the resources of the response.
                    resp.Close();
                    // Releases the resources of the Stream.
                    readStream.Close();
                }
                catch (Exception ex)
                {
                    txtResponse.Text = "Erro ao consumir a API " + txtURL.Text + ". Exceção: " + ex.Message + ". Trace: " + ex.InnerException;
                }
            }
        }
        public ApplicationTypes.ApplicationSettingsReturn Load()
        {
            Trace.TraceInformation("Enter.");

            try
            {
                if (!System.IO.File.Exists(APPLICATIONSETTINGSFILEPATH + "\\" + Constants.APPLICATIONSETTINGSFILENAME))
                {
                    Trace.TraceWarning(APPLICATIONSETTINGSFILEPATH + "\\" + Constants.APPLICATIONSETTINGSFILENAME + " was not found.");
                    _LastOperationReturn = ApplicationTypes.ApplicationSettingsReturn.FILE_NOT_FOUND;
                    return(_LastOperationReturn);
                }
            }
            catch (Exception ex)
            {
                Trace.TraceError("Exception:" + ex.Message + Environment.NewLine + "StackTrace:" + ex.StackTrace);
                _LastOperationReturn = ApplicationTypes.ApplicationSettingsReturn.ERROR;
                return(_LastOperationReturn);
            }

            try
            {
                _encDec = new com.workflowconcepts.utilities.AESSymmetricEncryption(Constants.ENCRYPTION_PASSWORD, Constants.ENCRYPTION_SALT);

                System.Xml.XmlDocument   xmlDoc = null;
                System.Xml.XmlNodeReader reader = null;

                xmlDoc = new System.Xml.XmlDocument();

                xmlDoc.Load(APPLICATIONSETTINGSFILEPATH + "\\" + Constants.APPLICATIONSETTINGSFILENAME);

                reader = new System.Xml.XmlNodeReader(xmlDoc);

                while (reader.Read())
                {
                    switch (reader.NodeType)
                    {
                    case System.Xml.XmlNodeType.Element:

                        if (reader.Name.Equals("WebServer"))
                        {
                            _WebServerIP                 = reader.GetAttribute("IP");
                            _WebServerPort               = reader.GetAttribute("Port");
                            _WebServerPrefix             = reader.GetAttribute("Prefix");
                            _WebServerDataCollectionPort = reader.GetAttribute("DataCollectionPort");
                        }

                        if (reader.Name.Equals("EmailNotifications"))
                        {
                            _EmailFrom       = reader.GetAttribute("EmailFrom");
                            _EmailTo         = reader.GetAttribute("EmailTo");
                            _EmailSMTPServer = reader.GetAttribute("SMTPServer");
                            _EmailSMTPPort   = reader.GetAttribute("SMTPPort");

                            try
                            {
                                _EmailSMTPUserName = _encDec.Decrypt(reader.GetAttribute("SMTPUser"));
                            }
                            catch
                            {
                                _EmailSMTPUserName = string.Empty;
                            }

                            try
                            {
                                _EmailSMTPPassword = _encDec.Decrypt(reader.GetAttribute("SMTPPassword"));
                            }
                            catch
                            {
                                _EmailSMTPPassword = string.Empty;
                            }

                            try
                            {
                                _EmailOnFailure = Boolean.Parse(reader.GetAttribute("OnFailure"));
                            }
                            catch
                            {
                                _EmailOnFailure = true;
                            }

                            try
                            {
                                _EmailOnSuccess = Boolean.Parse(reader.GetAttribute("OnSuccess"));
                            }
                            catch
                            {
                                _EmailOnSuccess = false;
                            }
                        }

                        if (reader.Name.Equals("UCCX"))
                        {
                            _UCCXNode1IPAddress         = reader.GetAttribute("Node1IPAddress");
                            _UCCXNode2IPAddress         = reader.GetAttribute("Node2IPAddress");
                            _UCCXApplicationPort        = reader.GetAttribute("ApplicationPort");
                            _UCCXRealtimeDataPort       = reader.GetAttribute("RealtimeDataPort");
                            _UCCXAuthorizationPrefix    = reader.GetAttribute("AuthorizationPrefix");
                            _UCCXCallbackPrefix         = reader.GetAttribute("CallbackPrefix");
                            _UCCXNumberOfIVRPorts       = reader.GetAttribute("NumberOfIVRPorts");
                            _UCCXMaxIVRPortUsagePercent = reader.GetAttribute("MaxIVRPortUsagePercent");

                            try
                            {
                                int iUCCXMaxLicenseUsagePercent = int.Parse(_UCCXMaxIVRPortUsagePercent);

                                if (iUCCXMaxLicenseUsagePercent < 0)
                                {
                                    _UCCXMaxIVRPortUsagePercent = "0";
                                }

                                if (iUCCXMaxLicenseUsagePercent >= 100)
                                {
                                    _UCCXMaxIVRPortUsagePercent = "99";
                                }
                            }
                            catch
                            {
                                _UCCXMaxIVRPortUsagePercent = "0";
                            }

                            try
                            {
                                int iUccxNumberOfLicenses = int.Parse(_UCCXNumberOfIVRPorts);

                                if (iUccxNumberOfLicenses < 0)
                                {
                                    _UCCXNumberOfIVRPorts = "0";
                                }
                            }
                            catch
                            {
                                _UCCXNumberOfIVRPorts = "0";
                            }

                            try
                            {
                                _UCCXAdminUser          = _encDec.Decrypt(reader.GetAttribute("AdminUser"));
                                _EncryptedUCCXAdminUser = reader.GetAttribute("AdminUser");
                            }
                            catch
                            {
                                _UCCXAdminUser = String.Empty;
                            }

                            try
                            {
                                _UCCXAdminPassword          = _encDec.Decrypt(reader.GetAttribute("AdminPassword"));
                                _EncryptedUCCXAdminPassword = reader.GetAttribute("AdminPassword");
                            }
                            catch
                            {
                                _UCCXAdminPassword = String.Empty;
                            }
                        }

                        if (reader.Name.Equals("CallbackRecords"))
                        {
                            try
                            {
                                _MaximumNumberOfDays = int.Parse(reader.GetAttribute("MaximumNumberOfDays"));

                                if (_MaximumNumberOfDays < 0)
                                {
                                    _MaximumNumberOfDays = Constants.MAXIMUM_NUMBER_OF_DAYS;
                                }
                            }
                            catch
                            {
                                _MaximumNumberOfDays = Constants.MAXIMUM_NUMBER_OF_DAYS;
                            }

                            try
                            {
                                _MaximumNumberOfAttempts = int.Parse(reader.GetAttribute("MaximumNumberOfAttempts"));

                                if (_MaximumNumberOfAttempts <= 0)
                                {
                                    _MaximumNumberOfAttempts = Constants.MAXIMUM_NUMBER_OF_ATTEMPTS;
                                }
                            }
                            catch
                            {
                                _MaximumNumberOfAttempts = Constants.MAXIMUM_NUMBER_OF_ATTEMPTS;
                            }

                            try
                            {
                                _MinimumIntervalBetweenRetries = int.Parse(reader.GetAttribute("MinimumIntervalBetweenRetries"));

                                if (_MinimumIntervalBetweenRetries <= 0)
                                {
                                    _MinimumIntervalBetweenRetries = Constants.MINIMUM_INTERVAL_BETWEEN_RETRIES;
                                }
                            }
                            catch
                            {
                                _MinimumIntervalBetweenRetries = Constants.MINIMUM_INTERVAL_BETWEEN_RETRIES;
                            }
                        }

                        if (reader.Name.Equals("BasicInsertionThrottling"))
                        {
                            try
                            {
                                _BasicInsertionThrottling_Enabled = Boolean.Parse(reader.GetAttribute("Enabled"));
                            }
                            catch
                            {
                                _BasicInsertionThrottling_Enabled = false;
                            }

                            try
                            {
                                _BasicInsertionThrottling_MaximumRecordsAtATime = int.Parse(reader.GetAttribute("MaximumAtATime"));

                                if (_BasicInsertionThrottling_MaximumRecordsAtATime <= 0)
                                {
                                    _BasicInsertionThrottling_MaximumRecordsAtATime = Constants.BASIC_INSERTION_THROTTLING_MAXIMUM_RECORDS_AT_A_TIME;
                                }
                            }
                            catch
                            {
                                _BasicInsertionThrottling_MaximumRecordsAtATime = Constants.BASIC_INSERTION_THROTTLING_MAXIMUM_RECORDS_AT_A_TIME;
                            }
                        }

                        if (reader.Name.Equals("API"))
                        {
                            try
                            {
                                _NumberOfAPIThreads = int.Parse(reader.GetAttribute("NumberOfHandlerThreads"));

                                if (_NumberOfAPIThreads <= 0)
                                {
                                    _NumberOfAPIThreads = Constants.NUMBER_OF_HANDLER_THREADS;
                                }
                            }
                            catch
                            {
                                _NumberOfAPIThreads = Constants.NUMBER_OF_HANDLER_THREADS;
                            }

                            try
                            {
                                _APIHandlerThreadsSleep = int.Parse(reader.GetAttribute("HandlerThreadsSleep"));

                                if (_APIHandlerThreadsSleep <= 0)
                                {
                                    _APIHandlerThreadsSleep = Constants.API_HANDLER_THREADS_SLEEP;
                                }
                            }
                            catch
                            {
                                _APIHandlerThreadsSleep = Constants.API_HANDLER_THREADS_SLEEP;
                            }
                        }

                        if (reader.Name.Equals("Debug"))
                        {
                            try
                            {
                                _DebugEnabled = Boolean.Parse(reader.GetAttribute("Enabled"));
                            }
                            catch
                            {
                                _DebugEnabled = false;
                            }

                            _DebugLevel       = reader.GetAttribute("Level");
                            _DebugRetainUnit  = reader.GetAttribute("RetainUnit");
                            _DebugRetainValue = reader.GetAttribute("RetainValue");
                        }

                        break;
                    }
                }

                reader.Close();
                reader = null;

                xmlDoc = null;

                _encDec = null;

                _LastOperationReturn = ApplicationTypes.ApplicationSettingsReturn.SUCCESS;
                return(_LastOperationReturn);
            }
            catch (Exception ex)
            {
                _encDec = null;
                Trace.TraceError("Exception:" + ex.Message + Environment.NewLine + "StackTrace:" + ex.StackTrace);
                _LastOperationReturn = ApplicationTypes.ApplicationSettingsReturn.ERROR;
                return(_LastOperationReturn);
            }
        }
예제 #12
0
        public String GetVoiceCSQList()
        {
            try
            {
                if (_UCCXMasterNode == null)
                {
                    Trace.TraceWarning("_UCCXMasterNode is null.");
                    return(null);
                }

                if (_UCCXMasterNode == String.Empty)
                {
                    Trace.TraceWarning("_UCCXMasterNode is empty.");
                    return(null);
                }

                if (_UCCXUsername == null)
                {
                    Trace.TraceWarning("_UCCXUsername is null.");
                    return(null);
                }

                if (_UCCXUsername == String.Empty)
                {
                    Trace.TraceWarning("_UCCXUsername is empty.");
                    return(null);
                }

                if (_UCCXPassword == null)
                {
                    Trace.TraceWarning("_UCCXPassword is null.");
                    return(null);
                }

                if (_UCCXPassword == String.Empty)
                {
                    Trace.TraceWarning("_UCCXPassword is empty.");
                    return(null);
                }

                if (!SendRequest("http://" + _UCCXMasterNode + "/adminapi/csq"))
                {
                    Trace.TraceWarning("SendRequest() returned false.");
                    return(null);
                }

                StringBuilder sbCSQList = new StringBuilder();

                sbCSQList.Append("<csqs>");

                System.Xml.XmlDocument xmlDoc = null;

                xmlDoc = new System.Xml.XmlDocument();

                xmlDoc.LoadXml(sResponse);

                System.Xml.XmlNodeReader reader = new System.Xml.XmlNodeReader(xmlDoc);

                String _CSQID   = String.Empty;
                String _CSQName = String.Empty;

                while (reader.Read())
                {
                    switch (reader.NodeType)
                    {
                    case System.Xml.XmlNodeType.Element:

                        if (reader.Name.Equals("id"))
                        {
                            _CSQID = reader.ReadString();
                        }

                        if (reader.Name.Equals("name"))
                        {
                            _CSQName = reader.ReadString();
                        }

                        if (reader.Name.Equals("queueType"))
                        {
                            if (reader.ReadString() == "VOICE")
                            {
                                sbCSQList.Append("<csq>");
                                sbCSQList.Append("<id>" + _CSQID + "</id>");
                                sbCSQList.Append("<name>" + _CSQName + "</name>");
                                sbCSQList.Append("</csq>");

                                _CSQID   = String.Empty;
                                _CSQName = String.Empty;
                            }
                        }

                        break;

                    case System.Xml.XmlNodeType.EndElement:

                        break;
                    }
                }

                reader = null;
                xmlDoc = null;

                sbCSQList.Append("</csqs>");

                return(sbCSQList.ToString());
            }
            catch (Exception ex)
            {
                Trace.TraceWarning("Exception: " + ex.Message + Environment.NewLine + "StackTrace: " + ex.StackTrace);

                return(null);
            }
        }
예제 #13
0
파일: Feed.cs 프로젝트: xxjeng/nuxleus
        private void InitializeXmlNamespaceManager(bool i_AddFeedSyncNamespace)
        {
            System.Diagnostics.Debug.Assert(m_XmlDocument != null);
            System.Diagnostics.Debug.Assert(m_XmlNamespaceManager != null);

            if (i_AddFeedSyncNamespace)
            {
                m_XmlDocument.DocumentElement.SetAttribute
                    (
                    "xmlns:" + Microsoft.Samples.FeedSync.Constants.FEEDSYNC_XML_NAMESPACE_PREFIX,
                    Microsoft.Samples.FeedSync.Constants.FEEDSYNC_XML_NAMESPACE_URI
                    );
            }

            #region Populate namespaces into XmlNamespaceManager instance

            System.Xml.XmlReader XmlReader = new System.Xml.XmlNodeReader(m_XmlDocument);

            while (XmlReader.Read())
            {
                XmlReader.MoveToFirstAttribute();
                do
                {
                    if (XmlReader.Name.StartsWith("xmlns:") || (XmlReader.Name == "xmlns"))
                    {
                        string NamespacePrefix = System.String.Empty;
                        string NamespaceValue = System.String.Empty;

                        if (XmlReader.Name.StartsWith("xmlns:"))
                            NamespacePrefix = XmlReader.Name.Substring(XmlReader.Name.IndexOf(':') + 1);

                        NamespaceValue = XmlReader.Value;

                        if (!System.String.IsNullOrEmpty(NamespaceValue))
                            m_XmlNamespaceManager.AddNamespace(NamespacePrefix, NamespaceValue);
                    }
                }
                while (XmlReader.MoveToNextAttribute());
            }

            XmlReader.Close();

            #endregion

            #region Get/set namespace prefix for subsequent xpath queries

            foreach (System.Collections.Generic.KeyValuePair<string, string> KeyValuePair in m_XmlNamespaceManager.GetNamespacesInScope(System.Xml.XmlNamespaceScope.All))
            {
                if (KeyValuePair.Value == Microsoft.Samples.FeedSync.Constants.FEEDSYNC_XML_NAMESPACE_URI)
                {
                    if (KeyValuePair.Key == Microsoft.Samples.FeedSync.Constants.FEEDSYNC_XML_NAMESPACE_PREFIX)
                    {
                        m_FeedSyncNamespacePrefix = Microsoft.Samples.FeedSync.Constants.FEEDSYNC_XML_NAMESPACE_PREFIX;
                        continue;
                    }

                    //  Check for default namespace
                    if (System.String.IsNullOrEmpty(KeyValuePair.Key))
                    {
                        //  See if sse prefix used
                        if (!m_XmlNamespaceManager.HasNamespace(Microsoft.Samples.FeedSync.Constants.FEEDSYNC_XML_NAMESPACE_PREFIX))
                        {
                            m_FeedSyncNamespacePrefix = Microsoft.Samples.FeedSync.Constants.FEEDSYNC_XML_NAMESPACE_PREFIX;
                        }
                        else
                        {
                            //  See if sse prefix is mapped to atom namespace uri
                            string NamespaceURI = m_XmlNamespaceManager.LookupNamespace(Microsoft.Samples.FeedSync.Constants.FEEDSYNC_XML_NAMESPACE_PREFIX);
                            if (NamespaceURI == Microsoft.Samples.FeedSync.Constants.FEEDSYNC_XML_NAMESPACE_URI)
                                m_FeedSyncNamespacePrefix = Microsoft.Samples.FeedSync.Constants.FEEDSYNC_XML_NAMESPACE_PREFIX;
                            else
                            {
                                //  Create a new prefix
                                m_FeedSyncNamespacePrefix = Microsoft.Samples.FeedSync.Constants.FEEDSYNC_XML_NAMESPACE_PREFIX + System.Guid.NewGuid().ToString();
                            }
                        }

                        //  Add namespace with mapped prefix
                        m_XmlNamespaceManager.AddNamespace
                            (
                            m_FeedSyncNamespacePrefix,
                            Microsoft.Samples.FeedSync.Constants.FEEDSYNC_XML_NAMESPACE_URI
                            );
                    }

                    if (System.String.IsNullOrEmpty(m_FeedSyncNamespacePrefix))
                        throw new System.Exception("Invalid FeedSync XML document!");
                }
                else if (KeyValuePair.Value == Microsoft.Samples.FeedSync.Constants.ATOM_XML_NAMESPACE_URI)
                {
                    if (KeyValuePair.Key == Microsoft.Samples.FeedSync.Constants.ATOM_XML_NAMESPACE_PREFIX)
                    {
                        m_AtomNamespacePrefix = Microsoft.Samples.FeedSync.Constants.ATOM_XML_NAMESPACE_PREFIX;
                        continue;
                    }

                    //  Check for default namespace
                    if (System.String.IsNullOrEmpty(KeyValuePair.Key))
                    {
                        //  See if atom prefix used
                        if (!m_XmlNamespaceManager.HasNamespace(Microsoft.Samples.FeedSync.Constants.ATOM_XML_NAMESPACE_PREFIX))
                        {
                            m_AtomNamespacePrefix = Microsoft.Samples.FeedSync.Constants.ATOM_XML_NAMESPACE_PREFIX;
                        }
                        else
                        {
                            //  See if atom prefix is mapped to atom namespace uri
                            string NamespaceURI = m_XmlNamespaceManager.LookupNamespace(Microsoft.Samples.FeedSync.Constants.ATOM_XML_NAMESPACE_PREFIX);
                            if (NamespaceURI == Microsoft.Samples.FeedSync.Constants.ATOM_XML_NAMESPACE_URI)
                                m_AtomNamespacePrefix = Microsoft.Samples.FeedSync.Constants.ATOM_XML_NAMESPACE_PREFIX;
                            else
                            {
                                //  Create a new prefix
                                m_AtomNamespacePrefix = Microsoft.Samples.FeedSync.Constants.ATOM_XML_NAMESPACE_PREFIX + System.Guid.NewGuid().ToString();
                            }
                        }

                        //  Add namespace with mapped prefix
                        m_XmlNamespaceManager.AddNamespace
                            (
                            m_AtomNamespacePrefix,
                            Microsoft.Samples.FeedSync.Constants.ATOM_XML_NAMESPACE_URI
                            );
                    }

                    if (System.String.IsNullOrEmpty(m_AtomNamespacePrefix))
                        throw new System.Exception("Invalid Atom XML document!");
                }
            }

            #endregion
        }
예제 #14
0
 /// <summary>
 /// Deserialize Xml into the target object.
 /// </summary>
 /// <param name="node">The Xml to load into the object.</param>
 /// <param name="target">The destination for the Xml.</param>
 /// <remarks></remarks>
 public object ReadXml(System.Xml.XmlNode node, object target)
 {
     System.Xml.XmlNodeReader _xmlReader = new System.Xml.XmlNodeReader(node);
     target = ReadXml(_xmlReader, target);
     return target;
 }
        private bool ParseResponseIntoArraylist()
        {
            try
            {
                int iCode = 0;

                System.Xml.XmlDocument xmlDoc = null;

                xmlDoc = new System.Xml.XmlDocument();

                xmlDoc.LoadXml(sResponse);

                System.Xml.XmlNode nodCode = xmlDoc.SelectSingleNode("//response/code");

                if (nodCode != null)
                {
                    try
                    {
                        iCode = int.Parse(nodCode.InnerText);
                    }
                    catch (Exception ex)
                    {
                        Trace.TraceWarning("Exception casting Code to integer; Code defaulted to -1.");
                        iCode = -1;
                    }
                }
                else
                {
                    Trace.TraceWarning("//response/code element not found. Code defaulted to -1");
                    iCode = -1;
                }

                if (iCode == -1)
                {
                    Trace.TraceWarning("//response/code element = -1");
                    nodCode = null;
                    xmlDoc  = null;
                    return(false);
                }

                nodCode = null;

                System.Xml.XmlNodeReader reader = new System.Xml.XmlNodeReader(xmlDoc);

                QueuedContacts.Clear();

                ContactQueuedInformation _con = null;

                while (reader.Read())
                {
                    switch (reader.NodeType)
                    {
                    case System.Xml.XmlNodeType.Element:

                        if (reader.Name.Equals("contact"))
                        {
                            _con = new ContactQueuedInformation();
                        }

                        if (reader.Name.Equals("contactid"))
                        {
                            _con.ID = reader.ReadString();
                        }

                        if (reader.Name.Equals("type"))
                        {
                            _con.Type = reader.ReadString();
                        }

                        if (reader.Name.Equals("implid"))
                        {
                            _con.ImplID = reader.ReadString();
                        }

                        if (reader.Name.Equals("starttime"))
                        {
                            _con.StartTime = reader.ReadString();
                        }

                        if (reader.Name.Equals("duration"))
                        {
                            _con.Duration = reader.ReadString();
                        }

                        if (reader.Name.Equals("application"))
                        {
                            _con.Application = reader.ReadString();
                        }

                        if (reader.Name.Equals("task"))
                        {
                            _con.Task = reader.ReadString();
                        }

                        if (reader.Name.Equals("session"))
                        {
                            _con.Session = reader.ReadString();
                        }

                        if (reader.Name.Equals("queuedfor"))
                        {
                            _con.QueuedFor = reader.ReadString();
                        }

                        break;

                    case System.Xml.XmlNodeType.EndElement:

                        if (reader.Name.Equals("contact"))
                        {
                            QueuedContacts.Add(_con);
                            _con = null;
                        }

                        break;
                    } //switch (reader.NodeType)
                }     //while (reader.Read())

                reader = null;
                xmlDoc = null;

                return(true);
            }
            catch (Exception ex)
            {
                Trace.TraceWarning("Exception: " + ex.Message + Environment.NewLine + "Stacktrace: " + ex.StackTrace);
                return(false);
            }
        }
예제 #16
0
 /// <summary>
 /// Deserialize Xml into the target object.
 /// </summary>
 /// <param name="document">The Xml to load into the object.</param>
 /// <param name="target">The destination for the Xml.</param>
 /// <remarks></remarks>
 public object ReadXml(System.Xml.XmlDocument document, object target)
 {
     System.Xml.XmlNodeReader _xmlReader = new System.Xml.XmlNodeReader(document);
     target = ReadXml(_xmlReader, target);
     return target;
 }
예제 #17
0
        private bool ParseResponse()
        {
            try
            {
                System.Xml.XmlDocument xmlDoc = null;

                xmlDoc = new System.Xml.XmlDocument();

                xmlDoc.LoadXml(sResponse);

                System.Xml.XmlNodeReader reader = new System.Xml.XmlNodeReader(xmlDoc);

                while (reader.Read())
                {
                    switch (reader.NodeType)
                    {
                    case System.Xml.XmlNodeType.Element:

                        if (reader.Name.Equals("CSQ"))
                        {
                            _Information      = new ContactServiceQueueInformation();
                            _Information.Name = reader.GetAttribute("name");
                        }

                        if (reader.Name.Equals("LoggedIn"))
                        {
                            try
                            {
                                _Information.AgentsLoggedIn = int.Parse(reader.ReadString());
                            }
                            catch (Exception ex)
                            {
                                _Information.AgentsLoggedIn = -99;
                            }
                        }

                        if (reader.Name.Equals("Talking"))
                        {
                            try
                            {
                                _Information.AgentsTalking = int.Parse(reader.ReadString());
                            }
                            catch (Exception ex)
                            {
                                _Information.AgentsTalking = -99;
                            }
                        }

                        if (reader.Name.Equals("Ready"))
                        {
                            try
                            {
                                _Information.AgentsReady = int.Parse(reader.ReadString());
                            }
                            catch (Exception ex)
                            {
                                _Information.AgentsReady = -99;
                            }
                        }

                        if (reader.Name.Equals("NotReady"))
                        {
                            try
                            {
                                _Information.AgentsNotReady = int.Parse(reader.ReadString());
                            }
                            catch (Exception ex)
                            {
                                _Information.AgentsNotReady = -99;
                            }
                        }

                        if (reader.Name.Equals("Work"))
                        {
                            try
                            {
                                _Information.AgentsWork = int.Parse(reader.ReadString());
                            }
                            catch (Exception ex)
                            {
                                _Information.AgentsWork = -99;
                            }
                        }

                        if (reader.Name.Equals("CallsWaiting"))
                        {
                            try
                            {
                                _Information.ContactsWaiting = int.Parse(reader.ReadString());
                            }
                            catch (Exception ex)
                            {
                                _Information.ContactsWaiting = -99;
                            }
                        }

                        if (reader.Name.Equals("LongestQueueTime"))
                        {
                            try
                            {
                                _Information.LongestWaitingContact = int.Parse(reader.ReadString());
                            }
                            catch (Exception ex)
                            {
                                _Information.LongestWaitingContact = -99;
                            }
                        }

                        //if (reader.Name.Equals("TotalInQueue"))
                        //{
                        //    try
                        //    {
                        //        _Information.TotalInQueue = int.Parse(reader.ReadString());
                        //    }
                        //    catch (Exception ex)
                        //    {
                        //        _Information.TotalInQueue = -99;
                        //    }
                        //}

                        break;

                    case System.Xml.XmlNodeType.EndElement:

                        if (reader.Name.Equals("CSQ"))
                        {
                        }

                        break;
                    }
                }

                reader = null;
                xmlDoc = null;

                return(true);
            }
            catch (Exception ex)
            {
                Trace.TraceWarning("Exception: " + ex.Message + Environment.NewLine + "Stacktrace: " + ex.StackTrace);
                return(false);
            }
        }