/// <summary>
        /// <para>Initializes a new instance of the <see cref="MemberChangeStatusDetails" />
        /// class.</para>
        /// </summary>
        /// <param name="newValue">New member status.</param>
        /// <param name="previousValue">Previous member status. Might be missing due to
        /// historical data gap.</param>
        /// <param name="teamJoinDetails">Additional information relevant when a new member
        /// joins the team.</param>
        public MemberChangeStatusDetails(MemberStatus newValue,
                                         MemberStatus previousValue      = null,
                                         JoinTeamDetails teamJoinDetails = null)
        {
            if (newValue == null)
            {
                throw new sys.ArgumentNullException("newValue");
            }

            this.NewValue        = newValue;
            this.PreviousValue   = previousValue;
            this.TeamJoinDetails = teamJoinDetails;
        }
 /// <summary>
 /// <para>Initializes a new instance of the <see cref="TeamJoinDetails" />
 /// class.</para>
 /// </summary>
 /// <param name="value">The value</param>
 public TeamJoinDetails(JoinTeamDetails value)
 {
     this.Value = value;
 }