public async Task <IHttpActionResult> Create(int documentId) { if (documentId <= 0) { throw new DocManagerException("Document Is should be greater than zero."); } if (HttpContext.Current.Request.Files.Count == 0) { throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType); } HttpPostedFile postedFile = HttpContext.Current.Request.Files[0]; //if (_supportedMediaTypes.All(e => postedFile.ContentType != e)) //{ // throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType); //} byte[] bytes; using (BinaryReader br = new BinaryReader(postedFile.InputStream)) { bytes = br.ReadBytes(postedFile.ContentLength); } var fileBlob = new FileBlob() { Content = bytes, Details = postedFile.ContentType }; var documentVersion = new DocumentVersion() { Document = new Document() { Id = documentId }, Name = postedFile.FileName, }; await DocumentVersionService.CreateDocumentVersion(User.Identity.Name, documentVersion, fileBlob); return(Ok()); }
public async Task <HttpResponseMessage> DownloadDocumentVersion(int documentId, int versionId) { var version = await DocumentVersionService.GetDocumentVersion(versionId); byte[] fileBytes = version.FileBlob.Content;//"C:\\1.doc" var result = new HttpResponseMessage(HttpStatusCode.OK) { Content = new StreamContent(new MemoryStream(fileBytes)) }; result.Content.Headers.ContentType = new MediaTypeHeaderValue(version.FileBlob.Details);//pdf result.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment") { FileName = version.Name //"1.doc" }; return(result); }
/// <summary> /// Receives the Service via DI. /// </summary> public DocumentVersionController(DocumentVersionService documentVersionService) { _documentVersionService = documentVersionService; }
public List <DocumentVersionModel> GetDocumentVersions(int documentId) { var versions = DocumentVersionService.GetAll(documentId).ToList(); return(versions.Select(Mapper.Map <DocumentVersionModel>).ToList()); }