// // Copyright (c) Microsoft. All rights reserved. // Licensed under the MIT license. See LICENSE file in the project root for full license information. using System; using Microsoft.SqlTools.ResourceProvider.Core.Authentication; namespace Microsoft.SqlTools.ResourceProvider.Core { /// /// Utilities used by resource provider related code /// public static class CommonUtil { private const int KeyValueNameLength = 1024; // 1024 should be enough for registry key value name. //******************************************************************************************** /// /// Throw an exception if the object is null. /// /// the object to check /// the variable or parameter name to display //******************************************************************************************** public static void CheckForNull(Object var, string varName) { if (var == null) { throw new ArgumentNullException(varName); } } //******************************************************************************************** /// /// Throw an exception if a string is null or empty. /// /// string to check /// the variable or parameter name to display //******************************************************************************************** public static void CheckStringForNullOrEmpty(string stringVar, string stringVarName) { CheckStringForNullOrEmpty(stringVar, stringVarName, false); } //******************************************************************************************** /// /// Throw an exception if a string is null or empty. /// /// string to check /// the variable or parameter name to display /// If true, will trim the string after it is determined not to be null //******************************************************************************************** public static void CheckStringForNullOrEmpty(string stringVar, string stringVarName, bool trim) { CheckForNull(stringVar, stringVarName); if (trim == true) { stringVar = stringVar.Trim(); } if (stringVar.Length == 0) { throw new ArgumentException("EmptyStringNotAllowed", stringVarName); } } public static bool SameString(string value1, string value2) { return (value1 == null && value2 == null) || (value2 != null && value2.Equals(value1)); } public static bool SameUri(Uri value1, Uri value2) { return (value1 == null && value2 == null) || (value2 != null && value2.Equals(value1)); } public static bool SameSubscriptionIdentifier(IAzureSubscriptionIdentifier value1, IAzureSubscriptionIdentifier value2) { return (value1 == null && value2 == null) || (value2 != null && value2.Equals(value1)); } public static bool SameUserAccount(IAzureUserAccount value1, IAzureUserAccount value2) { return (value1 == null && value2 == null) || (value2 != null && value2.Equals(value1)); } public static string GetExceptionMessage(Exception e) { string message; #if DEBUG string nl2 = Environment.NewLine + Environment.NewLine; message = e.Message + nl2 + "DEBUG ONLY:" + nl2 + e.ToString(); #else message = e.Message; #endif return message; } } }