Beispiel #1
0
        private Uri AssembleUrl(string path, Uri current, UrlProviderMode mode)
        {
            if (string.IsNullOrEmpty(path))
            {
                return(null);
            }

            Uri uri;

            if (current == null)
            {
                mode = UrlProviderMode.Relative; // best we can do
            }
            switch (mode)
            {
            case UrlProviderMode.Absolute:
                uri = new Uri(current?.GetLeftPart(UriPartial.Authority) + path);
                break;

            case UrlProviderMode.Relative:
            case UrlProviderMode.Auto:
                uri = new Uri(path, UriKind.Relative);
                break;

            default:
                throw new ArgumentOutOfRangeException(nameof(mode));
            }

            return(UriUtility.MediaUriFromUmbraco(uri));
        }
Beispiel #2
0
    private Uri AssembleUrl(string path, Uri current, UrlMode mode)
    {
        if (string.IsNullOrWhiteSpace(path))
        {
            throw new ArgumentException($"{nameof(path)} cannot be null or whitespace", nameof(path));
        }

        // the stored path is absolute so we just return it as is
        if (Uri.IsWellFormedUriString(path, UriKind.Absolute))
        {
            return(new Uri(path));
        }

        Uri uri;

        if (current == null)
        {
            mode = UrlMode.Relative; // best we can do
        }

        switch (mode)
        {
        case UrlMode.Absolute:
            uri = new Uri(current?.GetLeftPart(UriPartial.Authority) + path);
            break;

        case UrlMode.Relative:
        case UrlMode.Auto:
            uri = new Uri(path, UriKind.Relative);
            break;

        default:
            throw new ArgumentOutOfRangeException(nameof(mode));
        }

        return(_uriUtility.MediaUriFromUmbraco(uri));
    }