public static getViewPathUrl()

in src/Sfx/App/Scripts/Utils/Utils.ts [91:187]


        public static getViewPathUrl(healthEval: IRawHealthEvaluation, data: DataService, parentUrl: string = ""): {viewPathUrl: string, displayName: string } {
            let viewPathUrl = "";
            let replaceText = "";

            switch (healthEval.Kind) {
                case "Nodes" : {
                    viewPathUrl = data.routes.getNodesViewPath();
                    break;
                }
                case "Node" : {
                    let nodeName = healthEval["NodeName"];
                    viewPathUrl = data.routes.getNodeViewPath(nodeName);
                    replaceText = nodeName;
                    break;
                }
                case "Applications" : {
                    viewPathUrl = data.routes.getAppsViewPath();
                    break;
                }
                case "Application" : {
                    let applicationName = healthEval["ApplicationName"];
                    let appName = applicationName.replace("fabric:/", ""); //remove fabric:/

                    let app = data.apps.find(appName);
                    if (app) {
                        let appType = app.raw.TypeName;
                        viewPathUrl += `#/apptype/${data.routes.doubleEncode(appType)}/app/${data.routes.doubleEncode(appName)}`;
                        replaceText = applicationName;
                    }
                    break;
                }
                case "Service" : {
                    let exactServiceName = healthEval["ServiceName"].replace("fabric:/", "");
                    //Handle system services slightly different by setting their exact path
                    if (healthEval["ServiceName"].startsWith("fabric:/System")) {
                        viewPathUrl = `#/apptype/System/app/System/service/${data.routes.doubleEncode(exactServiceName)}`;
                    }else {
                        parentUrl += `/service/${data.routes.doubleEncode(exactServiceName)}`;
                        viewPathUrl = parentUrl;
                    }
                    replaceText = "fabric:/" + exactServiceName;
                    break;
                }
                case "Partition" : {
                    let partitionId = healthEval["PartitionId"];
                    parentUrl += `/partition/${data.routes.doubleEncode(partitionId)}`;
                    replaceText = partitionId;
                    viewPathUrl = parentUrl;
                    break;
                }
                case "Replica" : {
                    let replicaId = healthEval["ReplicaOrInstanceId"];
                    parentUrl += `/replica/${data.routes.doubleEncode(replicaId)}`;
                    replaceText = replicaId;
                    viewPathUrl = parentUrl;
                    break;
                }
                case "Event" : {
                    if (parentUrl) {
                        viewPathUrl = parentUrl;
                    }
                    break;
                }

                case "DeployedApplication" : {
                    const nodeName = healthEval["NodeName"];
                    const applicationName = healthEval["Name"];
                    const appName = applicationName.replace("fabric:/", "");

                    viewPathUrl += `#/node/${data.routes.doubleEncode(nodeName)}/deployedapp/${data.routes.doubleEncode(appName)}`;
                    replaceText = applicationName;
                    break;
                }

                case "DeployedServicePackage" : {
                    const serviceManifestName = healthEval["ServiceManifestName"];
                    const activationId = healthEval["ServicePackageActivationId"];
                    const activationIdUrlInfo =  activationId ? "activationid/" + data.routes.doubleEncode(activationId) : "";
                    viewPathUrl = parentUrl + `/deployedservice/${activationIdUrlInfo}${serviceManifestName}`;
                    replaceText = serviceManifestName;
                    break;
                }

                // case: "DeployedServicePackages"
                // case: "Services"
                // case: "Partitions"
                // case: "Replicas"
                default: {
                    viewPathUrl = parentUrl;
                    break;
                }
            }
            if (replaceText.length > 0) {
                healthEval.Description = Utils.injectLink(healthEval.Description, replaceText, viewPathUrl, replaceText);
            }
            return {viewPathUrl: viewPathUrl, displayName: replaceText };
        }