public ActionResult ContentImport(FileUpModel model) { string sXML = String.Empty; if (model.PostedFile != null) { using (StreamReader sr = new StreamReader(model.PostedFile.InputStream)) { sXML = sr.ReadToEnd(); } } string sTest = String.Empty; if (!String.IsNullOrEmpty(sXML) && sXML.Length > 500) { sTest = sXML.Substring(0, 250).ToLowerInvariant(); try { if (sTest.Contains("<contentpageexport xmlns:xsi=\"http://www.w3.org/2001/xmlschema-instance\" xmlns:xsd=\"http://www.w3.org/2001/xmlschema\">") || sTest.Contains("<contentpageexport xmlns:xsd=\"http://www.w3.org/2001/xmlschema\" xmlns:xsi=\"http://www.w3.org/2001/xmlschema-instance\">")) { ContentPageExport cph = ContentImportExportUtils.DeserializeContentPageExport(sXML); ContentImportExportUtils.AssignContentPageExportNewIDs(cph); ContentImportExportUtils.MapSiteCategoryTags(cph); ContentImportExportUtils.SaveSerializedDataExport<ContentPageExport>(cph.NewRootContentID, cph); if (cph.ThePage.ContentType == ContentPageType.PageType.ContentEntry) { //Response.Redirect(SiteFilename.PageAddEditURL + "?importid=" + cph.NewRootContentID.ToString()); return RedirectToAction("PageAddEdit", new { importid = cph.NewRootContentID }); } else { //Response.Redirect(SiteFilename.BlogPostAddEditURL + "?importid=" + cph.NewRootContentID.ToString()); return RedirectToAction("BlogPostAddEdit", new { importid = cph.NewRootContentID }); } } if (sTest.Contains("<siteexport xmlns:xsi=\"http://www.w3.org/2001/xmlschema-instance\" xmlns:xsd=\"http://www.w3.org/2001/xmlschema\">") || sTest.Contains("<siteexport xmlns:xsd=\"http://www.w3.org/2001/xmlschema\" xmlns:xsi=\"http://www.w3.org/2001/xmlschema-instance\">")) { SiteExport site = ContentImportExportUtils.DeserializeSiteExport(sXML); ContentImportExportUtils.AssignSiteExportNewIDs(site); ContentImportExportUtils.SaveSerializedDataExport<SiteExport>(site.NewSiteID, site); //Response.Redirect(SiteFilename.SiteImportURL + "?importid=" + site.NewSiteID.ToString()); return RedirectToAction("SiteImport", new { importid = site.NewSiteID }); } if (sXML.Contains("<channel>") && sXML.Contains("<rss")) { int iChnl = sXML.IndexOf("<channel>"); sTest = sXML.Substring(0, iChnl).ToLowerInvariant(); } if (sTest.Contains("<!-- this is a wordpress extended rss file generated by wordpress as an export of your") && sTest.Contains("http://purl.org/rss") && sTest.Contains("http://wordpress.org/export")) { WordPressSite wps = ContentImportExportUtils.DeserializeWPExport(sXML); ContentImportExportUtils.AssignWPExportNewIDs(SiteData.CurrentSite, wps); ContentImportExportUtils.SaveSerializedDataExport<WordPressSite>(wps.NewSiteID, wps); //Response.Redirect(SiteFilename.SiteImportWP_URL + "?importid=" + wps.NewSiteID.ToString()); return RedirectToAction("SiteImportWP", new { importid = wps.NewSiteID }); } ModelState.AddModelError("PostedFile", "File did not appear to match an expected format."); } catch (Exception ex) { ModelState.AddModelError("PostedFile", ex.ToString()); } } else { ModelState.AddModelError("PostedFile", "No file appeared in the upload queue."); } Helper.HandleErrorDict(ModelState); return View(model); }
public ActionResult ContentImport() { CMSConfigHelper.CleanUpSerialData(); FileUpModel model = new FileUpModel(); return View(model); }