Пример #1
0
        /// <inheritdoc />
        public void DirectTo <T>(ITerminalResource <T> resource, IEnumerable <Condition <T> > assignments = null) where T : class, ITerminal
        {
            if (Status != WebSocketStatus.Open)
            {
                throw new InvalidOperationException($"Unable to send WebSocket with status '{Status}' to terminal '{resource.Name}'");
            }
            if (resource == null)
            {
                throw new ArgumentNullException(nameof(resource));
            }
            var _resource   = (Meta.Internal.TerminalResource <T>)resource;
            var newTerminal = _resource.MakeTerminal(assignments);

            Context.WebSocket.ConnectTo(newTerminal, _resource);
            newTerminal.Open();
        }
Пример #2
0
 /// <inheritdoc />
 public MissingConstructorParameter(ITerminalResource terminal, string[] missingParameters) : base(ErrorCodes.MissingConstructorParameter,
                                                                                                   $"Missing parameter(s): {string.Join(", ", missingParameters)} in constructor call to {terminal.Name}")
 {
 }
Пример #3
0
        public async Task DirectTo <T>(ITerminalResource <T> t, ICollection <Condition <T> > a = null) where T : Terminal
        {
            await WaitTask.ConfigureAwait(false);

            await WebSocket.DirectTo(t, a).ConfigureAwait(false);
        }
Пример #4
0
 internal void ConnectTo(ITerminal terminal, ITerminalResource resource)
 {
     ReleaseTerminal();
     TerminalConnection = new WebSocketConnection(this, terminal, resource);
 }
 internal BadConditionOperator(ITerminalResource terminal, Operator found) : base(ErrorCodes.InvalidConditionOperator,
                                                                                  $"Invalid operator '{found.Common}' in condition to terminal resource '{terminal.Name}'. Only \'=\' is valid in terminal conditions.")
 {
 }
Пример #6
0
 public void DirectTo <T>(ITerminalResource <T> t, IEnumerable <Condition <T> > a = null) where T : class, ITerminal =>
 ActionQueue.Enqueue(() => ToQueueFor.DirectTo(t, a));