/* ** ** Download ** */ public virtual HttpResponseMessage Get(Document entity, HttpRequestMessage Request, object adds, String extensionName = null, Client currentClient = null, int?idHome = null) { if (!((DocumentValidation)validation).DownloadValidation(validationDictionnary, currentClient, entity)) { throw new ManahostValidationException(validationDictionnary); } if (extensionName != null) { entity.Url = DocumentUtils.GetNewPathFileName(DocumentUtils.GetFullDocumentUrl(entity.Url), extensionName, true); entity.Title = Path.GetFileNameWithoutExtension(entity.Title) + "_" + extensionName + Path.GetExtension(entity.Title); } try { HttpResponseMessage response = new HttpResponseMessage(); Stream result = DocumentUtils.GetDocumentStream((Boolean)entity.IsPrivate, entity.Url, DocumentUtils.GetEncryptionPassword(HomeRepository, currentClient)); entity.MimeType = DocumentUtils.GetMimeType(entity.Title); response.StatusCode = HttpStatusCode.OK; response.Content = new StreamContent(result); response.Content.Headers.ContentType = new MediaTypeHeaderValue(entity.MimeType); response.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment") { FileName = entity.Title }; return(response); } catch (IOException) { validationDictionnary.AddModelError(String.Format(GenericNames.MODEL_STATE_FORMAT, TypeOfName.GetNameFromType <Document>(), "Download"), GenericError.FILE_NOT_FOUND); throw new ManahostValidationException(validationDictionnary); } }