private void CreateEndpointsUseCasePanel(IApplication application, ISolutionBuilderViewModel solutionBuilderModel, IUseCase useCase, int position) { var endpointsVM = new InnerPanelViewModel(); endpointsVM.Title = "Deployed to the following Endpoints"; endpointsVM.Items.Add(new InnerPanelTitle { Product = useCase.As <IProductElement>(), Text = "Started In", ForceText = true, MenuFilters = new string[] { "Add Started By Endpoint" }, IconPath = solutionBuilderModel.FindNodeFor(useCase.Parent.As <IProductElement>()).IconPath }); foreach (var endpoint in useCase.EndpointsStartingUseCases) { endpointsVM.Items.Add(new InnerPanelItem { Product = endpoint.As <IProductElement>(), Text = endpoint.As <IProductElement>().InstanceName }); } endpointsVM.Items.Add(new InnerPanelTitle { Product = useCase.As <IProductElement>(), Text = "Goes through", ForceText = true, MenuFilters = new string[] { }, IconPath = solutionBuilderModel.FindNodeFor(useCase.Parent.As <IProductElement>()).IconPath }); foreach (var endpoint in useCase.RelatedEndpoints) { endpointsVM.Items.Add(new InnerPanelItem { Product = endpoint.As <IProductElement>(), Text = endpoint.As <IProductElement>().InstanceName }); } this.SetPanel(position, new LogicalView(new LogicalViewModel(solutionBuilderModel, endpointsVM))); }
private void CreateEventsForUseCasePanel(ISolutionBuilderViewModel solutionBuilderModel, IUseCase useCase, int position) { var events = useCase.RelatedEvents; var eventsVM = new InnerPanelViewModel(); eventsVM.Title = "Events"; var eventsNode = new InnerPanelTitle { Product = useCase.As <IProductElement>(), Text = "Events", ForceText = true, MenuFilters = new string[] { "Add Event" }, IconPath = solutionBuilderModel.FindNodeFor(useCase.Parent.As <IProductElement>()).IconPath }; eventsVM.Items.Add(eventsNode); foreach (var service in events.Select(c => c.Parent.Parent.Parent).Distinct()) { eventsVM.Items.Add(new InnerPanelTitle { Product = service.As <IProductElement>(), Text = service.InstanceName }); foreach (var @event in events.Where(c => c.Parent.Parent.Parent == service)) { eventsVM.Items.Add(new InnerPanelItem { Product = @event.As <IProductElement>(), Text = @event.InstanceName }); } } this.SetPanel(position, new LogicalView(new LogicalViewModel(solutionBuilderModel, eventsVM))); }
internal void BuildDetailsForUseCase(IUseCase useCase, ISolutionBuilderViewModel solutionBuilderModel) { var application = useCase.As <IProductElement>().Root.As <IApplication>(); this.CleanDetails(); // Endpoints this.CreateEndpointsUseCasePanel(application, solutionBuilderModel, useCase, 0); // Components this.CreateComponentsForUseCasePanel(solutionBuilderModel, useCase, 1); // Commands this.CreateCommandsForUseCasePanel(solutionBuilderModel, useCase, 2); // Events this.CreateEventsForUseCasePanel(solutionBuilderModel, useCase, 3); }
private void CreateEventsForUseCasePanel(ISolutionBuilderViewModel solutionBuilderModel, IUseCase useCase, int position) { var events = useCase.RelatedEvents; var eventsVM = new InnerPanelViewModel(); eventsVM.Title = "Events"; var eventsNode = new InnerPanelTitle { Product = useCase.As<IProductElement>(), Text = "Events", ForceText = true, MenuFilters = new string[] { "Add Event" }, IconPath = solutionBuilderModel.FindNodeFor(useCase.Parent.As<IProductElement>()).IconPath }; eventsVM.Items.Add(eventsNode); foreach (var service in events.Select(c => c.Parent.Parent.Parent).Distinct()) { eventsVM.Items.Add(new InnerPanelTitle { Product = service.As<IProductElement>(), Text = service.InstanceName }); foreach (var @event in events.Where(c => c.Parent.Parent.Parent == service)) { eventsVM.Items.Add(new InnerPanelItem { Product = @event.As<IProductElement>(), Text = @event.InstanceName }); } } this.SetPanel(position, new LogicalView(new LogicalViewModel(solutionBuilderModel, eventsVM))); }
private void CreateEndpointsUseCasePanel(IApplication application, ISolutionBuilderViewModel solutionBuilderModel, IUseCase useCase, int position) { var endpointsVM = new InnerPanelViewModel(); endpointsVM.Title = "Deployed to the following Endpoints"; endpointsVM.Items.Add(new InnerPanelTitle { Product = useCase.As<IProductElement>(), Text = "Started In", ForceText = true, MenuFilters = new string[] { "Add Started By Endpoint" }, IconPath = solutionBuilderModel.FindNodeFor(useCase.Parent.As<IProductElement>()).IconPath }); foreach (var endpoint in useCase.EndpointsStartingUseCases) { endpointsVM.Items.Add(new InnerPanelItem { Product = endpoint.As<IProductElement>(), Text = endpoint.As<IProductElement>().InstanceName }); } endpointsVM.Items.Add(new InnerPanelTitle { Product = useCase.As<IProductElement>(), Text = "Goes through", ForceText = true, MenuFilters = new string[] { }, IconPath = solutionBuilderModel.FindNodeFor(useCase.Parent.As<IProductElement>()).IconPath }); foreach (var endpoint in useCase.RelatedEndpoints) { endpointsVM.Items.Add(new InnerPanelItem { Product = endpoint.As<IProductElement>(), Text = endpoint.As<IProductElement>().InstanceName }); } this.SetPanel(position, new LogicalView(new LogicalViewModel(solutionBuilderModel, endpointsVM))); }
internal void BuildDetailsForUseCase(IUseCase useCase, ISolutionBuilderViewModel solutionBuilderModel) { var application = useCase.As<IProductElement>().Root.As<IApplication>(); this.CleanDetails(); // Endpoints this.CreateEndpointsUseCasePanel(application, solutionBuilderModel, useCase, 0); // Components this.CreateComponentsForUseCasePanel(solutionBuilderModel, useCase, 1); // Commands this.CreateCommandsForUseCasePanel(solutionBuilderModel, useCase, 2); // Events this.CreateEventsForUseCasePanel(solutionBuilderModel, useCase, 3); }