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); }
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; } } } }
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(); } } } }
/// <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); } } } }
/// <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()); }
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()); }
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", "</br>")) }); } 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); } } } }
/// <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; } }
public async Task <SaveAllSpecies> Import() { SaveAllSpecies import = await ImportExportHelper.Import(); return(import); }
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; } } } }
public async Task <SaveAllSpecies> Export() { SaveAllSpecies export = await ImportExportHelper.Export(); return(export); }
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); } }
/// <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; } } }