private void BuildEventSource(Project project, ProjectItem <EventSourceModel> eventSourceProjectItem) { var eventSource = eventSourceProjectItem.Content; if (eventSource == null) { LogError($"{eventSourceProjectItem.Name} should have a content of type {typeof(EventSourceModel).Name} set but found {eventSourceProjectItem.Content?.GetType().Name ?? "null"}"); return; } var eventSourceBuilders = new IEventSourceBuilder[] { new EventSourceKeywordBuilder(), new EventSourceEventTaskBuilder(), new EventSourceAutoGenerateLoggersBuilder(), new EventSourceCorrelatingEventsBuilder(), new EventSourceLoggersBuilder(), //new EventSourceAutoGeneratedLoggersBuilder(), new EventSourceEventsBuilder(), new EventSourceExtensionsMethodsBuilder(), }.Union(project.GetExtensions <IEventSourceBuilder>(eventSource.Settings?.Modules ?? new string[0])).ToArray(); foreach (var builder in eventSourceBuilders) { PassAlongLoggers(builder as IWithLogging); builder.Build(project, eventSourceProjectItem); } }
private void BuildEventSource(Project project, ProjectItem <EventSourceModel> eventSourceDefinitionProjectItem) { var eventSourceBuilders = new IEventSourceBuilder[] { new EventSourceKeywordBuilder(), new EventSourceAutoGenerateLoggersBuilder(), new EventSourceCorrelatingEventsBuilder(), new EventSourceLoggersBuilder(), new EventSourceEventsBuilder(), new EventSourceExtensionsMethodsBuilder(), }.Union(project.GetExtensions <IEventSourceBuilder>()).ToArray(); foreach (var builder in eventSourceBuilders) { PassAlongLoggers(builder as IWithLogging); builder.Build(project, eventSourceDefinitionProjectItem); } }
public IEnumerable <ProjectItem> Build(Project project, EventSourceModel model) { var outputs = new List <ProjectItem>(); // TODO: Get all builders from project and allow all to build var eventSourceBuilders = new IEventSourceBuilder[] { new EventSourceKeywordBuilder(), new EventSourceLoggersBuilder(), new EventSourceEventsBuilder(), new EventSourceExtensionsMethodsBuilder(), }; foreach (var builder in eventSourceBuilders) { builder.Build(project, model); } return(outputs); }