/// <summary> /// Rewrites all members in the document. /// </summary> public SyntaxNode Process(SyntaxNode syntax, ProcessorContext context) { var virtualEvents = new HashSet <string>(); var semantic = context.Compilation.GetSemanticModel(syntax.SyntaxTree); if (semantic != null) { var events = new EventVisitor(); events.Visit(syntax); foreach (var symbol in events.Types.SelectMany(type => semantic .LookupNamespacesAndTypes(type.Span.Start, name: type.Identifier.ValueText) .OfType <INamedTypeSymbol>()).Where(x => x != null)) { var baseType = symbol.BaseType; while (baseType != null) { foreach (var e in baseType.GetMembers().OfType <IEventSymbol>().Where(e => e.IsVirtual)) { virtualEvents.Add(e.Name); } baseType = baseType.BaseType; } } } return(syntax = new CSharpRewriteVisitor(virtualEvents).Visit(syntax)); }
/// <summary> /// Creates a new instance of <see cref="SimulationRunner{TSimulationEnvironment}"/>. /// </summary> /// <param name="environment"> /// The simulation environment. /// </param> /// <exception cref="System.ArgumentNullException"> /// Thrown when <paramref name="environment"/> is <see langword="null"/>. /// </exception> public SimulationRunner(TSimulationEnvironment environment) { Guard.IsNotNull(environment, "environment"); _environment = environment; _visitor = new EventVisitor(this); _eventQueue = new PriorityQueue <ScheduledEventEnumerator>(); }
private static void VisitEvents(Thing thing, IEnumerable <IInterceptorFactory> factories) { var intercepts = factories .Select(x => x.CreatEventIntercept()) .ToArray(); EventVisitor.Visit(intercepts, thing); }
public ActionResult Details(int id) { var events = db.Events.FirstOrDefault(x => x.Id == id); var visitors = db.Visitors.Where(x => x.EventId == id && x.ConfirmedEmail).ToList(); var eventVisitors = new EventVisitor() { Events = events, Visitors = visitors }; return(View(eventVisitors)); }
/// <summary> /// Accept a visit by the given visitor. /// </summary> public override TResult Accept <TResult, TData>(EventVisitor <TResult, TData> visitor, TData data) { return(visitor.Visit(this, data)); }