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")); } }
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()); } }