//[ValidateAntiForgeryToken] public HttpResponseMessage InstallPackage(string packageUrl) { Log.Add("install package:" + packageUrl); var zoneId = Env.ZoneMapper.GetZoneId(ActiveModule.PortalID); var appId = new DnnMapAppToInstance(Log).GetAppIdFromInstance(new DnnContainer(ActiveModule), zoneId); bool success; // Install package // var messages = new List<ExportImportMessage>(); var helper = new DnnImportExportEnvironment(Log); try { // Increase script timeout to prevent timeouts HttpContext.Current.Server.ScriptTimeout = 300; success = new ZipFromUrlImport(helper, zoneId, appId, PortalSettings.UserInfo.IsSuperUser, Log) .ImportUrl(packageUrl, ActiveModule.DesktopModule.ModuleName == "2sxc-app"); } catch (Exception ex) { Exceptions.LogException(ex); throw new Exception("An error occurred while installing the app: " + ex.Message, ex); } Log.Add("install completed with success:" + success); return(Request.CreateResponse(success ? HttpStatusCode.OK : HttpStatusCode.InternalServerError, new { success, helper.Messages })); }
public ImportResult ImportContent() { Log.Add("import content start"); var result = new ImportResult(); var request = HttpContext.Current.Request; var allowSystemChanges = UserInfo.IsSuperUser; var appId = int.Parse(request["AppId"]); var zoneId = int.Parse(request["ZoneId"]); if (request.Files.Count <= 0) { return(result); } var file = request.Files[0]; if (file.FileName.EndsWith(".zip")) { // ZIP try { var env = new DnnImportExportEnvironment(Log); var zipImport = new ZipImport(env, zoneId, appId, PortalSettings.UserInfo.IsSuperUser, Log); // Increase script timeout to prevent timeouts HttpContext.Current.Server.ScriptTimeout = 300; var temporaryDirectory = HttpContext.Current.Server.MapPath(Path.Combine(Eav.ImportExport.Settings.TemporaryDirectory, Guid.NewGuid().ToString())); result.Succeeded = zipImport.ImportZip(file.InputStream, temporaryDirectory); result.Messages = env.Messages; } catch (Exception ex) { Exceptions.LogException(ex); } } else { // XML using (var fileStreamReader = new StreamReader(file.InputStream)) { var xmlImport = new XmlImportWithFiles(Log, PortalSettings.DefaultLanguage, allowSystemChanges); var xmlDocument = XDocument.Parse(fileStreamReader.ReadToEnd()); result.Succeeded = xmlImport.ImportXml(zoneId, appId, xmlDocument); result.Messages = xmlImport.Messages; } } return(result); }
public ImportResult ImportApp() { Log.Add("import app start"); var result = new ImportResult(); var request = HttpContext.Current.Request; var zoneId = int.Parse(request["ZoneId"]); if (request.Files.Count <= 0) { return(result); } var name = request["Name"]; if (!string.IsNullOrEmpty(name)) { Log.Add($"new app name: {name}"); } var helper = new DnnImportExportEnvironment(Log); try { var zipImport = new ZipImport(helper, zoneId, null, PortalSettings.UserInfo.IsSuperUser, Log); var temporaryDirectory = HttpContext.Current.Server.MapPath(Path.Combine(Eav.ImportExport.Settings.TemporaryDirectory, Guid.NewGuid().ToString().Substring(0, 8))); // Increase script timeout to prevent timeouts HttpContext.Current.Server.ScriptTimeout = 300; result.Succeeded = zipImport.ImportZip(request.Files[0].InputStream, temporaryDirectory, name); result.Messages = helper.Messages; } catch (Exception ex) { Exceptions.LogException(ex); result.Succeeded = false; result.Messages = helper.Messages; } return(result); }