re base code
[sdc.git] / catalog-ui / src / app / ng2 / pages / connection-wizard / connection-wizard.service.ts
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";
7
8 @Injectable()
9 export class ConnectionWizardService {
10     
11     connectRelationModel:ConnectRelationModel;
12     currentComponent:Component;
13     selectedMatch:Match;
14     changedCapabilityProperties:PropertyFEModel[];
15
16     constructor() {
17         this.changedCapabilityProperties = [];
18     }
19
20     public setRelationMenuDirectiveObj = (connectRelationModel:ConnectRelationModel) => {
21         this.connectRelationModel = connectRelationModel;
22         // this.selectedCapability = rel
23     }
24
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);
31                 }
32             }
33         });
34         requirements = _.uniqBy(requirements, (req:Requirement)=>{
35             return req.ownerId + req.uniqueId + req.name;
36         });
37         return _.groupBy(requirements, 'capability');
38     }
39
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);
46                 }
47             }
48         });
49         capabilities = _.uniqBy(capabilities, (cap:Capability)=>{
50             return cap.ownerId + cap.uniqueId + cap.name;
51         });
52         return _.groupBy(capabilities, 'type');
53     }
54 }
55