/// <summary>
        /// Parse attachment action type.
        /// </summary>
        /// <param name="name">Name of the attachment action type.</param>
        /// <returns><see cref="AttachmentActionType"/> for the name.</returns>
        public static AttachmentActionType Parse(string name)
        {
            AttachmentActionType attachmentActionType = null;

            if (name == null || !ATTACHMENT_ACTION_TYPES.TryGetValue(name, out attachmentActionType))
            {
                attachmentActionType = new AttachmentActionType(name);
            }

            return(attachmentActionType);
        }
        /// <summary>
        /// Determines whether this instance and another specified <see cref="AttachmentActionType"/> object have the same value.
        /// </summary>
        /// <param name="value">The attachment action type to compare to this instance.</param>
        /// <returns>true if the value of the parameter is the same as the value of this instance; otherwise, false. If value is null, the method returns false.</returns>
        public bool Equals(AttachmentActionType value)
        {
            if (Object.ReferenceEquals(value, null))
            {
                return(false);
            }

            if (Object.ReferenceEquals(this, value))
            {
                return(true);
            }

            return(this.Name == value.Name);
        }