コード例 #1
0
        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);
            }
        }
コード例 #2
0
        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);
            }
        }
コード例 #3
0
        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);
        }