/// <summary>
        /// Returns the item content item defautl Url usign the location service
        /// </summary>
        /// <param name="helper">The Html helper</param>
        /// <param name="itemType">Type of the item.</param>
        /// <param name="itemProvider">The item provider.</param>
        /// <param name="itemId">The item id.</param>
        /// /// <param name="alternativeUrl">Alternative Url of the dataItem. It will be used if the default Url is not resolved</param>
        /// <returns>The default Url of the item</returns>
        public static string GetItemDefaultUrl(this HtmlHelper helper, Type itemType, string itemProvider, Guid itemId, string alternativeUrl = null)
        {
            //first we need to get an instance of the location service
            var contentService = SystemManager.GetContentLocationService();

            // use the location service to get the item location
            var defaultLocation = contentService.GetItemDefaultLocation(itemType, itemProvider, itemId);

            return(UrlHtmlHelperExtensions.GetItemDefaultUrl(helper, defaultLocation, alternativeUrl));
        }
        /// <summary>
        ///  Returns the item content item defautl Url usign given content location
        /// </summary>
        /// <param name="helper">The Html helper</param>
        /// <param name="location">The location of the item</param>
        /// <param name="alternativeUrl">Alternative Url of the dataItem. It will be used if the location is null</param>
        /// <returns>The default Url of the item</returns>
        private static string GetItemDefaultUrl(this HtmlHelper helper, IContentItemLocation location, string alternativeUrl = null)
        {
            var result = string.Empty;

            if (location != null)
            {
                result = location.ItemAbsoluteUrl;
            }
            else if (!string.IsNullOrEmpty(alternativeUrl))
            {
                result = UrlHtmlHelperExtensions.GetRelativeUrl(helper, alternativeUrl);
            }

            return(result);
        }
 /// <summary>
 /// Returns the item content item defautl Url usign the location service
 /// </summary>
 /// <param name="helper">The Html helper</param>
 /// <param name="itemType">Type of the item.</param>
 /// <param name="viewModel">The base view model</param>
 /// /// <param name="alternativeUrl">Alternative Url of the dataItem. It will be used if the default Url is not resolved</param>
 /// <returns>The default Url of the item</returns>
 public static string GetItemDefaultUrl(this HtmlHelper helper, Type itemType, ViewModelBase viewModel, string alternativeUrl = null)
 {
     return(UrlHtmlHelperExtensions.GetItemDefaultUrl(helper, itemType, viewModel.ProviderName, viewModel.Id, alternativeUrl));
 }