示例#1
0
        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());
        }
示例#2
0
        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;
 }
示例#4
0
        public List <DocumentVersionModel> GetDocumentVersions(int documentId)
        {
            var versions = DocumentVersionService.GetAll(documentId).ToList();

            return(versions.Select(Mapper.Map <DocumentVersionModel>).ToList());
        }