/// <summary>
        /// Try to execute a search, detecting if the service is available.
        /// </summary>
        /// <typeparam name="T">Type contained in the response.</typeparam>
        /// <param name="service">MDM service to use</param>
        /// <param name="search">Search to execute</param>
        /// <param name="results">Results of the search</param>
        /// <returns>true if the search worked, false otherwise.</returns>
        public static bool TrySearch <T>(this IMdmModelEntityService service, Search search, out IList <T> results)
            where T : IMdmEntity
        {
            var x = service.TrySearch <T>(search);

            results = x.Item2;
            return(x.Item1);
        }
        /// <summary>
        /// Try to execute a search, detecting if the service is available.
        /// </summary>
        /// <typeparam name="T">Type contained in the response.</typeparam>
        /// <typeparam name="TU">Target type, may be same as <see typeref="T" /></typeparam>
        /// <param name="service">MDM service to use</param>
        /// <param name="search">Search to execute</param>
        /// <param name="func">Function to transform the response into the target.</param>
        /// <param name="results">Results of the search</param>
        /// <returns>true if the search worked, false otherwise.</returns>
        public static bool TrySearch <T, TU>(this IMdmModelEntityService service, Search search, Func <T, TU> func, out IList <TU> results)
            where T : IMdmEntity
        {
            var x = service.TrySearch(search, func);

            results = x.Item2;
            return(x.Item1);
        }