Exemple #1
0
 public static Event Create(string name, EventReturnMethod returnMethod, PythonTuple parameters)
 {
     return(new Event(name,
                      returnMethod,
                      parameters.Cast <PythonTuple>()
                      .Select(p => new EventArg(( string )p[0], p[1]))));
 }
Exemple #2
0
        public static Event DoEvent(this IEventSource self,
                                    string name,
                                    EventReturnMethod returnMethod,
                                    PythonDictionary args = null)
        {
            args = args ?? new PythonDictionary();
            var argList = args.Select(EventArg.Convert)
                          .ToList();

            return(self.DoEvent(name, returnMethod, argList));
        }
Exemple #3
0
        public static Event DoEvent(this IEventSource self,
                                    string name,
                                    EventReturnMethod returnMethod,
                                    IList <EventArg> args)
        {
            args = (args ?? new List <EventArg>())
                   .Concat(new[] { new EventArg("ch", self) })
                   .ToList();
            var doEvent = Create(name, returnMethod, args.ToArray());

            self.SendEvent(doEvent);

            return(doEvent);
        }
Exemple #4
0
        private Event(string name, EventReturnMethod returnMethod, IEnumerable <EventArg> parameters)
        {
            var parts = name.Split(':');

            Name  = parts.Last();
            Level = EventLevel.Room;
            if (parts.Length > 1)
            {
                Level = GetLevel(parts.First());
            }
            if (parts.Length > 2)
            {
                Target = parts[1];
            }

            _returnMethod = returnMethod;
            Parameters    = new List <EventArg>(parameters ?? new EventArg[0]);

            switch (returnMethod)
            {
            case EventReturnMethod.None:
                break;

            case EventReturnMethod.And:
                _returnValue = true;
                break;

            case EventReturnMethod.Or:
                _returnValue = false;
                break;

            case EventReturnMethod.List:
                _returnValue = new List <dynamic>();
                break;

            case EventReturnMethod.Sum:
                _returnValue = 0;
                break;

            case EventReturnMethod.First:
                _returnValue = null;
                break;

            default:
                throw new NotSupportedException("Event return method " + _returnMethod + " is not supported.");
            }
        }
Exemple #5
0
 public dynamic Event(string name,
                      EventReturnMethod returnMethod = EventReturnMethod.None,
                      params EventArg[] parameters)
 {
     return(Event(Entities.Event.Create(name, returnMethod, parameters)));
 }
Exemple #6
0
 public dynamic Event(string name,
                      EventReturnMethod returnMethod = EventReturnMethod.None,
                      PythonDictionary parameters    = null)
 {
     return(Event(Entities.Event.Create(name, returnMethod, parameters)));
 }
Exemple #7
0
 public static Event Create(string name, EventReturnMethod returnMethod, PythonDictionary parameters)
 {
     return(new Event(name,
                      returnMethod,
                      parameters?.Select(p => new EventArg(( string )p.Key, p.Value))));
 }
Exemple #8
0
 public static Event Create(string name,
                            EventReturnMethod returnMethod = EventReturnMethod.None,
                            params EventArg[] parameters)
 {
     return(new Event(name, returnMethod, parameters));
 }
Exemple #9
0
 public dynamic Event(string name, EventReturnMethod returnMethod, PythonDictionary parameters)
 {
     return(null);
 }