diff --git a/src/Blob/Controllers/BlobController.cs b/src/Blob/Controllers/BlobController.cs index eb0b405b6086df411982a53174154fc01d608e2a..f42a992984d0ab1edf50e219884c71efe6357f99 100644 --- a/src/Blob/Controllers/BlobController.cs +++ b/src/Blob/Controllers/BlobController.cs @@ -1,3 +1,4 @@ +using Coscine.Api.Blob.Util; using Coscine.ApiCommons; using Coscine.Configuration; using Coscine.Database.DataModel; @@ -66,7 +67,7 @@ namespace Coscine.Api.Blob.Controllers /// <returns> Uri </returns> public Uri GenerateId(string resourceId, string path) { - return new Uri($"https://hdl.handle.net/{_prefix}/{resourceId}@path={Uri.EscapeDataString(path)}"); + return new CustomUri($"https://hdl.handle.net/{_prefix}/{resourceId}@path={Uri.EscapeDataString(path)}"); } /// <summary> @@ -290,7 +291,7 @@ namespace Coscine.Api.Blob.Controllers } var id = GenerateId(resourceId, path); - if (!_rdfStoreConnector.HasGraph(id.AbsoluteUri)) + if (!_rdfStoreConnector.HasGraph(id)) { return StatusCode((int)HttpStatusCode.Forbidden, "No metadata set has been added for this file."); diff --git a/src/Blob/Util/CustomUri.cs b/src/Blob/Util/CustomUri.cs new file mode 100644 index 0000000000000000000000000000000000000000..1dfec1983a109c920320f1c7d8835daa3ace0666 --- /dev/null +++ b/src/Blob/Util/CustomUri.cs @@ -0,0 +1,28 @@ +using System; + +namespace Coscine.Api.Blob.Util +{ + /// <summary> + /// Adapts the returned ToString of a Uri + /// </summary> + public class CustomUri : Uri + { + /// <summary> + /// Constructs a Custom Uri + /// </summary> + /// <param name="uri"></param> + public CustomUri(string uri) : base(uri) + { + + } + + /// <summary> + /// Overwrites the ToString for returning the AbsoluteUri (for dotNetRDF) + /// </summary> + /// <returns></returns> + public override string ToString() + { + return AbsoluteUri; + } + } +}