public IHttpActionResult TryExportNewspapers(ExportNewspapersModel model)
        {
            if (CurrentUser == null || !CurrentUser.IsAdmin)
            {
                return(Unauthorized());
            }

            try
            {
                var result = new HttpResponseMessage(HttpStatusCode.OK)
                {
                    Content = new ByteArrayContent(ExportHelper.ExportNewspapers(model, DataContext))
                };
                result.Content.Headers.ContentDisposition =
                    new System.Net.Http.Headers.ContentDispositionHeaderValue("attachment")
                {
                    FileName = "exp-" + DateTime.Now + "-newspapers" + (model.IsXml ? ".xml" : ".txt")
                };
                result.Content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream");

                var response = ResponseMessage(result);

                return(response);
            }
            catch (Exception e)
            {
                return(InternalServerError(e));
            }
        }
 public FileResult TryExportNewspapers(ExportNewspapersModel model)
 {
     if (model.IsXml)
     {
         return(File(ExportHelper.ExportNewspapers(model, DataContext), System.Net.Mime.MediaTypeNames.Application.Octet,
                     "exp-" + DateTime.Now + "-newspapers.xml"));
     }
     else
     {
         return(File(ExportHelper.ExportNewspapers(model, DataContext), System.Net.Mime.MediaTypeNames.Application.Octet,
                     "exp-" + DateTime.Now + "-newspapers.txt"));
     }
 }
Exemplo n.º 3
0
        public static byte[] ExportNewspapers(ExportNewspapersModel model, LibraryDataContext dataContext)
        {
            if (model.IsXml)
            {
                XmlSerializer serializer = new XmlSerializer(typeof(List <NewspaperModel>));
                MemoryStream  stream     = new MemoryStream();
                serializer.Serialize(stream, model.Newspapers.Where(np => np.Selected)
                                     .Select(
                                         snp => new NewspaperModel(dataContext.Newspapers.First(newspaper => newspaper.Id == snp.Id)))
                                     .ToList());
                return(stream.ToArray());
            }
            else
            {
                MemoryStream stream = new MemoryStream();
                StreamWriter writer = new StreamWriter(stream);

                writer.WriteLine("Newspapers");

                foreach (NewspaperModel newspaper in model.Newspapers.Where(npm => npm.Selected)
                         .Select(np => new NewspaperModel(dataContext.Newspapers.First(newspaper => newspaper.Id == np.Id)))
                         .ToList())
                {
                    writer.WriteLine(newspaper.Id);
                    writer.WriteLine(newspaper.Title);
                    writer.WriteLine(newspaper.Periodicity);
                    writer.WriteLine(newspaper.Date);
                    writer.WriteLine(newspaper.Amount);
                    writer.WriteLine(newspaper.Price);
                    writer.WriteLine(newspaper.PhotoId);
                    writer.WriteLine(newspaper.PhotoPath);
                }
                writer.Flush();
                stream.Seek(0, SeekOrigin.Begin);
                return(stream.ToArray());
            }
        }