/// <summary>
        /// Gets parent schema.
        /// </summary>
        /// <param name="schema"><see cref="EntitySchema"/>schema.</param>
        /// <returns>Parent schema if schema is a detail.</returns>
        protected override string GetParentSchemaName(EntitySchema schema)
        {
            string schemaName = schema.Name;

            return(CommunicationDetails.GetValueOrDefault(schemaName, default(string))
                   ?? SimpleDetails.GetValueOrDefault(schemaName, default(string)));
        }
        /// <summary>
        /// Gets key value pair detail by detail name.
        /// </summary>
        /// <param name="detailNameWithSuffix">Detail name with suffix.</param>
        /// <returns>Custom or simple detail.</returns>
        private KeyValuePair <string, string> GetDetailByName(string detailNameWithSuffix)
        {
            var simpleDetail        = SimpleDetails.FirstOrDefault(d => detailNameWithSuffix == d.Key);
            var communicationDetail = CommunicationDetails.FirstOrDefault(d => detailNameWithSuffix.StartsWith(d.Key));

            return(simpleDetail.Equals(default(KeyValuePair <string, string>)) ? communicationDetail : simpleDetail);
        }