protected override void OnProcessOutputSchema(MutableObject newSchema) { var mut = new MutableObject { { "Teams", new List <int> { 0 } }, { "CSID", 0 } }; InfoTarget.SetValue(mut, newSchema); base.OnProcessOutputSchema(newSchema); }
public override IEnumerator ReceivePayload(VisualPayload payload) { if (!SpoofData.GetFirstValue(payload.Data)) { var binsetId = BinsetIdField.GetFirstValue(payload.Data); int foundCsId; List <int> teams; if (binsetId > 0) { var command = new GetBinsetInfoCommand(binsetId); var commandIterator = CommandProcessor.Execute(command); while (commandIterator.MoveNext()) { yield return(null); } switch (command.Type) { case BinsetType.RefPatch: teams = new List <int> { 8 }; break; case BinsetType.Ref: teams = new List <int> { 1, 2, 3, 4, 5, 6, 7, 8 }; break; case BinsetType.Rcs: teams = command.Submissions.Select(s => s.Team).Distinct().OrderBy(v => v).ToList(); break; default: throw new Exception("Unknown binset type!"); } foundCsId = command.CsId; } else { teams = new List <int> { 8 }; foundCsId = -1; } var mut = new MutableObject { { "Teams", teams }, { "CSID", foundCsId } }; InfoTarget.SetValue(mut, payload.Data); } else { InfoTarget.SetValue(new List <int> { 8 }, payload.Data); } var routerIterator = Router.TransmitAll(payload); while (routerIterator.MoveNext()) { yield return(null); } }