Extend Modern UI for pnf usecase
[vid.git] / vid-webpack-master / src / app / shared / storeUtil / utils / reducersHelper.ts
index c192ece..0291a3b 100644 (file)
@@ -2,6 +2,7 @@ import * as _ from "lodash";
 import {ActionOnFirstLevel} from "./firstLevel/firstLevel.actions";
 import {ServiceInstanceActions} from "../../models/serviceInstanceActions";
 import {ServiceState} from "./main.reducer";
+import {ServiceInstance} from "../../models/serviceInstance";
 
 export function deleteFirstLevel(state: ServiceState, action: ActionOnFirstLevel,shouldUpdateServiceValidationCounter: boolean){
   let newState = _.cloneDeep(state);
@@ -28,3 +29,26 @@ function resetUpgradeStatus(newState: any, serviceUuid: string){
   newState.serviceInstance[serviceUuid].upgradedVFMSonsCounter = 0;
   newState.serviceInstance[serviceUuid].isUpgraded = false;
 }
+
+export const updateUniqueNames = (oldName: string, newName: string, serviceInstance: ServiceInstance): void => {
+  let existingNames = serviceInstance.existingNames;
+  if (!_.isNil(oldName) && oldName.toLowerCase() in existingNames) {
+    delete existingNames[oldName.toLowerCase()];
+  }
+  if (!_.isNil(newName)) {
+    existingNames[newName.toLowerCase()] = "";
+  }
+};
+
+
+export const calculateNextUniqueModelName = (nfModelName: string, serviceId: string, state: any, levelName: string): string => {
+  let counter: number = null;
+  while (true) {
+    let pattern = !_.isNil(counter) ? ("_" + counter) : "";
+    if (!_.isNil(state.serviceInstance[serviceId][levelName][nfModelName + pattern])) {
+      counter = counter ? (counter + 1) : 1;
+    } else {
+      return nfModelName + pattern;
+    }
+  }
+};