Exemple #1
0
        internal static string ToUrl(this object value, Uri serviceAddress, string operationType, bool responseRequired = true)
        {
            var builder = new UriBuilder(serviceAddress);

            switch (operationType)
            {
            case OperationType.Post:
                builder = (responseRequired
                        ? builder.AddPath(RestServiceMetadata.Path.PostWithResponse)
                        : builder.AddPath(RestServiceMetadata.Path.Post))
                          .AddQuery(UrlSerializer.FromType(value.GetType()).QueryParams);
                break;

            case OperationType.Put:
                builder = (responseRequired
                        ? builder.AddPath(RestServiceMetadata.Path.PutWithResponse)
                        : builder.AddPath(RestServiceMetadata.Path.Put))
                          .AddQuery(UrlSerializer.FromType(value.GetType()).QueryParams);
                break;

            case OperationType.Get:
                builder = (responseRequired
                        ? builder.AddPath(RestServiceMetadata.Path.GetWithResponse)
                        : builder.AddPath(RestServiceMetadata.Path.Get))
                          .AddQuery(UrlSerializer.FromValue(value).QueryParams);
                break;

            case OperationType.Delete:
                builder = (responseRequired
                        ? builder.AddPath(RestServiceMetadata.Path.DeleteWithResponse)
                        : builder.AddPath(RestServiceMetadata.Path.Delete))
                          .AddQuery(UrlSerializer.FromValue(value).QueryParams);
                break;

            default:
                string errorMessage = string.Format(
                    "OperationType {0} with void return is absent", operationType);
                throw Error.InvalidOperation(errorMessage);
            }
            return(builder.Uri.ToString());
        }
Exemple #2
0
 public void FromType_NullQueryParams_ThrowException()
 {
     Assert.Throws(typeof(ArgumentNullException), () => UrlSerializer.FromType(null));
 }