1 import * as _ from "lodash";
2 import {ConnectRelationModel} from "../../../models/graph/connectRelationModel";
3 import {Injectable} from "@angular/core";
4 import { Requirement, Capability} from "app/models";
5 import {Dictionary} from "lodash";
6 import {Match, Component, PropertyFEModel} from "app/models";
9 export class ConnectionWizardService {
11 connectRelationModel:ConnectRelationModel;
12 currentComponent:Component;
14 changedCapabilityProperties:PropertyFEModel[];
17 this.changedCapabilityProperties = [];
20 public setRelationMenuDirectiveObj = (connectRelationModel:ConnectRelationModel) => {
21 this.connectRelationModel = connectRelationModel;
22 // this.selectedCapability = rel
26 // getComponentInstanceIdOfSelectedCapability = (): string => {
27 // if(this.selectedMatch.capability){
28 // if(this.selectedMatch.isFromTo) {
29 // return this.selectedMatch.toNode;
31 // return this.selectedMatch.fromNode;
38 getOptionalRequirementsByInstanceUniqueId = (isFromTo: boolean, matchWith?:Capability): Dictionary<Requirement[]> => {
39 let requirements: Array<Requirement> = [];
40 _.forEach(this.connectRelationModel.possibleRelations, (match: Match) => {
41 if(!matchWith || match.capability.uniqueId == matchWith.uniqueId){
42 if(match.isFromTo == isFromTo){
43 requirements.push(match.requirement);
47 requirements = _.uniqBy(requirements, (req:Requirement)=>{
48 return req.ownerId + req.uniqueId + req.name;
50 return _.groupBy(requirements, 'capability');
53 getOptionalCapabilitiesByInstanceUniqueId = (isFromTo: boolean, matchWith?:Requirement): Dictionary<Capability[]> => {
54 let capabilities: Array<Capability> = [];
55 _.forEach(this.connectRelationModel.possibleRelations, (match: Match) => {
56 if(!matchWith || match.requirement.uniqueId == matchWith.uniqueId){
57 if(match.isFromTo == isFromTo){
58 capabilities.push(match.capability);
62 capabilities = _.uniqBy(capabilities, (cap:Capability)=>{
63 return cap.ownerId + cap.uniqueId + cap.name;
65 return _.groupBy(capabilities, 'type');