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
25 getOptionalRequirementsByInstanceUniqueId = (isFromTo: boolean, matchWith?:Capability): Dictionary<Requirement[]> => {
26 let requirements: Array<Requirement> = [];
27 _.forEach(this.connectRelationModel.possibleRelations, (match: Match) => {
28 if(!matchWith || match.capability.uniqueId == matchWith.uniqueId){
29 if(match.isFromTo == isFromTo){
30 requirements.push(match.requirement);
34 requirements = _.uniqBy(requirements, (req:Requirement)=>{
35 return req.ownerId + req.uniqueId + req.name;
37 return _.groupBy(requirements, 'capability');
40 getOptionalCapabilitiesByInstanceUniqueId = (isFromTo: boolean, matchWith?:Requirement): Dictionary<Capability[]> => {
41 let capabilities: Array<Capability> = [];
42 _.forEach(this.connectRelationModel.possibleRelations, (match: Match) => {
43 if(!matchWith || match.requirement.uniqueId == matchWith.uniqueId){
44 if(match.isFromTo == isFromTo){
45 capabilities.push(match.capability);
49 capabilities = _.uniqBy(capabilities, (cap:Capability)=>{
50 return cap.ownerId + cap.uniqueId + cap.name;
52 return _.groupBy(capabilities, 'type');