public async Task <SystemException> PutFiles(MultipartMemoryStreamProvider inFileStream, long inArticleId) { return(await Task.Run( async() => { try { foreach (HttpContent fileInfo in inFileStream.Contents) { BlogArticleFile fileData = new BlogArticleFile() { ArticleId = inArticleId, FileName = fileInfo.Headers.ContentDisposition.FileName.Replace("\"", string.Empty), FileType = fileInfo.Headers.ContentType.MediaType, FileContent = await fileInfo.ReadAsByteArrayAsync() }; _blogDBContext.BlogArticleFiles.Add(fileData); _blogDBContext.SaveChanges(); } } catch (SystemException error) { return error; } return null; })); }
public async Task <SystemException> DeleteFile(string inFileName, long inArticleId) #endif { return(await Task.Run( () => { try { #if FILES_TO_FILESYSTEM File.Delete(inBasePath + $"\\{inArticleId}\\" + inFileName); #else BlogArticleFile oldEntity = _blogDBContext. BlogArticleFiles. SingleOrDefault(record => record.ArticleId == inArticleId && record.FileName == inFileName); _blogDBContext.BlogArticleFiles.Remove(oldEntity); _blogDBContext.SaveChanges(); #endif } catch (SystemException error) { return error; } return null; })); }
public async Task <HttpResponseMessage> DownloadFile(long inArticleId, string inFileName) { try { #if FILES_TO_FILESYSTEM BlogArticleFile fileEntitie = await _fileService.ExtractFile(inArticleId, inFileName, HttpContext. Current. Server. MapPath("~/Files")); #else BlogArticleFile fileEntitie = await _fileService.ExtractFile(inArticleId, inFileName); #endif HttpResponseMessage response = new HttpResponseMessage(HttpStatusCode.OK) { Content = new ByteArrayContent(fileEntitie.FileContent) }; response.Content.Headers.ContentType = new MediaTypeHeaderValue(fileEntitie.FileType); response.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment") { FileName = fileEntitie.FileName }; return(response); } catch (System.SystemException error) { throw new HttpResponseException ( Request. CreateResponse ( HttpStatusCode.InternalServerError, error.Message ) ); } }