protected void Save_OnClick(object sender, EventArgs e)
		{
			try
			{
				if (FolderList.Items.Count == 0)
				{
					return;
				}

				DotNetNuke.Entities.Portals.PortalSettings portalSettings = DotNetNuke.Entities.Portals.PortalSettings.Current;

				string fileContents = htmlText2.Text.Trim();
				string newFileName = FileName.Text;
				if (! (newFileName.EndsWith(".html")))
				{
					newFileName = newFileName + ".html";
				}

				string rootFolder = portalSettings.HomeDirectoryMapPath;
				string dbFolderPath = FolderList.SelectedValue;
				string virtualFolder = (string)(string)FileSystemValidation.ToVirtualPath(dbFolderPath);
				rootFolder = rootFolder + FolderList.SelectedValue;
				rootFolder = rootFolder.Replace("/", "\\");

				string errorMessage = string.Empty;
				FolderController folderCtrl = new FolderController();
				FolderInfo folder = folderCtrl.GetFolder(portalSettings.PortalId, dbFolderPath, false);

				if ((folder == null))
				{
					ShowSaveTemplateMessage(GetString("msgFolderDoesNotExist.Text"));
					return;
				}

				// Check file name is valid
				FileSystemValidation dnnValidator = new FileSystemValidation();
				errorMessage = dnnValidator.OnCreateFile(virtualFolder + newFileName, fileContents.Length);
				if (! (string.IsNullOrEmpty(errorMessage)))
				{
					ShowSaveTemplateMessage(errorMessage);
					return;
				}

				FileController fileCtrl = new FileController();
				DotNetNuke.Services.FileSystem.FileInfo existingFile = fileCtrl.GetFile(newFileName, portalSettings.PortalId, folder.FolderID);

				// error if file exists
				if (! Overwrite.Checked && existingFile != null)
				{
					ShowSaveTemplateMessage(GetString("msgFileExists.Text"));
					return;
				}

				FileInfo newFile = existingFile;
				if ((newFile == null))
				{
					newFile = new FileInfo();
				}

				newFile.FileName = newFileName;
				newFile.ContentType = "text/plain";
				newFile.Extension = "html";
				newFile.Size = fileContents.Length;
				newFile.FolderId = folder.FolderID;

				errorMessage = FileSystemUtils.CreateFileFromString(rootFolder, newFile.FileName, fileContents, newFile.ContentType, string.Empty, false);

				if (! (string.IsNullOrEmpty(errorMessage)))
				{
					ShowSaveTemplateMessage(errorMessage);
					return;
				}

				existingFile = fileCtrl.GetFile(newFileName, portalSettings.PortalId, folder.FolderID);
				if (newFile.FileId != existingFile.FileId)
				{
					newFile.FileId = existingFile.FileId;
				}

				if (newFile.FileId != Null.NullInteger)
				{
					fileCtrl.UpdateFile(newFile.FileId, newFile.FileName, newFile.Extension, newFile.Size, newFile.Width, newFile.Height, newFile.ContentType, folder.FolderPath, folder.FolderID);
				}
				else
				{
					fileCtrl.AddFile(portalSettings.PortalId, newFile.FileName, newFile.Extension, newFile.Size, newFile.Width, newFile.Height, newFile.ContentType, folder.FolderPath, folder.FolderID, true);
				}

				ShowSaveTemplateMessage(string.Empty);
			}
			catch (Exception ex)
			{
				DotNetNuke.Services.Exceptions.Exceptions.LogException(ex);
				throw ex;
			}
		}
Exemple #2
0
        protected void Save_OnClick(object sender, EventArgs e)
        {
            try
            {
                if (FolderList.Items.Count == 0)
                {
                    return;
                }

                DotNetNuke.Entities.Portals.PortalSettings portalSettings = DotNetNuke.Entities.Portals.PortalSettings.Current;

                string fileContents = htmlText2.Text.Trim();
                string newFileName  = FileName.Text;
                if (!(newFileName.EndsWith(".html")))
                {
                    newFileName = newFileName + ".html";
                }

                string rootFolder    = portalSettings.HomeDirectoryMapPath;
                string dbFolderPath  = FolderList.SelectedValue;
                string virtualFolder = (string)(string)FileSystemValidation.ToVirtualPath(dbFolderPath);
                rootFolder = rootFolder + FolderList.SelectedValue;
                rootFolder = rootFolder.Replace("/", "\\");

                string           errorMessage = string.Empty;
                FolderController folderCtrl   = new FolderController();
                FolderInfo       folder       = folderCtrl.GetFolder(portalSettings.PortalId, dbFolderPath, false);

                if ((folder == null))
                {
                    ShowSaveTemplateMessage(GetString("msgFolderDoesNotExist.Text"));
                    return;
                }

                // Check file name is valid
                FileSystemValidation dnnValidator = new FileSystemValidation();
                errorMessage = dnnValidator.OnCreateFile(virtualFolder + newFileName, fileContents.Length);
                if (!(string.IsNullOrEmpty(errorMessage)))
                {
                    ShowSaveTemplateMessage(errorMessage);
                    return;
                }

                FileController fileCtrl = new FileController();
                DotNetNuke.Services.FileSystem.FileInfo existingFile = fileCtrl.GetFile(newFileName, portalSettings.PortalId, folder.FolderID);

                // error if file exists
                if (!Overwrite.Checked && existingFile != null)
                {
                    ShowSaveTemplateMessage(GetString("msgFileExists.Text"));
                    return;
                }

                FileInfo newFile = existingFile;
                if ((newFile == null))
                {
                    newFile = new FileInfo();
                }

                newFile.FileName    = newFileName;
                newFile.ContentType = "text/plain";
                newFile.Extension   = "html";
                newFile.Size        = fileContents.Length;
                newFile.FolderId    = folder.FolderID;

                errorMessage = FileSystemUtils.CreateFileFromString(rootFolder, newFile.FileName, fileContents, newFile.ContentType, string.Empty, false);

                if (!(string.IsNullOrEmpty(errorMessage)))
                {
                    ShowSaveTemplateMessage(errorMessage);
                    return;
                }

                existingFile = fileCtrl.GetFile(newFileName, portalSettings.PortalId, folder.FolderID);
                if (newFile.FileId != existingFile.FileId)
                {
                    newFile.FileId = existingFile.FileId;
                }

                if (newFile.FileId != Null.NullInteger)
                {
                    fileCtrl.UpdateFile(newFile.FileId, newFile.FileName, newFile.Extension, newFile.Size, newFile.Width, newFile.Height, newFile.ContentType, folder.FolderPath, folder.FolderID);
                }
                else
                {
                    fileCtrl.AddFile(portalSettings.PortalId, newFile.FileName, newFile.Extension, newFile.Size, newFile.Width, newFile.Height, newFile.ContentType, folder.FolderPath, folder.FolderID, true);
                }

                ShowSaveTemplateMessage(string.Empty);
            }
            catch (Exception ex)
            {
                DotNetNuke.Services.Exceptions.Exceptions.LogException(ex);
                throw ex;
            }
        }