New Angular UI from 1806
[vid.git] / vid-webpack-master / src / app / components / vnf-popup / vnf-instance-details / vnf-instance-details.service.ts
1 import { Injectable } from '@angular/core';
2 import { isNullOrUndefined } from "util";
3 import { FormGroup } from '@angular/forms';
4 @Injectable()
5 export class VnfInstanceDetailsService {
6   isUnique(serviceInstance : any, serviceId : string, name: string, isEqualToOriginalInstanceName : boolean) : boolean {
7     const service = serviceInstance[serviceId];
8     let countInstanceName = 0;
9     let countVolumeGroupName = 0;
10     if(service){
11       if(service.instanceName === name) return false;
12       if(service.vnfs){
13         for(let key in service.vnfs){
14           if(service.vnfs[key].instanceName === name) {
15             countInstanceName++;
16             if((isEqualToOriginalInstanceName && countInstanceName > 1) || (!isEqualToOriginalInstanceName)) return false;
17           }
18           if(service.vnfs[key].vfModules){
19             for(let vfModule in service.vnfs[key].vfModules){
20               if(service.vnfs[key].vfModules[vfModule]) {
21                 for(let module in service.vnfs[key].vfModules[vfModule]){
22                   if(service.vnfs[key].vfModules[vfModule][module].instanceName === name ) {
23                     countInstanceName++;
24                     if((isEqualToOriginalInstanceName && countInstanceName > 1) || (!isEqualToOriginalInstanceName)) return false;
25                   }
26
27                   if(service.vnfs[key].vfModules[vfModule][module].volumeGroupName === name ) {
28                     countVolumeGroupName++;
29                     if((isEqualToOriginalInstanceName && countVolumeGroupName > 1) || (!isEqualToOriginalInstanceName)) return false;
30                   }
31                 }
32               }
33             }
34           }
35
36         }
37       }
38     }
39     return true;
40   }
41
42   hasApiError(controlName: string, data: Array<any>, form: FormGroup) {
43     if (!isNullOrUndefined(data)) {
44       if (!form.controls[controlName].disabled && data.length === 0) {
45         return true;
46       }
47     }
48     return false;
49   }
50
51   hasInstanceNameError(form : FormGroup) : boolean {
52     if(!isNullOrUndefined(form) && !isNullOrUndefined(form.controls['instanceName'])){
53       if (form.controls['instanceName'].touched && form.controls['instanceName'].errors && form.controls['instanceName'].errors.pattern) {
54         return true;
55       }
56     }
57     return false;
58   }
59
60   hasUniqueError(isNotUniqueInstanceName) : boolean {
61     return isNotUniqueInstanceName;
62   }
63
64 }