CalDavSynchronizer.DataAccess.WebDavDataAccess.UriHelper.AlignServerUrl C# (CSharp) Метод

AlignServerUrl() публичный статический Метод

public static AlignServerUrl ( Uri configuredServerUrl, WebResourceName referenceResourceNameOrNull ) : Uri
configuredServerUrl System.Uri
referenceResourceNameOrNull WebResourceName
Результат System.Uri
      public static Uri AlignServerUrl (Uri configuredServerUrl, WebResourceName referenceResourceNameOrNull)
      {
        if (referenceResourceNameOrNull != null)
        {
          var filename = Path.GetFileName (referenceResourceNameOrNull.OriginalAbsolutePath);
          if (!string.IsNullOrEmpty (filename))
          {
            var filenameIndex = referenceResourceNameOrNull.OriginalAbsolutePath.LastIndexOf (filename);
            if (filenameIndex != -1)
            {
              var resourcePath = referenceResourceNameOrNull.OriginalAbsolutePath.Remove (filenameIndex);
              var newUri = new Uri (configuredServerUrl, resourcePath);

              // Only if new aligned Uri has a different encoded AbsolutePath but is identical when decoded return newUri
              // else we assume filename truncation didn't work and return the original configuredServerUrl
              if (newUri.AbsolutePath != configuredServerUrl.AbsolutePath)
              {
                if (DecodeUrlString (newUri.AbsolutePath) == DecodeUrlString (configuredServerUrl.AbsolutePath))
                {
                  return newUri;
                }
                s_logger.DebugFormat ("Aligned decoded resource uri path '{0}' different from server uri '{1}'", newUri.AbsolutePath, configuredServerUrl.AbsolutePath);
              }
            }
          }
        }
        return configuredServerUrl;
      }