private static bool Equals([NotNull] IDataTemplateMetadata left, [NotNull] IDataTemplateMetadata right)
        {
            Contract.Requires(left != null);
            Contract.Requires(right != null);

            return((left.ViewModel == right.ViewModel) && RoleEquals(left.Role, right.Role));
        }
 private static int GetHashCode([NotNull] IDataTemplateMetadata metadata)
 {
     return(HashCode.Aggregate(metadata.DataType?.GetHashCode() ?? 0, (metadata.Role ?? 0).GetHashCode()));
 }
 private static bool Equals([NotNull] IDataTemplateMetadata left, [NotNull] IDataTemplateMetadata right)
 {
     return((left.DataType == right.DataType) && RoleEquals(left.Role, right.Role));
 }
 private static int GetHashCode([NotNull] IDataTemplateMetadata metadata)
 {
     return(metadata.ViewModel.GetHashCode() + (metadata.Role ?? 0).GetHashCode());
 }
        private static int GetHashCode([NotNull] IDataTemplateMetadata metadata)
        {
            Contract.Requires(metadata != null);

            return(metadata.ViewModel.GetHashCode() + (metadata.Role ?? 0).GetHashCode());
        }