/// <summary>
        /// Finds the web service description documents by hash.
        /// </summary>
        /// <param name="hash">The hash.</param>
        /// <returns>ICollection{WebServiceDescriptionDocumentDto}.</returns>
        public ICollection<WebServiceDescriptionDocumentDto> FindWebServiceDescriptionDocumentsByHash(string hash)
        {
            const string CommandText = @"
SELECT
     [Id]
    ,[DocumentType]
    ,[Data]
    ,[Hash]
FROM
    [dbo].[WebServiceDescriptionDocuments]
WHERE [Hash] = @hash";

            var result = new List<WebServiceDescriptionDocumentDto>();

            using (var ctx = ConnectionManager<SqlConnection>.GetManager(Database.VeyronMeta, false))
            {
                using (var cmd = new SqlCommand(CommandText, ctx.Connection))
                {
                    cmd.Parameters.AddWithValue("@hash", hash);

                    using (var reader = new SafeDataReader(cmd.ExecuteReader()))
                    {
                        while (reader.Read())
                        {
                            var dto = new WebServiceDescriptionDocumentDto
                                          {
                                              Id = reader.GetInt32(0),
                                              DocumentType =
                                                  (WebServiceDescriptionDocumentType)
                                                  Enum.Parse(
                                                      typeof(WebServiceDescriptionDocumentType),
                                                      reader.GetString(1),
                                                      true),
                                              Data = reader.GetString(2),
                                              Hash = reader.GetString(3)
                                          };

                            result.Add(dto);
                        }
                    }
                }
            }

            return result;
        }
        /// <summary>
        /// Inserts the web service description document.
        /// </summary>
        /// <param name="dto">The dto.</param>
        /// <exception cref="System.ArgumentNullException">dto</exception>
        /// <exception cref="System.Data.DBConcurrencyException"></exception>
        public void InsertWebServiceDescriptionDocument(WebServiceDescriptionDocumentDto dto)
        {
            const string CommandText = @"
INSERT INTO [dbo].[WebServiceDescriptionDocuments]
(
     [DocumentType]
    ,[Data]
    ,[Hash]
)
VALUES
(
     @documentType
    ,@data
    ,@hash
);

SET @id = SCOPE_IDENTITY();";

            if (dto == null)
                throw new ArgumentNullException("dto");

            using (var cmd = new SqlCommand(CommandText))
            {
                var idParam = cmd.Parameters.Add("@id", SqlDbType.Int);

                idParam.Direction = ParameterDirection.Output;

                cmd.Parameters.AddWithValue("@documentType", dto.DocumentType.ToString());
                cmd.Parameters.AddWithValue("@data", dto.Data);
                cmd.Parameters.AddWithValue("@hash", dto.Hash);

                var rowsAffected = Database.Execute(cmd);

                if (rowsAffected == 0)
                    throw new DBConcurrencyException(ConcurencyException);

                dto.Id = (int)idParam.Value;
            }
        }
        /// <summary>
        /// Reads the web service description documents.
        /// </summary>
        /// <param name="serviceDto">The service dto.</param>
        /// <param name="reader">The reader.</param>
        private static void ReadWebServiceDescriptionDocuments(WebServiceDescriptionDto serviceDto, IDataReader reader)
        {
            reader.NextResult();

            while (reader.Read())
            {
                var documentDto = new WebServiceDescriptionDocumentDto
                                      {
                                          Id = reader.GetInt32(0),
                                          DocumentType =
                                              (WebServiceDescriptionDocumentType)
                                              Enum.Parse(
                                                  typeof(WebServiceDescriptionDocumentType), reader.GetString(1), true),
                                          Data = reader.GetString(2),
                                          Hash = reader.GetString(3)
                                      };

                serviceDto.Documents.Add(documentDto);
            }
        }