public NotPresentError(Structures.Internal.Description description) : base("Unable to find requested file, though records exist") { this.Description = description; }
/// <summary> /// Retrieves details about the identified record from the server. /// </summary> /// <param name='uid'> /// The UID of the record to be read. /// </param> /// <param name='read_key'> /// A token that grants permission to read the record. /// </param> /// <param name='timeout'> /// The number of seconds to wait for a response; defaults to 2.5. /// </param> /// <exception cref="System.Exception"> /// Some unknown problem occurred. /// </exception> /// <exception cref="Exceptions.ProtocolError"> /// A problem occurred related to the transport protocol. /// </exception> /// <exception cref="Exceptions.UrlError"> /// A problem occurred related to the network environment. /// </exception> /// <exception cref="Exceptions.NotFoundError"> /// The requested record was not found. /// </exception> /// <exception cref="Exceptions.NotPresentError"> /// The requested record was found, but no content is available. /// </exception> /// <exception cref="Exceptions.NotAuthorisedError"> /// The requested record was not accessible with the given credentials. /// </exception> public Structures.Internal.Description Describe(string uid, string read_key, float timeout=2.5f) { Jayrock.Json.JsonObject describe = new Jayrock.Json.JsonObject(); describe.Add("uid", uid); Jayrock.Json.JsonObject keys = new Jayrock.Json.JsonObject(); keys.Add("read", read_key); describe.Add("keys", keys); System.Net.HttpWebRequest request = Libraries.Communication.AssembleRequest(this.server.GetHost() + Libraries.Communication.SERVER_DESCRIBE, describe); Structures.Internal.Description description = new Structures.Internal.Description(Libraries.Communication.SendRequest(request, timeout:timeout).ToDictionary()); if(!description.Physical.Exists){ throw new Exceptions.NotPresentError(description); } return description; }