Exemple #1
0
    public bool ApplySettings()
    {
        txtFileName.Text = txtFileName.Text.Trim();

        // Validate the file name
        string result = ImportExportHelper.ValidateExportFileName(Settings, txtFileName.Text);

        if (string.IsNullOrEmpty(result))
        {
            if (Path.GetExtension(txtFileName.Text).ToLowerCSafe() != ".zip")
            {
                txtFileName.Text = txtFileName.Text.TrimEnd('.') + ".zip";
            }

            // Set current user information
            Settings.CurrentUser = MembershipContext.AuthenticatedUser;

            Settings.SiteId = SiteId;
            Settings.DefaultProcessObjectType = ProcessObjectEnum.Selected;

            // Additional setings
            Settings.SetSettings(ImportExportHelper.SETTINGS_BIZFORM_DATA, true);
            Settings.SetSettings(ImportExportHelper.SETTINGS_CUSTOMTABLE_DATA, true);
            Settings.SetSettings(ImportExportHelper.SETTINGS_FORUM_POSTS, true);
            Settings.SetSettings(ImportExportHelper.SETTINGS_BOARD_MESSAGES, true);
            Settings.SetSettings(ImportExportHelper.SETTINGS_GLOBAL_FOLDERS, true);
            Settings.SetSettings(ImportExportHelper.SETTINGS_SITE_FOLDERS, true);
            Settings.SetSettings(ImportExportHelper.SETTINGS_COPY_ASPX_TEMPLATES_FOLDER, true);

            ExportTypeEnum exportType = (SiteId != 0) ? ExportTypeEnum.Site : ExportTypeEnum.All;

            // Init default values
            if (radNone.Checked)
            {
                // None objects
                Settings.TimeStamp  = DateTimeHelper.ZERO_TIME;
                Settings.ExportType = ExportTypeEnum.None;
            }
            else if (radAll.Checked)
            {
                // All objects
                Settings.TimeStamp  = DateTimeHelper.ZERO_TIME;
                Settings.ExportType = exportType;
            }
            else if (radDate.Checked)
            {
                if (dtDate.SelectedDateTime != DateTimeHelper.ZERO_TIME)
                {
                    if (!dtDate.IsValidRange())
                    {
                        lblError.Text = GetString("general.errorinvaliddatetimerange");
                        return(false);
                    }
                    else
                    {
                        // From specified date
                        Settings.TimeStamp  = dtDate.SelectedDateTime;
                        Settings.ExportType = exportType;
                    }
                }
                else
                {
                    lblError.Text = GetString("ExportSite.SelectDateTime");
                    return(false);
                }
            }
            else
            {
                // From previous export
                int historyId = ValidationHelper.GetInteger(lstExports.SelectedValue, 0);
                if (historyId == 0)
                {
                    lblError.Text = GetString("ExportSite.SelectExportHistory");
                    return(false);
                }
                else
                {
                    ExportHistoryInfo history = ExportHistoryInfoProvider.GetExportHistoryInfo(historyId);
                    if (history != null)
                    {
                        // Load history settings
                        SiteExportSettings settings = new SiteExportSettings(MembershipContext.AuthenticatedUser);
                        settings.SetInfo(ImportExportHelper.INFO_HISTORY_NAME, history.ExportFileName);
                        settings.SetInfo(ImportExportHelper.INFO_HISTORY_DATE, history.ExportDateTime);
                        settings.LoadFromXML(history.ExportSettings);
                        settings.TargetPath            = Settings.TargetPath;
                        settings.PersistentSettingsKey = Settings.PersistentSettingsKey;
                        Settings      = settings;
                        ExportHistory = true;
                    }
                    else
                    {
                        lblError.Text = GetString("ExportSite.ErrorLoadingExportHistory");
                        return(false);
                    }
                }
            }

            // Keep current file name
            Settings.TargetFileName = txtFileName.Text;
        }
        else
        {
            lblError.Text = result;
            return(false);
        }

        return(true);
    }
        public ActionResult UploadExcelForClient(string name, string type = "Xlsx")
        {
            var fileName = Guid.NewGuid().ToString("N");
            var filePath = Server.MapPath(Settings.Current["TemporaryFolderForImportExport"]);

            ExcelType excelType;

            ExcelType.TryParse(type, true, out excelType);

            try
            {
                if (Request.Files.Count != 1 || Request.Files[0] == null)
                {
                    return new ContentResult
                           {
                               ContentType = "text/html",
                               Content     = DynamicEntityJSONDataSource.GetNotSuccess("Неверное количество файлов в запросе.")
                           }
                }
                ;


                var ds = ExcelHelper.FromExcel(Request.Files[0].InputStream, fileName, filePath, excelType);

                List <dynamic> records;
                var            result = ImportExportHelper.ImportForClient(name, ds, out records);
                var            report = result.GetReport(new ImportResultTextFormatter());

                var res = new
                {
                    success = !(result.HaveMappingErrors || result.HaveParsingErrors),
                    message = report,
                    records = records.Select(c => (c as DynamicEntity).Dictionary).ToArray()
                };

                return(new ContentResult
                {
                    ContentType = "text/html",
                    Content = ServiceStack.Text.JsonSerializer.SerializeToString(res)
                });
            }
            catch (Exception ex)
            {
                Logger.Log.Error(string.Format("Ошибка загрузки шаблона {0}", name), ex);

                return(new ContentResult
                {
                    ContentType = "text/html",
                    Content = DynamicEntityJSONDataSource.GetNotSuccess(ex.Message)
                });
            }
            finally
            {
                try
                {
                    var fullName = ExcelHelper.GetFullFilePath(fileName, filePath, excelType);

                    if (System.IO.File.Exists(fullName))
                    {
                        System.IO.File.Delete(fullName);
                    }
                }
                catch (Exception ex)
                {
                    Logger.Log.Error("Ошибка удаления временного файла", ex);
                }
            }
        }
    /// <summary>
    /// Button Ok click.
    /// </summary>
    /// <param name="sender">Sender</param>
    /// <param name="e">Arguments</param>
    protected void btnOk_Click(object sender, EventArgs e)
    {
        // Validate file name
        string fileName     = txtFileName.Text.Trim();
        string errorMessage = new Validator().NotEmpty(fileName, GetString("lincense.export.filenameempty")).IsFileName(fileName, GetString("license.export.notvalidfilename")).Result;

        if (!string.IsNullOrEmpty(errorMessage))
        {
            ShowError(errorMessage);
        }
        else
        {
            try
            {
                // Create writers
                string path = ImportExportHelper.GetSiteUtilsFolder() + "Export\\" + fileName;
                DirectoryHelper.EnsureDiskPath(path, SystemContext.WebApplicationPhysicalPath);

                using (FileStream file = FileStream.New(path, FileMode.Create))
                {
                    using (StreamWriter sw = StreamWriter.New(file))
                    {
                        // Array list for duplicity checking
                        ArrayList allSites = new ArrayList();

                        // Get all sites
                        DataSet sites = SiteInfoProvider.GetSites().Columns("SiteID,SiteDomainName");
                        if (!DataHelper.DataSourceIsEmpty(sites))
                        {
                            foreach (DataRow dr in sites.Tables[0].Rows)
                            {
                                // Get domain
                                string domain = ValidationHelper.GetString(dr["SiteDomainName"], "");
                                if (!string.IsNullOrEmpty(domain))
                                {
                                    domain = GetDomain(domain);
                                    // Add to file
                                    if (!allSites.Contains(domain))
                                    {
                                        sw.WriteLine(domain);
                                        allSites.Add(domain);
                                    }

                                    // Add all domain aliases
                                    DataSet aliases = SiteDomainAliasInfoProvider.GetDomainAliases()
                                                      .Column("SiteDomainAliasName")
                                                      .Where("SiteID", QueryOperator.Equals, ValidationHelper.GetInteger(dr["SiteID"], 0));

                                    if (!DataHelper.DataSourceIsEmpty(aliases))
                                    {
                                        foreach (DataRow drAlias in aliases.Tables[0].Rows)
                                        {
                                            // Get domain
                                            domain = ValidationHelper.GetString(drAlias["SiteDomainAliasName"], "");
                                            if (!string.IsNullOrEmpty(domain))
                                            {
                                                domain = GetDomain(domain);
                                                // Add to file
                                                if (!allSites.Contains(domain))
                                                {
                                                    sw.WriteLine(domain);
                                                    allSites.Add(domain);
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }

                // Output
                string url          = ImportExportHelper.GetExportPackageUrl(fileName, SiteContext.CurrentSiteName);
                string downloadLink = (url != null) ? String.Format("<a href=\"{0}\" target=\"_blank\">{1}</a>", url, GetString("license.export.clicktodownload")) : "";
                string storageName  = (StorageHelper.IsExternalStorage(path)) ? GetString("Export.StorageProviderName." + StorageHelper.GetStorageProvider(path).Name) : "";
                string relativePath = ImportExportHelper.GetSiteUtilsFolderRelativePath() + "Export/" + txtFileName.Text;

                ShowConfirmation(GetString("license.export.exported"));
                ShowInformation(String.Format(GetString("license.export.download"), storageName, relativePath, downloadLink));

                plcTextBox.Visible = false;
            }
            catch (Exception ex)
            {
                ShowError(ex.Message);
            }
        }
    }
 protected override void ProcessRecord()
 {
     // TmxHelper.ExportTestSettings(this, this.Path, this.VariableName);
     ImportExportHelper.ExportTestSettings(this, Path, VariableName);
 }
Exemple #5
0
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!CMSContext.CurrentUser.IsAuthorizedPerResource("cms.globalpermissions", "RestoreObjects", CMSContext.CurrentSiteName))
        {
            RedirectToCMSDeskAccessDenied("cms.globalpermissions", "RestoreObjects");
        }

        // Register script for pendingCallbacks repair
        ScriptHelper.FixPendingCallbacks(Page);

        imgDelete.ImageUrl = GetImageUrl("Design/Controls/EditModeButtons/delete.png");

        // Async control events binding
        ucAsyncControl.OnFinished += ucAsyncControl_OnFinished;
        ucAsyncControl.OnError    += ucAsyncControl_OnError;

        if (!IsCallback)
        {
            try
            {
                // Delete temporary files
                ExportProvider.DeleteTemporaryFiles();
            }
            catch (Exception ex)
            {
                DisplayError(ex);
            }

            SetTitle("CMSModules/CMS_ImportExport/restoreobject.png", GetString("RestoreObject.Title"), null, null);

            // Get data from parameters
            siteId     = ValidationHelper.GetInteger(Request.QueryString["siteId"], 0);
            objectId   = ValidationHelper.GetInteger(Request.QueryString["objectId"], 0);
            objectType = ValidationHelper.GetString(Request.QueryString["objectType"], "");

            // Get the object
            infoObj = CMSObjectHelper.GetReadOnlyObject(objectType);
            if (infoObj == null)
            {
                lblIntro.Text     = GetString("ExportObject.ObjectTypeNotFound");
                lblIntro.CssClass = "ErrorLabel";
                return;
            }

            // Get exported object
            exportObj = infoObj.GetObject(objectId);
            if (exportObj == null)
            {
                lblIntro.Text     = GetString("ExportObject.ObjectNotFound");
                lblIntro.CssClass = "ErrorLabel";
                btnOk.Visible     = false;
                return;
            }

            // Store display name
            exportObjectDisplayName = HTMLHelper.HTMLEncode(ResHelper.LocalizeString(exportObj.ObjectDisplayName));
            codeName = exportObj.ObjectCodeName;

            lblIntro.Text = string.Format(GetString("RestoreObject.Intro"), exportObjectDisplayName);

            targetFolder = ImportExportHelper.GetObjectBackupFolder(exportObj);

            btnOk.Click += btnOk_Click;

            if (!RequestHelper.IsPostBack())
            {
                lblIntro.Visible = true;
                btnOk.Text       = GetString("General.Restore");
                btnCancel.Text   = GetString("General.Close");

                // Load the available backups
                if (lstImports.Items.Count == 0)
                {
                    RefreshPackageList();
                }
            }
        }
    }
 internal override void CopySymbolicIdentfierToClipboard()
 {
     System.Windows.Forms.Clipboard.SetText(ImportExportHelper.GetSymbolicID(GetDefaultPolicyRow()));
 }
        /// <summary>
        /// Handles the DoWorker event for the worker
        /// </summary>
        /// <param name="sender">Object that fired the event</param>
        /// <param name="e">.NET supplied event parameters</param>
        private void importWorker_DoWork(object sender, System.ComponentModel.DoWorkEventArgs e)
        {
            lock (syncLock)
            {
                foreach (string packagePath in packagePaths)
                {
                    try
                    {
                        string str = Configuration.DecryptFileToString(packagePath, txtPassword.Text);

                        if (!str.StartsWith("[[EPIINFO"))
                        {
                            #region LEGACY_IMPORT
                            List <string> paths = new List <string>();
                            paths.Add(packagePath);
                            ProjectUnpackager projectUnpackager = new ProjectUnpackager(destinationView, paths, password);
                            projectUnpackager.SetProgressBar         += new SetProgressBarDelegate(CallbackIncrementProgressBar);
                            projectUnpackager.SetStatus              += new UpdateStatusEventHandler(CallbackSetStatusMessage);
                            projectUnpackager.AddStatusMessage       += new UpdateStatusEventHandler(CallbackAddStatusMessage);
                            projectUnpackager.SetMaxProgressBarValue += new SetMaxProgressBarValueDelegate(CallbackSetupProgressBar);
                            projectUnpackager.FinishUnpackage        += new SimpleEventHandler(CallbackFinishUnpackaging);
                            projectUnpackager.Update = update;
                            projectUnpackager.Append = append;

                            try
                            {
                                if (!(string.IsNullOrEmpty(customSalt) && string.IsNullOrEmpty(customInitVector)))
                                {
                                    projectUnpackager.SetCustomDecryptionParameters(customSalt, customInitVector, customIterations);
                                }
                                projectUnpackager.UnpackageProjects();
                            }
                            catch (Exception ex)
                            {
                                e.Result = ex;
                            }
                            #endregion // LEGACY_IMPORT
                        }
                        else
                        {
                            str = str.Remove(0, 24);

                            string plainText = ImportExportHelper.UnZip(str);

                            XmlDocument xmlDataPackage = new XmlDocument();
                            xmlDataPackage.LoadXml(plainText);

                            XmlNodeList xnList = xmlDataPackage.SelectNodes("/DataPackage/Form/KeyFields");

                            if (xnList.Count == 0 || (xnList.Count == 1 && xnList[0].ChildNodes.Count == 0))
                            {
                                XmlDataUnpackager xmlUP = new Epi.ImportExport.ProjectPackagers.XmlDataUnpackager(destinationView, xmlDataPackage);
                                xmlUP.StatusChanged    += new UpdateStatusEventHandler(CallbackSetStatusMessage);
                                xmlUP.UpdateProgress   += new SetProgressBarDelegate(CallbackSetProgressBar);
                                xmlUP.ResetProgress    += new SimpleEventHandler(CallbackResetProgressBar);
                                xmlUP.MessageGenerated += new UpdateStatusEventHandler(CallbackAddStatusMessage);
                                xmlUP.ImportFinished   += new EventHandler(xmlUP_ImportFinished);
                                xmlUP.Append            = append;
                                xmlUP.Update            = update;
                                xmlUP.Unpackage();
                            }
                            else
                            {
                                XmlMultiKeyDataUnpackager xmlUP = new Epi.ImportExport.ProjectPackagers.XmlMultiKeyDataUnpackager(destinationView, xmlDataPackage);
                                xmlUP.StatusChanged    += new UpdateStatusEventHandler(CallbackSetStatusMessage);
                                xmlUP.UpdateProgress   += new SetProgressBarDelegate(CallbackSetProgressBar);
                                xmlUP.ResetProgress    += new SimpleEventHandler(CallbackResetProgressBar);
                                xmlUP.MessageGenerated += new UpdateStatusEventHandler(CallbackAddStatusMessage);
                                xmlUP.ImportFinished   += new EventHandler(xmlUP_ImportFinished);

                                xmlUP.Append = append;
                                xmlUP.Update = update;
                                xmlUP.Unpackage();
                            }
                        }
                    }
                    catch (Exception ex)
                    {
                        e.Result = ex;
                    }
                }
            }
        }
Exemple #8
0
    protected void Page_Load(object sender, EventArgs e)
    {
        var currentSiteName = SiteContext.CurrentSiteName;

        if (!MembershipContext.AuthenticatedUser.IsAuthorizedPerResource("cms.globalpermissions", "RestoreObjects", currentSiteName))
        {
            RedirectToAccessDenied("cms.globalpermissions", "RestoreObjects");
        }

        // Register script for pendingCallbacks repair
        ScriptHelper.FixPendingCallbacks(Page);

        // Async control events binding
        ucAsyncControl.OnFinished += ucAsyncControl_OnFinished;
        ucAsyncControl.OnError    += ucAsyncControl_OnError;

        if (!RequestHelper.IsCallback())
        {
            try
            {
                // Delete temporary files
                ExportProvider.DeleteTemporaryFiles();
            }
            catch (Exception ex)
            {
                DisplayError(ex);
            }

            SetTitle(GetString("RestoreObject.Title"));

            // Get data from parameters
            siteId     = QueryHelper.GetInteger("siteId", 0);
            objectId   = QueryHelper.GetInteger("objectId", 0);
            objectType = QueryHelper.GetString("objectType", "");

            // Get the object
            infoObj = ModuleManager.GetReadOnlyObject(objectType);
            if (infoObj == null)
            {
                lblIntro.Text     = GetString("ExportObject.ObjectTypeNotFound");
                lblIntro.CssClass = "ErrorLabel";
                return;
            }

            // Get exported object
            exportObj = infoObj.GetObject(objectId);
            if (exportObj == null)
            {
                lblIntro.Text      = GetString("ExportObject.ObjectNotFound");
                lblIntro.CssClass  = "ErrorLabel";
                btnRestore.Visible = false;
                return;
            }

            if (!CheckSpecialSecurityCases(exportObj))
            {
                return;
            }

            if (!CurrentUser.CheckPrivilegeLevel(UserPrivilegeLevelEnum.Admin))
            {
                if (!exportObj.CheckPermissions(PermissionsEnum.Modify, CurrentSiteName, CurrentUser))
                {
                    RedirectToAccessDenied(exportObj.TypeInfo.ModuleName, PermissionsEnum.Modify.ToString());
                }
            }

            // Store display name
            exportObjectDisplayName = HTMLHelper.HTMLEncode(ResHelper.LocalizeString(exportObj.ObjectDisplayName));
            codeName = exportObj.ObjectCodeName;

            lblIntro.Text = string.Format(GetString("RestoreObject.Intro"), exportObjectDisplayName);

            targetFolder = ImportExportHelper.GetObjectBackupFolder(exportObj);

            btnRestore.Click += btnRestore_Click;

            if (!RequestHelper.IsPostBack())
            {
                lblIntro.Visible = true;

                // Load the available backups
                if (lstImports.Items.Count == 0)
                {
                    RefreshPackageList();
                }
            }
        }
    }
Exemple #9
0
        /// <summary>
        /// Saves the changes.
        /// </summary>
        /// <param name="context">The context.</param>
        public void SaveChanges(IDictionary context)
        {
            SiteDto dto = (SiteDto)context[_SiteDtoDestinationString];

            SiteDto.SiteRow row = null;

            if (dto.Site != null && dto.Site.Count > 0)
            {
                row = dto.Site[0];
            }
            else
            {
                if (!String.IsNullOrEmpty(SiteTemplatesList.SelectedValue))
                {
                    // create site from template
                    FileStream         fs     = new FileStream(SiteTemplatesList.SelectedValue, FileMode.Open, FileAccess.Read);
                    ImportExportHelper helper = new ImportExportHelper();
                    Guid[]             ids    = helper.ImportSite(fs, mc.CmsConfiguration.Instance.ApplicationId, Guid.Empty, true);
                    if (ids.Length > 0)
                    {
                        context[_SiteDtoDestinationString] = mc.CMSContext.Current.GetSiteDto(ids[0], true);
                        dto = (SiteDto)context[_SiteDtoDestinationString];
                        if (dto.Site.Count > 0)
                        {
                            row = dto.Site[0];
                        }
                        else
                        {
                            throw new Exception(String.Format("Could not load the site after importing. id={0}", ids[0]));
                        }
                    }
                    else
                    {
                        throw new Exception("Import function did not return siteId.");
                    }
                }
                else
                {
                    row               = dto.Site.NewSiteRow();
                    row.SiteId        = Guid.NewGuid();
                    row.ApplicationId = mc.CmsConfiguration.Instance.ApplicationId;
                }
            }

            row.Name        = SiteName.Text;
            row.Description = SiteDescription.Text;
            row.IsActive    = IsSiteActive.IsSelected;
            row.IsDefault   = IsSiteDefault.IsSelected;
            row.Folder      = SiteFolder.Text;
            row.Domain      = SiteDomains.Text;

            if (row.RowState == DataRowState.Detached)
            {
                dto.Site.Rows.Add(row);

                /*
                 *
                 * SiteDto.ApplicationSiteRow appRow = dto.ApplicationSite.NewApplicationSiteRow();
                 * appRow.SiteId = row.SiteId;
                 * appRow.ApplicationId = CatalogConfiguration.ApplicationId;
                 * dto.ApplicationSite.Rows.Add(appRow);
                 * */
            }

            // Populate languages
            // Remove existing languages
            foreach (SiteDto.SiteLanguageRow langRow in dto.SiteLanguage.Rows)
            {
                if (langRow.RowState == DataRowState.Deleted)
                {
                    continue;
                }

                bool found = false;
                foreach (ListItem item in LanguageList.RightItems)
                {
                    if (item.Value.Equals(langRow.LanguageCode))
                    {
                        found = true;
                        break;
                    }
                }

                if (!found)
                {
                    langRow.Delete();
                }
            }

            foreach (ListItem item in LanguageList.RightItems)
            {
                bool exists = false;
                foreach (SiteDto.SiteLanguageRow langRow in dto.SiteLanguage.Rows)
                {
                    if (langRow.RowState != DataRowState.Deleted)
                    {
                        if (langRow.LanguageCode.Equals(item.Value))
                        {
                            exists = true;
                        }
                    }
                }

                if (!exists)
                {
                    SiteDto.SiteLanguageRow langRow = dto.SiteLanguage.NewSiteLanguageRow();
                    langRow.SiteId       = row.SiteId;
                    langRow.LanguageCode = item.Value;
                    dto.SiteLanguage.Rows.Add(langRow);
                }
            }
        }
    /// <summary>
    /// Reloads all data.
    /// </summary>
    public override void ReloadData(bool forceLoad)
    {
        if (CurrentReport != null)
        {
            // Load labels
            if (!RequestHelper.IsPostBack() || forceLoad)
            {
                // Create query parameters
                string query = "?ObjectID=" + CurrentReport.ReportObjectID;

                // Set link value
                string url = CurrentReport.ReportURL;
                if (CurrentReport.ReportCulture != String.Empty)
                {
                    url = URLHelper.AddParameterToUrl(url, URLHelper.LanguageParameterName, CurrentReport.ReportCulture);
                }
                lnkUrlValue.Text        = HTMLHelper.HTMLEncode(url);
                lnkUrlValue.NavigateUrl = url;
                lnkUrlValue.ToolTip     = HTMLHelper.HTMLEncode(url);
                lnkUrlValue.Target      = "_blank";

                // Set culture value
                System.Globalization.CultureInfo ci = CultureHelper.GetCultureInfo(CurrentReport.ReportCulture);
                lblCultureValue.Text = (ci != null) ? ci.DisplayName : ResHelper.Dash;

                // Set site value
                SiteInfo si = SiteInfoProvider.GetSiteInfo(CurrentReport.ReportSiteID);
                lblSiteValue.Text = (si != null) ? HTMLHelper.HTMLEncode(si.DisplayName) : ResHelper.Dash;

                // Set title
                lblTitleValue.Text = HTMLHelper.HTMLEncode(CurrentReport.ReportTitle);

                // Set labels
                if (!string.IsNullOrEmpty(CurrentReport.ReportObjectType))
                {
                    lblObjectTypeValue.Text = GetString("ObjectType." + ImportExportHelper.GetSafeObjectTypeName(CurrentReport.ReportObjectType));
                    query += "&ObjectType=" + CurrentReport.ReportObjectType;
                    if ((CurrentReport.ReportObjectID > 0) && (CurrentReport.ReportObjectType.ToLower() != TreeObjectType.DOCUMENT))
                    {
                        pnlLink.Visible = true;
                    }
                }
                else
                {
                    lblObjectTypeValue.Text = ResHelper.Dash;
                }

                // Get object display name
                lblObjectNameValue.Text = ResHelper.Dash;
                if ((CurrentReport.ReportObjectID > 0) && (!string.IsNullOrEmpty(CurrentReport.ReportObjectType)))
                {
                    GeneralizedInfo info = CMSObjectHelper.GetReadOnlyObject(CurrentReport.ReportObjectType);
                    if ((info != null) && (CurrentReport.ReportObjectType.ToLower() != TreeObjectType.DOCUMENT.ToLower()))
                    {
                        GeneralizedInfo obj = info.GetObject(CurrentReport.ReportObjectID);
                        if ((obj != null) && !string.IsNullOrEmpty(obj.ObjectDisplayName))
                        {
                            lblObjectNameValue.Text = HTMLHelper.HTMLEncode(obj.ObjectDisplayName);
                        }
                    }
                }

                // Set Reported by label
                lblReportedByValue.Text = ResHelper.Dash;
                if (CurrentReport.ReportUserID != 0)
                {
                    UserInfo ui = UserInfoProvider.GetUserInfo(CurrentReport.ReportUserID);
                    lblReportedByValue.Text = (ui != null) ? HTMLHelper.HTMLEncode(ui.FullName) : GetString("general.NA");
                }

                // Set other parameters
                lblReportedWhenValue.Text = CurrentReport.ReportWhen.ToString();

                if ((CurrentReport.ReportObjectID > 0) && (!string.IsNullOrEmpty(CurrentReport.ReportObjectType)) && AbuseReportInfoProvider.IsObjectTypeSupported(CurrentReport.ReportObjectType))
                {
                    lnkShowDetails.Visible = true;
                    string detailUrl = "~/CMSModules/AbuseReport/AbuseReport_ObjectDetails.aspx" + query;
                    lnkShowDetails.NavigateUrl = URLHelper.AddParameterToUrl(detailUrl, "hash", QueryHelper.GetHash(detailUrl));
                }

                if (ControlsHelper.GetPostBackControl(Page) != btnOk)
                {
                    txtCommentValue.Text = CurrentReport.ReportComment;
                    LoadStatus((int)CurrentReport.ReportStatus);
                }
            }
        }
    }
Exemple #11
0
    /// <summary>
    /// Unigrid external databound handler.
    /// </summary>
    protected object UniGrid_OnExternalDataBound(object sender, string sourceName, object parameter)
    {
        switch (sourceName.ToLower())
        {
        // Display link instead of title
        case "title":
            if (parameter != DBNull.Value)
            {
                DataRowView row   = (DataRowView)parameter;
                string      url   = ValidationHelper.GetString(row["ReportURL"], "");
                string      title = HTMLHelper.HTMLEncode(ValidationHelper.GetString(row["ReportTitle"], ""));

                HyperLink link    = new HyperLink();
                string    culture = ValidationHelper.GetString(row["ReportCulture"], "");
                if (culture != String.Empty)
                {
                    url = URLHelper.AddParameterToUrl(url, URLHelper.LanguageParameterName, culture);
                }
                link.NavigateUrl = url;
                link.Target      = "_blank";
                link.Text        = title;
                link.ToolTip     = HTMLHelper.HTMLEncode(url);
                link.Style.Add("cursor", "help");
                return(link);
            }
            return(sourceName);

        // Insert status label
        case "status":
            switch (parameter.ToString().ToLower())
            {
            default:
                return(ResHelper.GetString("general.new"));

            case "1":
                return("<span class=\"AbuseSolved\">" + ResHelper.GetString("general.solved") + "</span>");

            case "2":
                return("<span class=\"AbuseRejected\">" + ResHelper.GetString("general.rejected") + "</span>");
            }

        case "objecttype":
            string objectType = ImportExportHelper.GetSafeObjectTypeName(parameter.ToString());
            if (!string.IsNullOrEmpty(objectType))
            {
                parameter = ResHelper.GetString("ObjectType." + objectType);
            }
            else
            {
                return("-");
            }
            break;

        case "comment":
            string resultText = parameter.ToString();
            parameter = HTMLHelper.HTMLEncode(TextHelper.LimitLength(resultText, 297, "..."));
            break;
        }

        return(parameter.ToString());
    }
Exemple #12
0
    protected void Page_Load(object sender, EventArgs e)
    {
        backup = QueryHelper.GetBoolean("backup", false);

        // Check permissions
        if (backup)
        {
            if (!MembershipContext.AuthenticatedUser.IsAuthorizedPerResource("cms.globalpermissions", "BackupObjects", SiteContext.CurrentSiteName))
            {
                RedirectToAccessDenied("cms.globalpermissions", "BackupObjects");
            }
        }
        else if (!MembershipContext.AuthenticatedUser.IsAuthorizedPerResource("cms.globalpermissions", "ExportObjects", SiteContext.CurrentSiteName))
        {
            RedirectToAccessDenied("cms.globalpermissions", "ExportObjects");
        }

        // Register script for pendingCallbacks repair
        ScriptHelper.FixPendingCallbacks(Page);

        // Async control events binding
        ucAsyncControl.OnFinished += ucAsyncControl_OnFinished;
        ucAsyncControl.OnError    += ucAsyncControl_OnError;

        if (!RequestHelper.IsCallback())
        {
            try
            {
                // Delete temporary files
                ExportProvider.DeleteTemporaryFiles();
            }
            catch (Exception ex)
            {
                DisplayError(ex);
            }

            if (backup)
            {
                SetTitle(GetString("BackupObject.Title"));
            }
            else
            {
                SetTitle(GetString("ExportObject.Title"));
            }

            // Display BETA warning
            lblBeta.Visible = CMSVersion.IsBetaVersion();
            lblBeta.Text    = string.Format(GetString("export.BETAwarning"), CMSVersion.GetFriendlySystemVersion(false));

            // Get data from parameters
            objectId   = QueryHelper.GetInteger("objectId", 0);
            objectType = QueryHelper.GetString("objectType", "");

            // Get the object
            infoObj = ModuleManager.GetReadOnlyObject(objectType);

            if (infoObj == null)
            {
                plcExportDetails.Visible = false;
                lblIntro.Text            = GetString("ExportObject.ObjectTypeNotFound");
                lblIntro.CssClass        = "ErrorLabel";
                return;
            }

            // Get exported object
            exportObj = infoObj.GetObject(objectId);
            if (exportObj == null)
            {
                plcExportDetails.Visible = false;
                lblIntro.Text            = GetString("ExportObject.ObjectNotFound");
                lblIntro.CssClass        = "ErrorLabel";
                btnOk.Visible            = false;
                return;
            }

            // Check permissions
            var info = (BaseInfo)exportObj;
            if (!CurrentUser.IsGlobalAdministrator)
            {
                try
                {
                    if (info.Generalized.ObjectSiteID > 0)
                    {
                        CurrentUser.IsAuthorizedPerObject(PermissionsEnum.Read, info,
                                                          SiteInfoProvider.GetSiteName(info.Generalized.ObjectSiteID), true);
                    }
                    else if ((info.TypeInfo.SiteBindingObject != null) && (info.AssignedSites[CurrentSiteName] == null))
                    {
                        // Do not allow to clone objects with site binding which are not assigned to current site
                        RedirectToAccessDenied(info.TypeInfo.ModuleName, PermissionsEnum.Read.ToString());
                    }
                    else
                    {
                        CurrentUser.IsAuthorizedPerObject(PermissionsEnum.Read, info, CurrentSiteName, true);
                    }
                }
                catch (PermissionCheckException ex)
                {
                    RedirectToAccessDenied(ex.ModuleName, ex.PermissionFailed);
                }
            }

            // Store display name
            exportObjectDisplayName = HTMLHelper.HTMLEncode(ResHelper.LocalizeString(exportObj.ObjectDisplayName));

            lblIntro.Text = string.Format(GetString(backup ? "BackupObject.Intro" : "ExportObject.Intro"), exportObjectDisplayName);

            btnOk.Click += btnOk_Click;

            if (!RequestHelper.IsPostBack())
            {
                lblIntro.Visible    = true;
                lblFileName.Visible = true;
                txtFileName.Text    = GetExportFileName(exportObj, backup);
            }

            btnOk.Text = GetString(backup ? "General.backup" : "General.export");

            string path;
            if (backup)
            {
                path         = ImportExportHelper.GetObjectBackupFolder(exportObj);
                targetFolder = Server.MapPath(path);

                targetUrl = ResolveUrl(path) + "/" + txtFileName.Text;
            }
            else
            {
                targetFolder = ImportExportHelper.GetSiteUtilsFolder() + "Export";
                path         = ImportExportHelper.GetSiteUtilsFolderRelativePath();
                if (path != null)
                {
                    string externalUrl = null;
                    string fullPath    = path + "Export/" + txtFileName.Text;

                    // Handle external storage URL
                    if (StorageHelper.IsExternalStorage(fullPath))
                    {
                        externalUrl = File.GetFileUrl(fullPath, SiteContext.CurrentSiteName);
                    }

                    // Ensure default target URL if not set
                    if (string.IsNullOrEmpty(externalUrl))
                    {
                        targetUrl = ResolveUrl(path) + "Export/" + txtFileName.Text;
                    }
                    else
                    {
                        targetUrl = externalUrl;
                    }
                }
                else
                {
                    targetUrl = null;
                }
            }
        }
    }
    /// <summary>
    /// Unigrid external databound handler.
    /// </summary>
    protected object UniGrid_OnExternalDataBound(object sender, string sourceName, object parameter)
    {
        switch (sourceName.ToLowerCSafe())
        {
        // Display link instead of title
        case "title":
            if (parameter != DBNull.Value)
            {
                DataRowView row   = (DataRowView)parameter;
                string      url   = ValidationHelper.GetString(row["ReportURL"], "");
                string      title = HTMLHelper.HTMLEncode(ValidationHelper.GetString(row["ReportTitle"], ""));

                HyperLink link    = new HyperLink();
                string    culture = ValidationHelper.GetString(row["ReportCulture"], "");
                if (culture != String.Empty)
                {
                    url = URLHelper.AddParameterToUrl(url, URLHelper.LanguageParameterName, culture);
                }
                link.NavigateUrl = url;
                link.Target      = "_blank";
                link.Text        = title;
                link.ToolTip     = HTMLHelper.HTMLEncode(url);
                link.Style.Add("cursor", "help");
                return(link);
            }
            return(sourceName);

        // Insert status label
        case "status":
            if (parameter != DBNull.Value)
            {
                switch (parameter.ToString().ToLowerCSafe())
                {
                default:
                    return(ResHelper.GetString("general.new"));

                case "1":
                    return("<span class=\"AbuseSolved\">" + ResHelper.GetString("general.solved") + "</span>");

                case "2":
                    return("<span class=\"AbuseRejected\">" + ResHelper.GetString("general.rejected") + "</span>");
                }
            }
            return(sourceName);

        case "solve":
            if (parameter != DBNull.Value)
            {
                string      status = ValidationHelper.GetString(((DataRowView)((GridViewRow)parameter).DataItem).Row["ReportStatus"], "");
                ImageButton button = ((ImageButton)sender);
                switch (status)
                {
                // Disables the button and changes its icon
                case "1":
                    button.ImageUrl = GetImageUrl("Design/Controls/UniGrid/Actions/approvedisabled.png");
                    button.Enabled  = false;
                    break;

                case "2":
                    button.ImageUrl = GetImageUrl("Design/Controls/UniGrid/Actions/approve.png");
                    button.Enabled  = true;
                    break;
                }
            }
            break;

        case "reject":
            if (parameter != DBNull.Value)
            {
                string      status = ValidationHelper.GetString(((DataRowView)((GridViewRow)parameter).DataItem).Row["ReportStatus"], "");
                ImageButton button = ((ImageButton)sender);

                switch (status)
                {
                // Disables the button and changes its icon
                case "1":
                    button.ImageUrl = GetImageUrl("Design/Controls/UniGrid/Actions/Reject.png");
                    button.Enabled  = true;
                    break;

                case "2":
                    button.ImageUrl = GetImageUrl("Design/Controls/UniGrid/Actions/Rejectdisabled.png");
                    button.Enabled  = false;
                    break;
                }
            }
            break;

        case "objecttype":
            string objectType = ImportExportHelper.GetSafeObjectTypeName(parameter.ToString());
            if (!string.IsNullOrEmpty(objectType))
            {
                parameter = ResHelper.GetString("ObjectType." + objectType);
            }
            else
            {
                return("-");
            }
            break;

        case "comment":
            string resultText = parameter.ToString();
            parameter = HTMLHelper.HTMLEncode(TextHelper.LimitLength(resultText, 297, "..."));
            break;
        }

        return(parameter.ToString());
    }
Exemple #14
0
        public ActionResult UploadExcel(string name, string type = "Xlsx")
        {
            var fileName = Guid.NewGuid().ToString("N");

            var filePath = Server.MapPath(Settings.Current["TemporaryFolderForImportExport"]);

            ExcelType excelType;

            ExcelType.TryParse(type, true, out excelType);

            try
            {
                if (Request.Files.Count != 1 || Request.Files[0] == null)
                {
                    return new ContentResult
                           {
                               ContentType = "text/html",
                               Content     = DynamicEntityJSONDataSource.GetNotSuccess("Неверное количество файлов в запросе.")
                           }
                }
                ;


                var ds = ExcelHelper.FromExcel(Request.Files[0].InputStream, fileName, filePath, excelType);


                var result = ImportExportHelper.Import(name, ds);

                var report = result.GetReport(new ImportResultTextFormatter());


                return(new ContentResult
                {
                    ContentType = "text/html",
                    Content = DynamicEntityJSONDataSource.GetSuccess(report.Replace("\r\n", "&lt;/br&gt;"))
                });
            }
            catch (OptimaJet.DynamicEntities.Exceptions.DynamicEntitiesConvertException ex)
            {
                string msg = String.Format("{0}: {1}.", LocalizationProvider.Provider.Get("Error of template loading"),
                                           LocalizationProvider.Provider.Get("Incorrect format of fields in file"));

                Logger.Log.Error(ex.Message, ex);
                return(new ContentResult
                {
                    ContentType = "text/html",
                    Content = DynamicEntityJSONDataSource.GetNotSuccess(msg)
                });
            }
            catch (Exception ex)
            {
                Logger.Log.Error(LocalizationProvider.Provider.Get("Error of template loading") + " " + name, ex);
                return(new ContentResult
                {
                    ContentType = "text/html",
                    Content = DynamicEntityJSONDataSource.GetNotSuccess(ex.Message)
                });
            }
            finally
            {
                try
                {
                    var fullName = ExcelHelper.GetFullFilePath(fileName, filePath, excelType);

                    if (System.IO.File.Exists(fullName))
                    {
                        System.IO.File.Delete(fullName);
                    }
                }
                catch (Exception ex)
                {
                    Logger.Log.Error("Ошибка удаления временного файла", ex);
                }
            }
        }
    /// <summary>
    /// Reloads all data.
    /// </summary>
    public override void ReloadData(bool forceLoad)
    {
        if (CurrentReport != null)
        {
            // Load labels
            if (!RequestHelper.IsPostBack() || forceLoad)
            {
                // Create query parameters
                string query = "?ObjectID=" + CurrentReport.ReportObjectID;

                // Set link value
                string url = CurrentReport.ReportURL;
                if (CurrentReport.ReportCulture != String.Empty)
                {
                    url = URLHelper.AddParameterToUrl(url, URLHelper.LanguageParameterName, CurrentReport.ReportCulture);
                }
                lnkUrlValue.Text        = HTMLHelper.HTMLEncode(url);
                lnkUrlValue.NavigateUrl = url;
                lnkUrlValue.ToolTip     = HTMLHelper.HTMLEncode(url);
                lnkUrlValue.Target      = "_blank";

                // Set culture value
                CultureInfo ci = CultureHelper.GetCultureInfo(CurrentReport.ReportCulture);
                lblCultureValue.Text = (ci != null) ? ci.DisplayName : ResHelper.Dash;

                // Set site value
                SiteInfo si = SiteInfoProvider.GetSiteInfo(CurrentReport.ReportSiteID);
                lblSiteValue.Text = (si != null) ? HTMLHelper.HTMLEncode(si.DisplayName) : ResHelper.Dash;

                // Set title
                lblTitleValue.Text = HTMLHelper.HTMLEncode(CurrentReport.ReportTitle);

                // Set labels
                if (!string.IsNullOrEmpty(CurrentReport.ReportObjectType))
                {
                    lblObjectTypeValue.Text = GetString("ObjectType." + ImportExportHelper.GetSafeObjectTypeName(CurrentReport.ReportObjectType));
                    query += "&ObjectType=" + CurrentReport.ReportObjectType;
                }
                else
                {
                    lblObjectTypeValue.Text = ResHelper.Dash;
                }

                // Get object display name
                lblObjectNameValue.Text = ResHelper.Dash;

                string objectType = CurrentReport.ReportObjectType;
                int    objectId   = CurrentReport.ReportObjectID;

                if ((objectId > 0) && !string.IsNullOrEmpty(objectType) && !DocumentHelper.IsDocumentObjectType(objectType))
                {
                    GeneralizedInfo obj = ProviderHelper.GetInfoById(objectType, objectId);
                    if ((obj != null) && !string.IsNullOrEmpty(obj.ObjectDisplayName))
                    {
                        lblObjectNameValue.Text = HTMLHelper.HTMLEncode(obj.ObjectDisplayName);
                    }
                }

                // Set Reported by label
                lblReportedByValue.Text = ResHelper.Dash;
                if (CurrentReport.ReportUserID != 0)
                {
                    UserInfo ui = UserInfoProvider.GetUserInfo(CurrentReport.ReportUserID);
                    lblReportedByValue.Text = (ui != null) ? HTMLHelper.HTMLEncode(ui.FullName) : GetString("general.NA");
                }

                // Set other parameters
                lblReportedWhenValue.Text = CurrentReport.ReportWhen.ToString();

                CMSPage page = Page as CMSPage;

                if ((CurrentReport.ReportObjectID > 0) && (!string.IsNullOrEmpty(CurrentReport.ReportObjectType)) && AbuseReportInfoProvider.IsObjectTypeSupported(CurrentReport.ReportObjectType))
                {
                    // Add Object details button
                    string detailUrl = "~/CMSModules/AbuseReport/AbuseReport_ObjectDetails.aspx" + query;
                    detailUrl = URLHelper.AddParameterToUrl(detailUrl, "hash", QueryHelper.GetHash(detailUrl));
                    var onClientClickScript = ScriptHelper.GetModalDialogScript(UrlResolver.ResolveUrl(detailUrl), "objectdetails", 960, 600);

                    if (page != null)
                    {
                        var headerActions = page.HeaderActions;
                        headerActions.AddAction(new HeaderAction
                        {
                            Text          = GetString("abuse.details"),
                            OnClientClick = onClientClickScript,
                            ButtonStyle   = ButtonStyle.Default
                        });
                        btnObjectDetails.Visible = false;
                    }
                    else
                    {
                        btnObjectDetails.OnClientClick = onClientClickScript;
                        ScriptHelper.RegisterDialogScript(Page);
                    }
                }
                else
                {
                    btnObjectDetails.Visible = false;
                }

                Control postback = ControlsHelper.GetPostBackControl(Page);

                // Not post-back not caused by OK button or Save action in header
                if ((postback != btnOk) && ((page == null) || (postback != page.HeaderActions)))
                {
                    txtCommentValue.Text = CurrentReport.ReportComment;
                    LoadStatus((int)CurrentReport.ReportStatus);
                }
            }
        }
    }
Exemple #16
0
    /// <summary>
    /// Gets the path to the location of the package based on provided package <see cref="metadata"/>.
    /// </summary>
    /// <param name="metadata">Metadata of the package</param>
    private string GetPackageFilePath(ModulePackageMetadata metadata)
    {
        var packageName = String.Format("{0}.{1}.nupkg", metadata.Id, metadata.Version);

        return(Path.EnsureSlashes(Path.Combine(ImportExportHelper.GetSiteUtilsFolder(), "Export", packageName)));
    }
    /// <summary>
    /// Imports licenses from file.
    /// </summary>
    /// <param name="parameter">Parameter</param>
    private void ImportLicenses(object parameter)
    {
        // Inform about start
        ImportManager.Settings.LogProgressState(LogStatusEnum.Info, GetString("license.import.started"));

        // Get selected value and ensure that file exists
        string file = lstImports.SelectedValue;
        string path = ImportExportHelper.GetSiteUtilsFolder() + "Import\\" + lstImports.SelectedValue;

        if (File.Exists(path))
        {
            using (FileStream fs = FileStream.New(path, FileMode.Open, FileAccess.Read))
            {
                using (StreamReader sr = StreamReader.New(fs))
                {
                    string license         = string.Empty;
                    bool   licenseInserted = true;
                    while (sr.Peek() >= 0)
                    {
                        // Test if user clicked cancel button
                        if (ImportManager.Settings.ProcessCanceled)
                        {
                            licenseInserted = true;
                            ImportManager.Settings.LogProgressState(LogStatusEnum.Finish, GetString("license.import.canceled"));
                            break;
                        }

                        // Read line and check if it's blank line
                        string line = sr.ReadLine();
                        if (string.IsNullOrEmpty(line))
                        {
                            // Insert license
                            if (!licenseInserted)
                            {
                                InsertLicense(license);
                                licenseInserted = true;
                                license         = String.Empty;
                            }
                        }
                        else
                        {
                            licenseInserted = false;
                            license        += line + '\n';
                        }
                    }

                    // Insert license
                    if (!licenseInserted)
                    {
                        InsertLicense(license);
                    }
                }
            }

            // Clear hashtables
            UserInfoProvider.ClearLicenseValues();
            Functions.ClearHashtables();

            if (!ImportManager.Settings.ProcessCanceled)
            {
                ImportManager.Settings.LogProgressState(LogStatusEnum.Finish, GetString("license.import.finish"));
            }
        }
    }
    /// <summary>
    /// Create&Delete directory/file test.
    /// </summary>
    /// <param name="path">Path where to create subdirectory</param>
    /// <param name="di">Parent directory info</param>
    protected void CreateDeleteTest(string path, DirectoryInfo di)
    {
        FileInfo      fi  = null;
        DirectoryInfo sdi = null;

        string   strCreating = GetString("System_Files.Creating");
        string   strDeleting = GetString("System_Files.Deleting");
        string   strOK       = GetString("General.OK");
        string   strFailed   = GetString("System_Files.Failed");
        string   targetPath  = ImportExportHelper.GetSiteUtilsFolderRelativePath();
        DateTime dt          = DateTime.Now;
        // Create subdirectory name
        string subdir = "TestFolder" + dt.Year.ToString() + dt.Month.ToString() + dt.Day.ToString() +
                        dt.Hour.ToString() + dt.Minute.ToString() + dt.Second.ToString();

        // Path is full path
        if (targetPath == null)
        {
            targetPath = ImportExportHelper.GetSiteUtilsFolder() + DirectoryHelper.CombinePath("TestFiles", subdir) + "\\";
        }
        else
        {
            targetPath = targetPath + "TestFiles/" + subdir + "/";
        }


        ltlInfo.Text += strCreating + " '" + targetPath + "' - ";
        try
        {
            // Create subdirectory
            sdi           = di.CreateSubdirectory(subdir);
            ltlInfo.Text += strOK;
        }
        catch
        {
            ltlInfo.Text += strFailed;
        }

        // Create test file name
        string fileName = "TestFile" + dt.Year.ToString() + dt.Month.ToString() + dt.Day.ToString() +
                          dt.Hour.ToString() + dt.Minute.ToString() + dt.Second.ToString() + ".txt";

        ltlInfo.Text += "<br /><br />" + strCreating + " '" + targetPath + fileName + "' - ";
        try
        {
            // Create test file
            fi = FileInfo.New(path + subdir + "/" + fileName);
            using (StreamWriter sw = fi.CreateText())
            {
                sw.WriteLine("Edited - " + dt.ToString());
            }
            ltlInfo.Text += strOK;
        }
        catch
        {
            ltlInfo.Text += strFailed;
        }

        ltlInfo.Text += "<br /><br />" + strDeleting + " '" + targetPath + fileName + "' - ";
        try
        {
            // Delete test file
            fi.Delete();
            ltlInfo.Text += strOK;
        }
        catch
        {
            ltlInfo.Text += strFailed;
        }


        ltlInfo.Text += "<br /><br />" + strDeleting + " '" + targetPath + "' - ";
        try
        {
            // Delete subdirectory
            sdi.Delete();
            ltlInfo.Text += strOK;
        }
        catch
        {
            ltlInfo.Text += strFailed;
        }
    }
Exemple #19
0
        public async Task <SaveAllSpecies> Import()
        {
            SaveAllSpecies import = await ImportExportHelper.Import();

            return(import);
        }
Exemple #20
0
    protected void Page_Load(object sender, EventArgs e)
    {
        backup = QueryHelper.GetBoolean("backup", false);

        // Check permissions
        if (backup)
        {
            if (!CMSContext.CurrentUser.IsAuthorizedPerResource("cms.globalpermissions", "BackupObjects", CMSContext.CurrentSiteName))
            {
                RedirectToCMSDeskAccessDenied("cms.globalpermissions", "BackupObjects");
            }
        }
        else if (!CMSContext.CurrentUser.IsAuthorizedPerResource("cms.globalpermissions", "ExportObjects", CMSContext.CurrentSiteName))
        {
            RedirectToCMSDeskAccessDenied("cms.globalpermissions", "ExportObjects");
        }

        // Register script for pendingCallbacks repair
        ScriptHelper.FixPendingCallbacks(Page);

        // Async control events binding
        ucAsyncControl.OnFinished += ucAsyncControl_OnFinished;
        ucAsyncControl.OnError    += ucAsyncControl_OnError;

        if (!IsCallback)
        {
            try
            {
                // Delete temporary files
                ExportProvider.DeleteTemporaryFiles();
            }
            catch (Exception ex)
            {
                DisplayError(ex);
            }

            if (backup)
            {
                SetTitle("CMSModules/CMS_ImportExport/backupobject.png", GetString("BackupObject.Title"), null, null);
            }
            else
            {
                SetTitle("CMSModules/CMS_ImportExport/exportobject.png", GetString("ExportObject.Title"), null, null);
            }

            // Display BETA warning
            lblBeta.Visible = CMSContext.IsBetaVersion();
            lblBeta.Text    = string.Format(GetString("export.BETAwarning"), CMSContext.GetFriendlySystemVersion(false));

            // Get data from parameters
            objectId   = ValidationHelper.GetInteger(Request.QueryString["objectId"], 0);
            objectType = ValidationHelper.GetString(Request.QueryString["objectType"], "");

            // Get the object
            infoObj = CMSObjectHelper.GetReadOnlyObject(objectType);

            if (infoObj == null)
            {
                plcExportDetails.Visible = false;
                lblIntro.Text            = GetString("ExportObject.ObjectTypeNotFound");
                lblIntro.CssClass        = "ErrorLabel";
                return;
            }

            // Get exported object
            exportObj = infoObj.GetObject(objectId);
            if (exportObj == null)
            {
                plcExportDetails.Visible = false;
                lblIntro.Text            = GetString("ExportObject.ObjectNotFound");
                lblIntro.CssClass        = "ErrorLabel";
                btnOk.Visible            = false;
                return;
            }

            // Store display name
            exportObjectDisplayName = HTMLHelper.HTMLEncode(exportObj.ObjectDisplayName);

            if (backup)
            {
                lblIntro.Text = string.Format(GetString("BackupObject.Intro"), ResHelper.LocalizeString(exportObjectDisplayName));
            }
            else
            {
                lblIntro.Text = string.Format(GetString("ExportObject.Intro"), ResHelper.LocalizeString(exportObjectDisplayName));
            }

            btnOk.Click += btnOk_Click;

            if (!RequestHelper.IsPostBack())
            {
                lblIntro.Visible    = true;
                lblFileName.Visible = true;
                txtFileName.Text    = GetExportFileName(exportObj, backup);
                if (backup)
                {
                    btnOk.Text = GetString("General.backup");
                }
                else
                {
                    btnOk.Text = GetString("General.export");
                }
                btnCancel.Text = GetString("General.Close");
            }

            string path = null;
            if (backup)
            {
                path         = ImportExportHelper.GetObjectBackupFolder(exportObj);
                targetFolder = Server.MapPath(path);

                targetUrl = ResolveUrl(path) + "/" + txtFileName.Text;
            }
            else
            {
                targetFolder = ImportExportHelper.GetSiteUtilsFolder() + "Export";
                path         = ImportExportHelper.GetSiteUtilsFolderRelativePath();
                if (path != null)
                {
                    string externalUrl = null;
                    if (StorageHelper.IsExternalStorage)
                    {
                        externalUrl = File.GetFileUrl(path + "Export/" + txtFileName.Text, CMSContext.CurrentSiteName);
                    }

                    if (string.IsNullOrEmpty(externalUrl))
                    {
                        targetUrl = ResolveUrl(path) + "Export/" + txtFileName.Text;
                    }
                    else
                    {
                        targetUrl = externalUrl;
                    }
                }
                else
                {
                    targetUrl = null;
                }
            }
        }
    }
Exemple #21
0
        public async Task <SaveAllSpecies> Export()
        {
            SaveAllSpecies export = await ImportExportHelper.Export();

            return(export);
        }
Exemple #22
0
    private void LoadSettingsControl()
    {
        try
        {
            if (Settings != null)
            {
                plcControl.Controls.Clear();
                plcControl.Visible = false;
                settingsControl    = null;

                if (!string.IsNullOrEmpty(SelectedNodeValue))
                {
                    string virtualPath = "~/CMSModules/ImportExport/Controls/Import/" + (SiteNode ? "Site/" : "") + ImportExportHelper.GetSafeObjectTypeName(SelectedNodeValue) + ".ascx";
                    string filePath    = Server.MapPath(virtualPath);

                    if (File.Exists(filePath))
                    {
                        // Load control
                        settingsControl = (ImportExportControl)Page.LoadUserControl(virtualPath);
                        settingsControl.EnableViewState = true;
                        settingsControl.ID       = "settingControl";
                        settingsControl.Settings = Settings;

                        if (settingsControl.Visible)
                        {
                            plcControl.Controls.Add(settingsControl);
                            plcControl.Visible = true;
                        }
                    }
                }
            }
        }
        catch (Exception ex)
        {
            lblError.Text = "[ImportPanel.LoadSettingsControl]: Error loading settings control for object type '" + SelectedNodeValue + "'. " + EventLogProvider.GetExceptionLogMessage(ex);
        }
    }
Exemple #23
0
    /// <summary>
    /// Button Ok click.
    /// </summary>
    /// <param name="sender">Sender</param>
    /// <param name="e">Arguments</param>
    protected void btnOk_Click(object sender, EventArgs e)
    {
        // Validate file name
        string fileName     = txtFileName.Text.Trim();
        string errorMessage = new Validator().NotEmpty(fileName, GetString("lincense.export.filenameempty")).IsFileName(fileName, GetString("license.export.notvalidfilename")).Result;

        if (!string.IsNullOrEmpty(errorMessage))
        {
            lblError.Visible = true;
            lblError.Text    = errorMessage;
        }
        else
        {
            try
            {
                // Create writers
                string path = ImportExportHelper.GetSiteUtilsFolder() + "Export\\" + fileName;
                DirectoryHelper.EnsureDiskPath(path, SettingsKeyProvider.WebApplicationPhysicalPath);

                using (FileStream file = FileStream.New(path, FileMode.Create))
                {
                    using (StreamWriter sw = StreamWriter.New(file))
                    {
                        // Array list for duplicity checking
                        ArrayList allSites = new ArrayList();

                        // Get all sites
                        DataSet sites = SiteInfoProvider.GetSites(null, null, "SiteID,SiteDomainName");
                        if (!DataHelper.DataSourceIsEmpty(sites))
                        {
                            foreach (DataRow dr in sites.Tables[0].Rows)
                            {
                                // Get domain
                                string domain = ValidationHelper.GetString(dr["SiteDomainName"], "");
                                if (!string.IsNullOrEmpty(domain))
                                {
                                    domain = GetDomain(domain);
                                    // Add to file
                                    if (!allSites.Contains(domain))
                                    {
                                        sw.WriteLine(domain);
                                        allSites.Add(domain);
                                    }

                                    // Add all domain aliases
                                    DataSet aliases = SiteDomainAliasInfoProvider.GetDomainAliases("SiteID=" + ValidationHelper.GetString(dr["SiteID"], ""), null, "SiteDomainAliasName");
                                    if (!DataHelper.DataSourceIsEmpty(aliases))
                                    {
                                        foreach (DataRow drAlias in aliases.Tables[0].Rows)
                                        {
                                            // Get domain
                                            domain = ValidationHelper.GetString(drAlias["SiteDomainAliasName"], "");
                                            if (!string.IsNullOrEmpty(domain))
                                            {
                                                domain = GetDomain(domain);
                                                // Add to file
                                                if (!allSites.Contains(domain))
                                                {
                                                    sw.WriteLine(domain);
                                                    allSites.Add(domain);
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }

                // Output
                string downloadPath = ImportExportHelper.GetSiteUtilsFolderRelativePath();
                string location     = null;
                string link         = null;

                // Path is relative path
                if (downloadPath != null)
                {
                    string externalUrl = null;
                    if (StorageHelper.IsExternalStorage)
                    {
                        externalUrl = File.GetFileUrl(downloadPath + "Export/" + fileName, CMSContext.CurrentSiteName);
                    }

                    if (string.IsNullOrEmpty(externalUrl))
                    {
                        location = URLHelper.ResolveUrl(downloadPath + "Export/" + fileName);
                    }
                    else
                    {
                        location = externalUrl;
                    }

                    link = "<a href=\"" + location + "\" target=\"_blank\">" + GetString("license.export.download") + "</a>";
                }
                else
                {
                    location = path;
                }

                lblInfo.Text    = string.Format(GetString("license.export.exported"), location) + "<br /><br />" + link;
                lblInfo.Visible = true;

                plcTextBox.Visible = false;
            }
            catch (Exception ex)
            {
                lblError.Visible = true;
                lblError.Text    = ex.Message;
            }
        }
    }