Search in sources :

Example 1 with ProjectDeallocation

use of io.imunity.furms.domain.project_allocation_installation.ProjectDeallocation in project furms by unity-idm.

the class ProjectAllocationInstallationDatabaseRepositoryTest method shouldCreateProjectDeallocation.

@Test
void shouldCreateProjectDeallocation() {
    // given
    CorrelationId correlationId = new CorrelationId(UUID.randomUUID().toString());
    ProjectDeallocation request = ProjectDeallocation.builder().correlationId(new CorrelationId(correlationId.id)).siteId(siteId.toString()).projectAllocationId(projectAllocationId.toString()).status(ProjectDeallocationStatus.PENDING).build();
    // when
    String id = entityDatabaseRepository.create(request);
    // then
    ProjectDeallocationEntity deallocation = deallocationRepository.findAll().iterator().next();
    assertThat(deallocation.getId().toString()).isEqualTo(id);
    assertThat(deallocation.correlationId.toString()).isEqualTo(correlationId.id);
    assertThat(deallocation.status).isEqualTo(ProjectDeallocationStatus.PENDING.getPersistentId());
}
Also used : ProjectDeallocation(io.imunity.furms.domain.project_allocation_installation.ProjectDeallocation) CorrelationId(io.imunity.furms.domain.site_agent.CorrelationId) DBIntegrationTest(io.imunity.furms.db.DBIntegrationTest) Test(org.junit.jupiter.api.Test) SpringBootTest(org.springframework.boot.test.context.SpringBootTest)

Example 2 with ProjectDeallocation

use of io.imunity.furms.domain.project_allocation_installation.ProjectDeallocation in project furms by unity-idm.

the class ProjectAllocationComponent method createCommunityGrid.

private Grid<ProjectAllocationGridModel> createCommunityGrid() {
    Grid<ProjectAllocationGridModel> grid = new DenseGrid<>(ProjectAllocationGridModel.class);
    grid.addComponentColumn(model -> {
        Icon icon = grid.isDetailsVisible(model) ? ANGLE_DOWN.create() : ANGLE_RIGHT.create();
        return new Div(icon, new Text(model.siteName));
    }).setHeader(getTranslation("view.community-admin.project-allocation.grid.column.1")).setSortable(true);
    grid.addComponentColumn(model -> {
        if (hasTerminalStatus(model))
            return new RouterLink(model.name, ProjectAllocationFormView.class, model.id);
        return new Text(model.name);
    }).setHeader(getTranslation("view.community-admin.project-allocation.grid.column.2")).setSortable(true).setComparator(model -> model.name.toLowerCase());
    grid.addColumn(model -> model.resourceTypeName).setHeader(getTranslation("view.community-admin.project-allocation.grid.column.3")).setSortable(true);
    grid.addColumn(model -> model.amountWithUnit).setHeader(getTranslation("view.community-admin.project-allocation.grid.column.4")).setSortable(true).setComparator(comparing(c -> c.amountWithUnit.amount));
    grid.addColumn(model -> model.consumedWithUnit).setHeader(getTranslation("view.community-admin.project-allocation.grid.column.5")).setSortable(true).setComparator(comparing(c -> c.consumedWithUnit.amount));
    grid.addColumn(model -> model.remainingWithUnit).setHeader(getTranslation("view.community-admin.project-allocation.grid.column.6")).setSortable(true).setComparator(comparing(c -> c.remainingWithUnit.amount));
    grid.addComponentColumn(c -> {
        Optional<ProjectAllocationInstallation> projectAllocationInstallations = projectDataSnapshot.getAllocation(c.id);
        Optional<ProjectDeallocation> deallocation = projectDataSnapshot.getDeallocationStatus(c.id);
        if (deallocation.isPresent()) {
            int statusId = deallocation.get().status.getPersistentId();
            return new StatusLayout(getTranslation("view.community-admin.project-allocation.deallocation-status." + statusId), deallocation.flatMap(x -> x.errorMessage).map(x -> x.message).orElse(null), getContent());
        }
        return projectAllocationInstallations.map(installation -> {
            final int statusId = installation.status.getPersistentId();
            return new StatusLayout(getTranslation("view.community-admin.project-allocation.status." + statusId), installation.errorMessage.map(x -> x.message).orElse(null), getContent());
        }).orElseGet(StatusLayout::new);
    }).setHeader(getTranslation("view.community-admin.project-allocation.grid.column.7")).setSortable(true);
    grid.addComponentColumn(model -> new ResourceProgressBar(model.amountWithUnit.amount, model.consumedWithUnit.amount, 0)).setHeader(getTranslation("view.community-admin.project-allocation.grid.column.8")).setTextAlign(ColumnTextAlign.CENTER);
    grid.addComponentColumn(this::createLastColumnContent).setHeader(getTranslation("view.community-admin.project-allocation.grid.column.9")).setTextAlign(ColumnTextAlign.END);
    grid.setItemDetailsRenderer(new ComponentRenderer<>(x -> new Div(AllocationDetailsComponentFactory.create(x.creationTime, x.validFrom, x.validTo), AllocationDetailsComponentFactory.create(projectDataSnapshot.getChunks(x.id), x.amountWithUnit.unit))));
    grid.setSelectionMode(Grid.SelectionMode.NONE);
    return grid;
}
Also used : VaadinExceptionHandler.handleExceptions(io.imunity.furms.ui.utils.VaadinExceptionHandler.handleExceptions) ComponentRenderer(com.vaadin.flow.data.renderer.ComponentRenderer) ResourceGetter.getCurrentResourceId(io.imunity.furms.ui.utils.ResourceGetter.getCurrentResourceId) Component(com.vaadin.flow.component.Component) Composite(com.vaadin.flow.component.Composite) NotificationUtils.showErrorNotification(io.imunity.furms.ui.utils.NotificationUtils.showErrorNotification) Div(com.vaadin.flow.component.html.Div) FurmsDialog(io.imunity.furms.ui.components.FurmsDialog) MenuButton(io.imunity.furms.ui.components.MenuButton) Supplier(java.util.function.Supplier) REFRESH(com.vaadin.flow.component.icon.VaadinIcon.REFRESH) ProjectAllocationInstallation(io.imunity.furms.domain.project_allocation_installation.ProjectAllocationInstallation) DenseGrid(io.imunity.furms.ui.components.DenseGrid) ProjectAllocationService(io.imunity.furms.api.project_allocation.ProjectAllocationService) Map(java.util.Map) RouterLink(com.vaadin.flow.router.RouterLink) ProjectDeallocationStatus(io.imunity.furms.domain.project_allocation_installation.ProjectDeallocationStatus) SPLINE_CHART(com.vaadin.flow.component.icon.VaadinIcon.SPLINE_CHART) UI(com.vaadin.flow.component.UI) ANGLE_RIGHT(com.vaadin.flow.component.icon.VaadinIcon.ANGLE_RIGHT) Comparator.comparing(java.util.Comparator.comparing) Icon(com.vaadin.flow.component.icon.Icon) QueryParameters(com.vaadin.flow.router.QueryParameters) Text(com.vaadin.flow.component.Text) AllocationDetailsComponentFactory(io.imunity.furms.ui.components.AllocationDetailsComponentFactory) Grid(com.vaadin.flow.component.grid.Grid) RemovalOfConsumedProjectAllocationIsFirbiddenException(io.imunity.furms.api.validation.exceptions.RemovalOfConsumedProjectAllocationIsFirbiddenException) TRASH(com.vaadin.flow.component.icon.VaadinIcon.TRASH) EDIT(com.vaadin.flow.component.icon.VaadinIcon.EDIT) MenuItem(com.vaadin.flow.component.contextmenu.MenuItem) RouterGridLink(io.imunity.furms.ui.components.RouterGridLink) GridActionMenu(io.imunity.furms.ui.components.GridActionMenu) GridActionsButtonLayout(io.imunity.furms.ui.components.GridActionsButtonLayout) ResourceProgressBar(io.imunity.furms.ui.components.ResourceProgressBar) ANGLE_DOWN(com.vaadin.flow.component.icon.VaadinIcon.ANGLE_DOWN) Button(com.vaadin.flow.component.button.Button) List(java.util.List) Collectors.toList(java.util.stream.Collectors.toList) ProjectDeallocation(io.imunity.furms.domain.project_allocation_installation.ProjectDeallocation) ColumnTextAlign(com.vaadin.flow.component.grid.ColumnTextAlign) StatusLayout(io.imunity.furms.ui.components.StatusLayout) ProjectService(io.imunity.furms.api.projects.ProjectService) ProjectAllocationDataSnapshot(io.imunity.furms.ui.project_allocation.ProjectAllocationDataSnapshot) Optional(java.util.Optional) Dialog(com.vaadin.flow.component.dialog.Dialog) Collections(java.util.Collections) ViewHeaderLayout(io.imunity.furms.ui.components.ViewHeaderLayout) DenseGrid(io.imunity.furms.ui.components.DenseGrid) Text(com.vaadin.flow.component.Text) ResourceProgressBar(io.imunity.furms.ui.components.ResourceProgressBar) Div(com.vaadin.flow.component.html.Div) RouterLink(com.vaadin.flow.router.RouterLink) ProjectAllocationInstallation(io.imunity.furms.domain.project_allocation_installation.ProjectAllocationInstallation) ProjectDeallocation(io.imunity.furms.domain.project_allocation_installation.ProjectDeallocation) StatusLayout(io.imunity.furms.ui.components.StatusLayout) Icon(com.vaadin.flow.component.icon.Icon)

Example 3 with ProjectDeallocation

use of io.imunity.furms.domain.project_allocation_installation.ProjectDeallocation in project furms by unity-idm.

the class ResourceAllocationsView method createCommunityGrid.

private Grid<ProjectAllocationGridModel> createCommunityGrid() {
    Grid<ProjectAllocationGridModel> grid = new DenseGrid<>(ProjectAllocationGridModel.class);
    grid.addComponentColumn(allocation -> {
        Icon icon = grid.isDetailsVisible(allocation) ? ANGLE_DOWN.create() : ANGLE_RIGHT.create();
        return new Div(icon, new Label(allocation.siteName));
    }).setHeader(getTranslation("view.project-admin.resource-allocations.grid.column.1")).setSortable(true);
    grid.addColumn(model -> model.name).setHeader(getTranslation("view.project-admin.resource-allocations.grid.column.2")).setSortable(true).setComparator(model -> model.name.toLowerCase());
    grid.addColumn(model -> model.resourceTypeName).setHeader(getTranslation("view.project-admin.resource-allocations.grid.column.3")).setSortable(true);
    grid.addColumn(model -> model.amountWithUnit).setHeader(getTranslation("view.project-admin.resource-allocations.grid.column.4")).setSortable(true).setComparator(comparing(model -> model.amountWithUnit.amount));
    grid.addColumn(model -> model.consumedWithUnit).setHeader(getTranslation("view.project-admin.resource-allocations.grid.column.5")).setSortable(true).setComparator(comparing(model -> model.consumedWithUnit.amount));
    grid.addColumn(model -> model.remainingWithUnit).setHeader(getTranslation("view.project-admin.resource-allocations.grid.column.6")).setSortable(true).setComparator(comparing(model -> model.remainingWithUnit.amount));
    grid.addComponentColumn(c -> {
        Optional<ProjectAllocationInstallation> projectAllocationInstallations = projectDataSnapshot.getAllocation(c.id);
        Optional<ProjectDeallocation> deallocation = projectDataSnapshot.getDeallocationStatus(c.id);
        if (deallocation.isPresent()) {
            int statusId = deallocation.get().status.getPersistentId();
            return new StatusLayout(getTranslation("view.community-admin.project-allocation.deallocation-status." + statusId), deallocation.flatMap(x -> x.errorMessage).map(x -> x.message).orElse(null), getContent());
        }
        return projectAllocationInstallations.map(installation -> {
            final int statusId = installation.status.getPersistentId();
            return new StatusLayout(getTranslation("view.community-admin.project-allocation.status." + statusId), installation.errorMessage.map(x -> x.message).orElse(null), getContent());
        }).orElseGet(StatusLayout::new);
    }).setHeader(getTranslation("view.project-admin.resource-allocations.grid.column.7")).setSortable(true);
    grid.addComponentColumn(model -> new ResourceProgressBar(model.amountWithUnit.amount, model.consumedWithUnit.amount, projectDataSnapshot.getAlarmThreshold(model.id))).setHeader(getTranslation("view.project-admin.resource-allocations.grid.column.8")).setTextAlign(ColumnTextAlign.CENTER);
    grid.addComponentColumn(this::createLastColumnContent).setHeader(getTranslation("view.project-admin.resource-allocations.grid.column.9")).setTextAlign(ColumnTextAlign.END);
    grid.setItemDetailsRenderer(new ComponentRenderer<>(c -> AllocationDetailsComponentFactory.create(projectDataSnapshot.getChunks(c.id), c.amountWithUnit.unit)));
    grid.setSelectionMode(Grid.SelectionMode.NONE);
    return grid;
}
Also used : VaadinExceptionHandler.handleExceptions(io.imunity.furms.ui.utils.VaadinExceptionHandler.handleExceptions) ComponentRenderer(com.vaadin.flow.data.renderer.ComponentRenderer) ResourceGetter.getCurrentResourceId(io.imunity.furms.ui.utils.ResourceGetter.getCurrentResourceId) Component(com.vaadin.flow.component.Component) HorizontalLayout(com.vaadin.flow.component.orderedlayout.HorizontalLayout) Div(com.vaadin.flow.component.html.Div) Label(com.vaadin.flow.component.html.Label) MenuButton(io.imunity.furms.ui.components.MenuButton) PageTitle(io.imunity.furms.ui.components.PageTitle) Route(com.vaadin.flow.router.Route) REFRESH(com.vaadin.flow.component.icon.VaadinIcon.REFRESH) ProjectAllocationInstallation(io.imunity.furms.domain.project_allocation_installation.ProjectAllocationInstallation) DenseGrid(io.imunity.furms.ui.components.DenseGrid) ProjectAllocationService(io.imunity.furms.api.project_allocation.ProjectAllocationService) FurmsViewComponent(io.imunity.furms.ui.components.FurmsViewComponent) SPLINE_CHART(com.vaadin.flow.component.icon.VaadinIcon.SPLINE_CHART) ANGLE_RIGHT(com.vaadin.flow.component.icon.VaadinIcon.ANGLE_RIGHT) Comparator.comparing(java.util.Comparator.comparing) Icon(com.vaadin.flow.component.icon.Icon) ProjectAdminMenu(io.imunity.furms.ui.views.project.ProjectAdminMenu) AllocationDetailsComponentFactory(io.imunity.furms.ui.components.AllocationDetailsComponentFactory) Grid(com.vaadin.flow.component.grid.Grid) RouterGridLink(io.imunity.furms.ui.components.RouterGridLink) GridActionMenu(io.imunity.furms.ui.components.GridActionMenu) GridActionsButtonLayout(io.imunity.furms.ui.components.GridActionsButtonLayout) ResourceProgressBar(io.imunity.furms.ui.components.ResourceProgressBar) ANGLE_DOWN(com.vaadin.flow.component.icon.VaadinIcon.ANGLE_DOWN) List(java.util.List) Collectors.toList(java.util.stream.Collectors.toList) ProjectDeallocation(io.imunity.furms.domain.project_allocation_installation.ProjectDeallocation) AlarmService(io.imunity.furms.api.alarms.AlarmService) ColumnTextAlign(com.vaadin.flow.component.grid.ColumnTextAlign) StatusLayout(io.imunity.furms.ui.components.StatusLayout) ProjectAllocationDataSnapshot(io.imunity.furms.ui.project_allocation.ProjectAllocationDataSnapshot) Optional(java.util.Optional) ProjectAllocationResolved(io.imunity.furms.domain.project_allocation.ProjectAllocationResolved) Collections(java.util.Collections) ViewHeaderLayout(io.imunity.furms.ui.components.ViewHeaderLayout) DenseGrid(io.imunity.furms.ui.components.DenseGrid) Label(com.vaadin.flow.component.html.Label) ResourceProgressBar(io.imunity.furms.ui.components.ResourceProgressBar) Div(com.vaadin.flow.component.html.Div) ProjectAllocationInstallation(io.imunity.furms.domain.project_allocation_installation.ProjectAllocationInstallation) ProjectDeallocation(io.imunity.furms.domain.project_allocation_installation.ProjectDeallocation) StatusLayout(io.imunity.furms.ui.components.StatusLayout) Icon(com.vaadin.flow.component.icon.Icon)

Example 4 with ProjectDeallocation

use of io.imunity.furms.domain.project_allocation_installation.ProjectDeallocation in project furms by unity-idm.

the class ProjectView method createCommunityGrid.

private Grid<ProjectAllocationGridModel> createCommunityGrid() {
    Grid<ProjectAllocationGridModel> grid = new DenseGrid<>(ProjectAllocationGridModel.class);
    grid.addComponentColumn(allocation -> {
        Icon icon = grid.isDetailsVisible(allocation) ? ANGLE_DOWN.create() : ANGLE_RIGHT.create();
        return new Div(icon, new Label(allocation.siteName));
    }).setHeader(getTranslation("view.user-settings.project-allocation.grid.column.1")).setSortable(true);
    grid.addColumn(model -> model.name).setHeader(getTranslation("view.user-settings.project-allocation.grid.column.2")).setSortable(true).setComparator(model -> model.name.toLowerCase());
    grid.addColumn(model -> model.resourceTypeName).setHeader(getTranslation("view.user-settings.project-allocation.grid.column.3")).setSortable(true);
    grid.addColumn(model -> model.amountWithUnit).setHeader(getTranslation("view.user-settings.project-allocation.grid.column.4")).setSortable(true).setComparator(comparing(model -> model.amountWithUnit.amount));
    grid.addColumn(model -> model.consumedWithUnit).setHeader(getTranslation("view.user-settings.project-allocation.grid.column.5")).setSortable(true).setComparator(comparing(model -> model.consumedWithUnit.amount));
    grid.addColumn(model -> model.remainingWithUnit).setHeader(getTranslation("view.user-settings.project-allocation.grid.column.6")).setSortable(true).setComparator(comparing(model -> model.remainingWithUnit.amount));
    grid.addComponentColumn(c -> {
        Optional<ProjectAllocationInstallation> projectAllocationInstallations = projectDataSnapshot.getParent().getAllocation(c.id);
        Optional<ProjectDeallocation> deallocation = projectDataSnapshot.getParent().getDeallocationStatus(c.id);
        if (deallocation.isPresent()) {
            int statusId = deallocation.get().status.getPersistentId();
            return new StatusLayout(getTranslation("view.community-admin.project-allocation.deallocation-status." + statusId), deallocation.flatMap(x -> x.errorMessage).map(x -> x.message).orElse(null), getContent());
        }
        return projectAllocationInstallations.map(installation -> {
            final int statusId = installation.status.getPersistentId();
            return new StatusLayout(getTranslation("view.community-admin.project-allocation.status." + statusId), installation.errorMessage.map(x -> x.message).orElse(null), getContent());
        }).orElseGet(StatusLayout::new);
    }).setHeader(getTranslation("view.user-settings.project-allocation.grid.column.7")).setSortable(true);
    grid.addColumn(x -> getEnabledValue(x.id, x.accessibleForAllProjectMembers)).setHeader(getTranslation("view.user-settings.project-allocation.grid.column.8")).setSortable(true);
    grid.addComponentColumn(model -> new ResourceProgressBar(model.amountWithUnit.amount, model.consumedWithUnit.amount, projectDataSnapshot.projectAllocationDataSnapshot.getAlarmThreshold(model.id))).setHeader(getTranslation("view.user-settings.project-allocation.grid.column.9")).setTextAlign(ColumnTextAlign.CENTER);
    grid.addComponentColumn(this::createLastColumnContent).setHeader(getTranslation("view.user-settings.project-allocation.grid.column.10")).setTextAlign(ColumnTextAlign.END);
    grid.setItemDetailsRenderer(new ComponentRenderer<>(c -> AllocationDetailsComponentFactory.create(projectDataSnapshot.getParent().getChunks(c.id), c.amountWithUnit.unit)));
    grid.setSelectionMode(Grid.SelectionMode.NONE);
    return grid;
}
Also used : ComponentRenderer(com.vaadin.flow.data.renderer.ComponentRenderer) Component(com.vaadin.flow.component.Component) HorizontalLayout(com.vaadin.flow.component.orderedlayout.HorizontalLayout) Label(com.vaadin.flow.component.html.Label) MenuButton(io.imunity.furms.ui.components.MenuButton) PageTitle(io.imunity.furms.ui.components.PageTitle) BeforeEvent(com.vaadin.flow.router.BeforeEvent) ResourceAccessService(io.imunity.furms.api.resource_access.ResourceAccessService) Route(com.vaadin.flow.router.Route) GRANTED_STATUES(io.imunity.furms.domain.resource_access.AccessStatus.GRANTED_STATUES) DenseGrid(io.imunity.furms.ui.components.DenseGrid) Collectors.toMap(java.util.stream.Collectors.toMap) Map(java.util.Map) ANGLE_RIGHT(com.vaadin.flow.component.icon.VaadinIcon.ANGLE_RIGHT) AllocationDetailsComponentFactory(io.imunity.furms.ui.components.AllocationDetailsComponentFactory) UserGrant(io.imunity.furms.domain.resource_access.UserGrant) RouterGridLink(io.imunity.furms.ui.components.RouterGridLink) ResourceProgressBar(io.imunity.furms.ui.components.ResourceProgressBar) BreadCrumbParameter(io.imunity.furms.ui.components.layout.BreadCrumbParameter) ANGLE_DOWN(com.vaadin.flow.component.icon.VaadinIcon.ANGLE_DOWN) OptionalParameter(com.vaadin.flow.router.OptionalParameter) List(java.util.List) AlarmService(io.imunity.furms.api.alarms.AlarmService) ColumnTextAlign(com.vaadin.flow.component.grid.ColumnTextAlign) StatusLayout(io.imunity.furms.ui.components.StatusLayout) Function.identity(java.util.function.Function.identity) Optional(java.util.Optional) UserWithoutFenixIdValidationError(io.imunity.furms.api.validation.exceptions.UserWithoutFenixIdValidationError) ProjectAllocationResolved(io.imunity.furms.domain.project_allocation.ProjectAllocationResolved) ViewHeaderLayout(io.imunity.furms.ui.components.ViewHeaderLayout) VaadinExceptionHandler.handleExceptions(io.imunity.furms.ui.utils.VaadinExceptionHandler.handleExceptions) Project(io.imunity.furms.domain.projects.Project) NotificationUtils.showErrorNotification(io.imunity.furms.ui.utils.NotificationUtils.showErrorNotification) Div(com.vaadin.flow.component.html.Div) REFRESH(com.vaadin.flow.component.icon.VaadinIcon.REFRESH) ProjectAllocationInstallation(io.imunity.furms.domain.project_allocation_installation.ProjectAllocationInstallation) ProjectAllocationService(io.imunity.furms.api.project_allocation.ProjectAllocationService) FurmsViewComponent(io.imunity.furms.ui.components.FurmsViewComponent) SPLINE_CHART(com.vaadin.flow.component.icon.VaadinIcon.SPLINE_CHART) UserSettingsMenu(io.imunity.furms.ui.views.user_settings.UserSettingsMenu) Comparator.comparing(java.util.Comparator.comparing) Icon(com.vaadin.flow.component.icon.Icon) Grid(com.vaadin.flow.component.grid.Grid) GridActionMenu(io.imunity.furms.ui.components.GridActionMenu) GridActionsButtonLayout(io.imunity.furms.ui.components.GridActionsButtonLayout) Collectors.toList(java.util.stream.Collectors.toList) ProjectDeallocation(io.imunity.furms.domain.project_allocation_installation.ProjectDeallocation) ProjectService(io.imunity.furms.api.projects.ProjectService) ProjectAllocationDataSnapshot(io.imunity.furms.ui.project_allocation.ProjectAllocationDataSnapshot) Collections(java.util.Collections) DenseGrid(io.imunity.furms.ui.components.DenseGrid) Label(com.vaadin.flow.component.html.Label) ResourceProgressBar(io.imunity.furms.ui.components.ResourceProgressBar) Div(com.vaadin.flow.component.html.Div) ProjectAllocationInstallation(io.imunity.furms.domain.project_allocation_installation.ProjectAllocationInstallation) ProjectDeallocation(io.imunity.furms.domain.project_allocation_installation.ProjectDeallocation) StatusLayout(io.imunity.furms.ui.components.StatusLayout) Icon(com.vaadin.flow.component.icon.Icon)

Example 5 with ProjectDeallocation

use of io.imunity.furms.domain.project_allocation_installation.ProjectDeallocation in project furms by unity-idm.

the class ProjectAllocationServiceValidator method assertStatusIsInTerminalState.

private void assertStatusIsInTerminalState(ProjectAllocation projectAllocation) {
    ProjectAllocationInstallation projectAllocationInstallation = projectAllocationInstallationRepository.findByProjectAllocationId(projectAllocation.id);
    Optional<ProjectDeallocation> deallocation = projectAllocationInstallationRepository.findDeallocationByProjectAllocationId(projectAllocation.id);
    if (!projectAllocationInstallation.status.isTerminal() || deallocation.isPresent())
        throw new ProjectAllocationIsNotInTerminalStateException(projectAllocation.id);
}
Also used : ProjectAllocationInstallation(io.imunity.furms.domain.project_allocation_installation.ProjectAllocationInstallation) ProjectAllocationIsNotInTerminalStateException(io.imunity.furms.api.validation.exceptions.ProjectAllocationIsNotInTerminalStateException) ProjectDeallocation(io.imunity.furms.domain.project_allocation_installation.ProjectDeallocation)

Aggregations

ProjectDeallocation (io.imunity.furms.domain.project_allocation_installation.ProjectDeallocation)7 ProjectAllocationInstallation (io.imunity.furms.domain.project_allocation_installation.ProjectAllocationInstallation)4 Component (com.vaadin.flow.component.Component)3 ColumnTextAlign (com.vaadin.flow.component.grid.ColumnTextAlign)3 Grid (com.vaadin.flow.component.grid.Grid)3 Div (com.vaadin.flow.component.html.Div)3 Icon (com.vaadin.flow.component.icon.Icon)3 ANGLE_DOWN (com.vaadin.flow.component.icon.VaadinIcon.ANGLE_DOWN)3 ANGLE_RIGHT (com.vaadin.flow.component.icon.VaadinIcon.ANGLE_RIGHT)3 REFRESH (com.vaadin.flow.component.icon.VaadinIcon.REFRESH)3 SPLINE_CHART (com.vaadin.flow.component.icon.VaadinIcon.SPLINE_CHART)3 ComponentRenderer (com.vaadin.flow.data.renderer.ComponentRenderer)3 ProjectAllocationService (io.imunity.furms.api.project_allocation.ProjectAllocationService)3 AllocationDetailsComponentFactory (io.imunity.furms.ui.components.AllocationDetailsComponentFactory)3 DenseGrid (io.imunity.furms.ui.components.DenseGrid)3 GridActionMenu (io.imunity.furms.ui.components.GridActionMenu)3 GridActionsButtonLayout (io.imunity.furms.ui.components.GridActionsButtonLayout)3 MenuButton (io.imunity.furms.ui.components.MenuButton)3 ResourceProgressBar (io.imunity.furms.ui.components.ResourceProgressBar)3 RouterGridLink (io.imunity.furms.ui.components.RouterGridLink)3