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

            try
            {
                var result = new HttpResponseMessage(HttpStatusCode.OK)
                {
                    Content = new ByteArrayContent(ExportHelper.ExportJournals(model, DataContext))
                };
                result.Content.Headers.ContentDisposition =
                    new System.Net.Http.Headers.ContentDispositionHeaderValue("attachment")
                {
                    FileName = "exp-" + DateTime.Now + "-journals" + (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 TryExportJournals(ExportJournalsModel model)
 {
     if (model.IsXml)
     {
         return(File(ExportHelper.ExportJournals(model, DataContext), System.Net.Mime.MediaTypeNames.Application.Octet,
                     "exp-" + DateTime.Now + "-journals.xml"));
     }
     else
     {
         return(File(ExportHelper.ExportJournals(model, DataContext), System.Net.Mime.MediaTypeNames.Application.Octet,
                     "exp-" + DateTime.Now + "-journals.txt"));
     }
 }
示例#3
0
        public static byte[] ExportJournals(ExportJournalsModel model, LibraryDataContext dataContext)
        {
            if (model.IsXml)
            {
                XmlSerializer serializer = new XmlSerializer(typeof(List <JournalModel>));
                MemoryStream  stream     = new MemoryStream();
                serializer.Serialize(stream, model.Journals.Where(jour => jour.Selected)
                                     .Select(jj => new JournalModel(dataContext.Journals.First(journal => journal.Id == jj.Id)))
                                     .ToList());
                return(stream.ToArray());
            }
            else
            {
                MemoryStream stream = new MemoryStream();
                StreamWriter writer = new StreamWriter(stream);

                writer.WriteLine("Journals");

                foreach (JournalModel journal in model.Journals.Where(jm => jm.Selected)
                         .Select(jour => new JournalModel(dataContext.Journals.First(journal => journal.Id == jour.Id)))
                         .ToList())
                {
                    writer.WriteLine(journal.Id);
                    writer.WriteLine(journal.Title);
                    writer.WriteLine(journal.Subjects);
                    writer.WriteLine(journal.Periodicity);
                    writer.WriteLine(journal.Date);
                    writer.WriteLine(journal.Amount);
                    writer.WriteLine(journal.Price);
                    writer.WriteLine(journal.PhotoId);
                    writer.WriteLine(journal.PhotoPath);
                }
                writer.Flush();
                stream.Seek(0, SeekOrigin.Begin);
                return(stream.ToArray());
            }
        }