Microsoft.Azure.Commands.DataFactories.DataFactoryCommonUtilities.ExtractNameFromJson C# (CSharp) Method

ExtractNameFromJson() public static method

public static ExtractNameFromJson ( string jsonText, string resourceType ) : string
jsonText string
resourceType string
return string
        public static string ExtractNameFromJson(string jsonText, string resourceType)
        {
            Dictionary<string, object> jsonKeyValuePairs;

            try
            {
                jsonKeyValuePairs = JsonUtilities.DeserializeJson(jsonText, true);
            }
            catch (Exception exception)
            {
                throw new JsonSerializationException(string.Format(CultureInfo.InvariantCulture, Resources.InvalidJson, exception.Message, resourceType));
            }

            const string NameTagInJson = "Name";

            foreach (var key in jsonKeyValuePairs.Keys)
            {
                if (string.Compare(NameTagInJson, key, StringComparison.OrdinalIgnoreCase) == 0)
                {
                    return (string)jsonKeyValuePairs[key];
                }
            }

            return string.Empty;
        }

Usage Example

        protected string ResolveResourceName(string rawJsonContent, string nameFromCmdletContext, string resourceType)
        {
            string nameExtractedFromJson = DataFactoryCommonUtilities.ExtractNameFromJson(rawJsonContent, resourceType);

            // Read the name from the JSON content if user didn't provide name with -Name parameter
            string resolvedResourceName = string.IsNullOrWhiteSpace(nameFromCmdletContext)
                ? nameExtractedFromJson
                : nameFromCmdletContext;

            // Show a message that if names do not match, name specified with -Name parameter will be used.
            if (string.Compare(resolvedResourceName, nameExtractedFromJson, StringComparison.OrdinalIgnoreCase) != 0)
            {
                WriteVerbose(string.Format(
                                 CultureInfo.InvariantCulture,
                                 Resources.ExtractedNameFromJsonMismatchWarning,
                                 resourceType,
                                 resolvedResourceName,
                                 nameExtractedFromJson));
            }

            return(resolvedResourceName);
        }