Пример #1
0
        /// <summary>
        /// Returns all headers
        /// </summary>
        /// <returns></returns>
        public List <HttpHeader> GetAllHeaders()
        {
            var result = new List <HttpHeader>();

            result.AddRange(RequestHeaders.Select(x => x.Value));
            result.AddRange(NonUniqueRequestHeaders.SelectMany(x => x.Value));

            return(result);
        }
Пример #2
0
        /// <summary>
        /// True if header exists
        /// </summary>
        /// <param name="name"></param>
        /// <returns></returns>
        public bool HeaderExists(string name)
        {
            if (RequestHeaders.ContainsKey(name) ||
                NonUniqueRequestHeaders.ContainsKey(name))
            {
                return(true);
            }

            return(false);
        }
Пример #3
0
        /// <summary>
        ///  removes all headers with given name
        /// </summary>
        /// <param name="headerName"></param>
        /// <returns>True if header was removed
        /// False if no header exists with given name</returns>
        public bool RemoveHeader(string headerName)
        {
            if (RequestHeaders.ContainsKey(headerName))
            {
                RequestHeaders.Remove(headerName);
                return(true);
            }
            else if (NonUniqueRequestHeaders.ContainsKey(headerName))
            {
                NonUniqueRequestHeaders.Remove(headerName);
                return(true);
            }

            return(false);
        }
Пример #4
0
        /// <summary>
        /// Returns all headers with given name if exists
        /// Returns null if does'nt exist
        /// </summary>
        /// <param name="name"></param>
        /// <returns></returns>
        public List <HttpHeader> GetHeaders(string name)
        {
            if (RequestHeaders.ContainsKey(name))
            {
                return(new List <HttpHeader>()
                {
                    RequestHeaders[name]
                });
            }
            else if (NonUniqueRequestHeaders.ContainsKey(name))
            {
                return(new List <HttpHeader>(NonUniqueRequestHeaders[name]));
            }

            return(null);
        }
Пример #5
0
        /// <summary>
        /// Removes given header object if it exist
        /// </summary>
        /// <param name="header">Returns true if header exists and was removed </param>
        public bool RemoveHeader(HttpHeader header)
        {
            if (RequestHeaders.ContainsKey(header.Name))
            {
                if (RequestHeaders[header.Name].Equals(header))
                {
                    RequestHeaders.Remove(header.Name);
                    return(true);
                }
            }
            else if (NonUniqueRequestHeaders.ContainsKey(header.Name))
            {
                if (NonUniqueRequestHeaders[header.Name]
                    .RemoveAll(x => x.Equals(header)) > 0)
                {
                    return(true);
                }
            }

            return(false);
        }
Пример #6
0
        /// <summary>
        /// Adds the given header object to Request
        /// </summary>
        /// <param name="newHeader"></param>
        public void AddHeader(HttpHeader newHeader)
        {
            if (NonUniqueRequestHeaders.ContainsKey(newHeader.Name))
            {
                NonUniqueRequestHeaders[newHeader.Name].Add(newHeader);
                return;
            }

            if (RequestHeaders.ContainsKey(newHeader.Name))
            {
                var existing = RequestHeaders[newHeader.Name];
                RequestHeaders.Remove(newHeader.Name);

                NonUniqueRequestHeaders.Add(newHeader.Name,
                                            new List <HttpHeader>()
                {
                    existing, newHeader
                });
            }
            else
            {
                RequestHeaders.Add(newHeader.Name, newHeader);
            }
        }