Пример #1
0
        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 helper = new ImportExportEnvironment(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);// HttpContext.Current.Server);
                result.Messages  = helper.Messages;
            }
            catch (Exception ex)
            {
                Exceptions.LogException(ex);
                result.Succeeded = false;
                result.Messages  = helper.Messages;
            }
            return(result);
        }
Пример #2
0
        public ImportResult ImportContent()
        {
            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)
            {
                var file = request.Files[0];
                if (file.FileName.EndsWith(".zip"))
                {   // ZIP
                    var zipImport = new ZipImport(zoneId, appId, PortalSettings.UserInfo.IsSuperUser);
                    result.Succeeded = zipImport.ImportZip(file.InputStream, HttpContext.Current.Server, PortalSettings, result.Messages);
                }
                else
                {   // XML
                    using (var fileStreamReader = new StreamReader(file.InputStream))
                    {
                        var xmlImport   = new XmlImport(PortalSettings.DefaultLanguage, UserIdentity.CurrentUserIdentityToken, allowSystemChanges);
                        var xmlDocument = XDocument.Parse(fileStreamReader.ReadToEnd());
                        result.Succeeded = xmlImport.ImportXml(zoneId, appId, xmlDocument);
                        result.Messages  = xmlImport.ImportLog;
                    }
                }
            }
            return(result);
        }
Пример #3
0
        //[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 DnnInstanceInfo(ActiveModule), zoneId);
            bool success;

            // Install package
            // var messages = new List<ExportImportMessage>();
            var helper = new ImportExportEnvironment(Log);

            try
            {
                // Increase script timeout to prevent timeouts
                HttpContext.Current.Server.ScriptTimeout = 300;

                success = new ZipImport(helper, zoneId, appId, PortalSettings.UserInfo.IsSuperUser, Log)
                          .ImportZipFromUrl(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 }));
        }
Пример #4
0
 public ImportApp(IZoneMapper zoneMapper, IServerPaths serverPaths, IEnvironmentLogger envLogger, ZipImport zipImport, IGlobalConfiguration globalConfiguration) : base("Bck.Export")
 {
     _zoneMapper          = zoneMapper;
     _serverPaths         = serverPaths;
     _envLogger           = envLogger;
     _zipImport           = zipImport;
     _globalConfiguration = globalConfiguration;
 }
Пример #5
0
        protected void ImportFromStream(Stream importStream)
        {
            var messages = new List <ExportImportMessage>();
            var success  = false;

            success = new ZipImport(ZoneId.Value, null, UserInfo.IsSuperUser).ImportApp(importStream, Server, PortalSettings, messages);

            lstvSummary.DataSource = messages;
            lstvSummary.DataBind();
            pnlSummary.Visible = true;
            pnlUpload.Visible  = false;
        }
Пример #6
0
        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 ImportExportEnvironment(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);// HttpContext.Current.Server); // , /*PortalSettings,*/ env.Messages);
                    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, /*UserIdentity.CurrentUserIdentityToken,*/ allowSystemChanges);
                    var xmlDocument = XDocument.Parse(fileStreamReader.ReadToEnd());
                    result.Succeeded = xmlImport.ImportXml(zoneId, appId, xmlDocument);
                    result.Messages  = xmlImport.Messages;
                }
            }
            return(result);
        }
Пример #7
0
        public ImportResult ImportApp()
        {
            var result = new ImportResult();

            var request = HttpContext.Current.Request;

            //var appId   = int.Parse(request["AppId"]);
            var zoneId = int.Parse(request["ZoneId"]);

            if (request.Files.Count > 0)
            {
                var zipImport = new ZipImport(zoneId, null, PortalSettings.UserInfo.IsSuperUser);
                result.Succeeded = zipImport.ImportApp(request.Files[0].InputStream, HttpContext.Current.Server, PortalSettings, result.Messages);
            }
            return(result);
        }
Пример #8
0
 public ImportContent(IZoneMapper zoneMapper,
                      IServerPaths serverPaths,
                      IEnvironmentLogger envLogger,
                      Lazy <Import> importerLazy,
                      Lazy <XmlImportWithFiles> xmlImportWithFilesLazy,
                      ZipImport zipImport,
                      Lazy <JsonSerializer> jsonSerializerLazy,
                      IGlobalConfiguration globalConfiguration) : base("Bck.Export")
 {
     _zoneMapper             = zoneMapper;
     _serverPaths            = serverPaths;
     _envLogger              = envLogger;
     _importerLazy           = importerLazy;
     _xmlImportWithFilesLazy = xmlImportWithFilesLazy;
     _zipImport              = zipImport;
     _jsonSerializerLazy     = jsonSerializerLazy;
     _globalConfiguration    = globalConfiguration;
 }
Пример #9
0
        //[ValidateAntiForgeryToken]
        public HttpResponseMessage InstallPackage(string packageUrl)
        {
            var  zoneId = ZoneHelpers.GetZoneID(ActiveModule.PortalID).Value;
            var  appId  = AppHelpers.GetAppIdFromModule(ActiveModule, zoneId);
            bool success;

            // Install package
            var messages = new List <ExportImportMessage>();

            try
            {
                success = new ZipImport(zoneId, appId, PortalSettings.UserInfo.IsSuperUser)
                          .ImportZipFromUrl(packageUrl, messages, ActiveModule.DesktopModule.ModuleName == "2sxc-app");
            }
            catch (Exception ex)
            {
                Exceptions.LogException(ex);
                throw new Exception("An error occurred while installing the app: " + ex.Message, ex);
            }

            return(Request.CreateResponse(success ? HttpStatusCode.OK : HttpStatusCode.InternalServerError, new { success, messages }));
        }
Пример #10
0
        protected void ImportFromStream(Stream importStream, bool isZip)
        {
            var messages = new List <ExportImportMessage>();
            var success  = false;

            if (isZip)
            {
                success = new ZipImport(ZoneId.Value, AppId.Value, UserInfo.IsSuperUser).ImportZip(importStream, Server, PortalSettings, messages, false);
            }
            else
            {
                string Xml    = new StreamReader(importStream).ReadToEnd();
                var    import = new XmlImport();
                success  = import.ImportXml(ZoneId.Value, AppId.Value, Xml);
                messages = import.ImportLog;
            }

            lstvSummary.DataSource = messages;
            lstvSummary.DataBind();
            pnlSummary.Visible = true;
            pnlUpload.Visible  = false;
        }