public override async Task Effect(StateMachineEvent evt, Command parameter) { if (parameter != null) { var status = new Status(new InformationMessageHeader(), Status.ErrorSeverity.Fatal, Status.ErrorCode.InvalidState, $"Command {parameter.FourCc()} is invalid or not available in PROTOCOL state."); status.OffendingCommandOrMissingFeature.Value = parameter.FourCc(); await Sender.SendMessage(status.ToMessage()); } await User.Close(); }
public override async Task Effect(StateMachineEvent evt, Command parameter) { if (parameter != null) { var status = new Status(new InformationMessageHeader(), Status.ErrorSeverity.Fatal, Status.ErrorCode.InvalidState, $"Command {parameter.FourCc()} is invalid or not available in IDENTIFY state."); status.OffendingCommandOrMissingFeature.Value = parameter.FourCc(); await Sender.SendMessage(status.ToMessage()); } if (evt.InternalEvent != InternalEvent.DisconnectOccured) { var quit = new Quit(new InformationMessageHeader(), User.Sid); await Sender.SendMessage(quit.ToMessage()); } await User.Close(); }