/// <summary> /// Set a user's name. /// This might thrown an exception. /// </summary> /// <param name="name">Name to give user</param> /// <exception cref="Exception">Throws exception</exception> public void SetName(string name) { INameState state = new InvalidName(); if (state.ValidateName(name).isValid) { this.Name = name; return; } ; throw new Exception(); }
/// <summary> /// Notifies subscribers of InvalidName event. /// </summary> /// <param name="e">Args containing info about the source (name) and the Name object (parser's best guess for the parsing).</param> protected virtual void OnInvalidName(InvalidNameEventArgs e) => InvalidName?.Invoke(this, e);