///////////////////////////////////////////////////////////////////////////////////////////
        ///////////////////////////////////////////////////////////////////////////////////////////

        /// <summary>
        /// Method gets attribute parameters collection.
        /// </summary>
        /// <param name="attr">Server network attribute to find intersection with
        /// attribute parameters.</param>
        /// <param name="values">Collection of attribute parameters.</param>
        /// <returns>Collection of network attribute parameters.</returns>
        private static ICollection <NetworkAttributeParameter> _GetAttrParams(
            NAServerNetworkAttribute attr, IEnumerable <NAAttributeParameterValue> values)
        {
            var attributeParameters = values.ToDictionary(value => value.ParameterName,
                                                          StringComparer.OrdinalIgnoreCase);
            var parameterNames = attr.ParameterNames.Intersect(attributeParameters.Keys,
                                                               StringComparer.OrdinalIgnoreCase);
            List <NetworkAttributeParameter> attrParams = new List <NetworkAttributeParameter>();

            foreach (var parameterName in parameterNames)
            {
                var value = attributeParameters[parameterName];
                attrParams.Add(_CreateNetworkAttributeParameter(value));
            }

            return(attrParams.AsReadOnly());
        }
        ///////////////////////////////////////////////////////////////////////////////////////////
        ///////////////////////////////////////////////////////////////////////////////////////////
        /// <summary>
        /// Method gets attribute parameters collection.
        /// </summary>
        /// <param name="attr">Server network attribute to find intersection with 
        /// attribute parameters.</param>
        /// <param name="values">Collection of attribute parameters.</param>
        /// <returns>Collection of network attribute parameters.</returns>
        private static ICollection<NetworkAttributeParameter> _GetAttrParams(
            NAServerNetworkAttribute attr, IEnumerable<NAAttributeParameterValue> values)
        {
            var attributeParameters = values.ToDictionary(value => value.ParameterName,
                StringComparer.OrdinalIgnoreCase);
            var parameterNames = attr.ParameterNames.Intersect(attributeParameters.Keys,
                StringComparer.OrdinalIgnoreCase);
            List<NetworkAttributeParameter> attrParams = new List<NetworkAttributeParameter>();

            foreach (var parameterName in parameterNames)
            {
                var value = attributeParameters[parameterName];
                attrParams.Add(_CreateNetworkAttributeParameter(value));
            }

            return attrParams.AsReadOnly();
        }