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;
            }));
        }
Esempio n. 3
0
        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
                          )
                      );
            }
        }