public async Task<HttpResponseMessage> PostImportBlogMl(ImportBlogMlModel model) { if (!ModelState.IsValid) { throw new HttpResponseException(Request.CreateValidationErrorResponse(ModelState)); } //there should only be one file so we'll just use the first one var importer = new BlogMlImporter(ApplicationContext); await importer.Import(Security.CurrentUser.Id, model.TempFile, model.ArticulateNodeId, model.Overwrite, model.RegexMatch, model.RegexReplace, model.Publish, model.ExportDisqusXml); //cleanup File.Delete(model.TempFile); if (importer.HasErrors) { return Request.CreateErrorResponse(HttpStatusCode.InternalServerError, "Importing failed, see umbraco log for details"); } return Request.CreateResponse(HttpStatusCode.OK); }
public async Task <ImportModel> PostImportBlogMl(ImportBlogMlModel model) { if (!ModelState.IsValid) { throw new HttpResponseException(Request.CreateValidationErrorResponse(ModelState)); } //save to Temp folder (base path) var fs = new PhysicalFileSystem("~/App_Data/Temp/Articulate"); //there should only be one file so we'll just use the first one var importer = new BlogMlImporter(ApplicationContext, fs); await importer.Import(Security.CurrentUser.Id, model.TempFile, model.ArticulateNodeId, model.Overwrite, model.RegexMatch, model.RegexReplace, model.Publish, model.ExportDisqusXml); //cleanup File.Delete(model.TempFile); if (importer.HasErrors) { throw new HttpResponseException(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, "Importing failed, see umbraco log for details")); } return(new ImportModel { DownloadUrl = Url.GetUmbracoApiService <ArticulateBlogImportController>("GetDisqusExport") }); }
public async Task<JObject> PostInitialize(HttpRequestMessage request) { if (!request.Content.IsMimeMultipartContent()) throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType); var dir = IOHelper.MapPath("~/App_Data/TEMP/FileUploads"); Directory.CreateDirectory(dir); var provider = new MultipartFormDataStreamProvider(dir); var result = await request.Content.ReadAsMultipartAsync(provider); if (result.FileData.Any()) { if (!Path.GetExtension(result.FileData[0].Headers.ContentDisposition.FileName.Trim('\"')).InvariantEquals(".xml")) { throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType); } //there should only be one file so we'll just use the first one var importer = new BlogMlImporter(ApplicationContext); var count = importer.GetPostCount(result.FileData[0].LocalFileName); return JObject.FromObject(new { count = count, tempFile = result.FileData[0].LocalFileName }); } else { throw new InvalidOperationException("Not blogml file was found in the request"); } }
public async Task<ImportModel> PostImportBlogMl(ImportBlogMlModel model) { if (!ModelState.IsValid) { throw new HttpResponseException(Request.CreateValidationErrorResponse(ModelState)); } //save to Temp folder (base path) var fs = new PhysicalFileSystem(IOHelper.MapPath("~/App_Data/Temp")); //there should only be one file so we'll just use the first one var importer = new BlogMlImporter(ApplicationContext, fs); await importer.Import(Security.CurrentUser.Id, model.TempFile, model.ArticulateNodeId, model.Overwrite, model.RegexMatch, model.RegexReplace, model.Publish, model.ExportDisqusXml); //cleanup File.Delete(model.TempFile); if (importer.HasErrors) { throw new HttpResponseException(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, "Importing failed, see umbraco log for details")); } var mvcUrlHelper = new UrlHelper(new RequestContext()); return new ImportModel { DownloadUrl = mvcUrlHelper.SurfaceAction<ArticulateBlogImportDataController>("DownloadDisqusExport") }; }
public async Task <HttpResponseMessage> PostImportBlogMl(ImportBlogMlModel model) { if (!ModelState.IsValid) { throw new HttpResponseException(Request.CreateValidationErrorResponse(ModelState)); } //there should only be one file so we'll just use the first one var importer = new BlogMlImporter(ApplicationContext); await importer.Import(Security.CurrentUser.Id, model.TempFile, model.ArticulateNodeId, model.Overwrite, model.RegexMatch, model.RegexReplace, model.Publish, model.ExportDisqusXml); //cleanup File.Delete(model.TempFile); if (importer.HasErrors) { return(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, "Importing failed, see umbraco log for details")); } return(Request.CreateResponse(HttpStatusCode.OK)); }
public async Task <JObject> PostInitialize(HttpRequestMessage request) { if (!request.Content.IsMimeMultipartContent()) { throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType); } var dir = IOHelper.MapPath("~/App_Data/TEMP/FileUploads"); Directory.CreateDirectory(dir); var provider = new MultipartFormDataStreamProvider(dir); var result = await request.Content.ReadAsMultipartAsync(provider); if (result.FileData.Any()) { if (!Path.GetExtension(result.FileData[0].Headers.ContentDisposition.FileName.Trim('\"')).InvariantEquals(".xml")) { throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType); } //there should only be one file so we'll just use the first one var importer = new BlogMlImporter(ApplicationContext); var count = importer.GetPostCount(result.FileData[0].LocalFileName); return(JObject.FromObject(new { count = count, tempFile = result.FileData[0].LocalFileName })); } else { throw new InvalidOperationException("Not blogml file was found in the request"); } }
public ArticulateBlogImportController(IGlobalSettings globalSettings, IUmbracoContextAccessor umbracoContextAccessor, ISqlContext sqlContext, ServiceContext services, AppCaches appCaches, IProfilingLogger logger, IRuntimeState runtimeState, UmbracoHelper umbracoHelper, BlogMlImporter blogMlImporter, BlogMlExporter blogMlExporter) : base(globalSettings, umbracoContextAccessor, sqlContext, services, appCaches, logger, runtimeState, umbracoHelper) { _blogMlImporter = blogMlImporter; _blogMlExporter = blogMlExporter; }