Esempio n. 1
0
        /// <summary>
        /// Slot implementation.
        /// </summary>
        /// <param name="signaler">Signaler that raised signal.</param>
        /// <param name="input">Arguments to slot.</param>
        public void Signal(ISignaler signaler, Node input)
        {
            // Retrieving slot's lambda, no reasons to clone, GetSlot will clone.
            var filter = input.GetEx <string>();

            input.Value = null;
            if (string.IsNullOrEmpty(filter))
            {
                var list = Create.Slots()
                           .Select(x => new Node("", x))
                           .ToList();
                list.Sort((lhs, rhs) => string
                          .Compare(
                              lhs.Get <string>(),
                              rhs.Get <string>(),
                              System.StringComparison.InvariantCulture));
                var whitelist = signaler.Peek <List <Node> >("whitelist");
                input.AddRange(list
                               .Where(x => whitelist == null ||
                                      whitelist.Any(x2 => x2.Name == "signal" && x2.Get <string>() == x.Get <string>())));
            }
            else
            {
                var list = Create.Slots()
                           .Where(x => x.StartsWith(filter))
                           .Select(x => new Node("", x))
                           .ToList();
                list.Sort((lhs, rhs) => string
                          .Compare(
                              lhs.Get <string>(),
                              rhs.Get <string>(),
                              System.StringComparison.InvariantCulture));
                var whitelist = signaler.Peek <List <Node> >("whitelist");
                input.AddRange(list.Where(x => whitelist == null ||
                                          whitelist.Any(x2 => x2.Name == "signal" && x2.Get <string>() == x.Get <string>())));
            }
        }
Esempio n. 2
0
 /// <summary>
 /// Slot implementation.
 /// </summary>
 /// <param name="signaler">Signaler that raised signal.</param>
 /// <param name="input">Arguments to slot.</param>
 public void Signal(ISignaler signaler, Node input)
 {
     // Retrieving slot's lambda, no reasons to clone, GetSlot will clone.
     input.AddRange(Create.GetSlot(input.GetEx <string>()).Children.ToList());
 }
Esempio n. 3
0
 /// <summary>
 /// Slot implementation.
 /// </summary>
 /// <param name="signaler">Signaler that raised signal.</param>
 /// <param name="input">Arguments to slot.</param>
 public void Signal(ISignaler signaler, Node input)
 {
     Create.DeleteSlot(input.GetEx <string>());
 }
Esempio n. 4
0
 /// <summary>
 /// Slot implementation.
 /// </summary>
 /// <param name="signaler">Signaler that raised signal.</param>
 /// <param name="input">Arguments to slot.</param>
 public void Signal(ISignaler signaler, Node input)
 {
     // Retrieving slot's lambda, no reasons to clone, GetSlot will clone.
     input.Value = Create.SlotExists(input.GetEx <string>());
 }