protected void gridFiles_OnAction(string actionName, object actionArgument) { switch (actionName.ToLowerCSafe()) { case "delete": try { // Get meta file ID int metaFileId = ValidationHelper.GetInteger(actionArgument, 0); // Get meta file MetaFileInfo mfi = MetaFileInfoProvider.GetMetaFileInfo(metaFileId); // Set currently handled meta file CurrentlyHandledMetaFile = mfi; // Fire before delete event CancelEventArgs beforeDeleteArgs = new CancelEventArgs(); if (OnBeforeDelete != null) { OnBeforeDelete(this, beforeDeleteArgs); } // If delete was not cancelled if (!beforeDeleteArgs.Cancel) { // Delete meta file MetaFileInfoProvider.DeleteMetaFileInfo(metaFileId); // Fire after delete event if (OnAfterDelete != null) { OnAfterDelete(this, EventArgs.Empty); } } } catch (Exception ex) { lblError.Visible = true; lblError.Text = ex.Message; } break; } }
protected void hdnPostback_Click(object sender, EventArgs e) { try { int fileId = ValidationHelper.GetInteger(hdnField.Value, 0); if (fileId > 0) { CurrentlyHandledMetaFile = MetaFileInfoProvider.GetMetaFileInfo(fileId); RaiseOnAfterUpload(); gridFile.ReloadData(); updPanel.Update(); } } catch (Exception ex) { ShowError(ex.Message); } }
protected void hdnPostback_Click(object sender, EventArgs e) { try { int fileId = ValidationHelper.GetInteger(hdnField.Value, 0); if (fileId > 0) { CurrentlyHandledMetaFile = MetaFileInfoProvider.GetMetaFileInfo(fileId); RaiseOnAfterUpload(); gridFiles.ReloadData(); } } catch (Exception ex) { lblError.Visible = true; lblError.Text = ex.Message; } }
/// <summary> /// Deletes the file binary from the database. /// </summary> /// <param name="fileId">MetaFile ID</param> /// <param name="name">Returning the metafile name</param> protected bool DeleteFromDatabase(int fileId, ref string name) { // Delete the file in database and ensure it in the file system MetaFileInfo mi = MetaFileInfoProvider.GetMetaFileInfo(fileId); if (mi != null) { name = mi.MetaFileName; MetaFileInfoProvider.EnsurePhysicalFile(mi, SiteInfoProvider.GetSiteName(mi.MetaFileSiteID)); // Clear the binary data mi.MetaFileBinary = null; mi.Generalized.UpdateData(); return(true); } return(false); }
/// <summary> /// Copies the file binary to the database. /// </summary> /// <param name="fileId">MetaFile ID</param> /// <param name="name">Returning the metafile name</param> protected bool CopyToDatabase(int fileId, ref string name) { // Copy the file from file system to the database MetaFileInfo mi = MetaFileInfoProvider.GetMetaFileInfo(fileId); if (mi != null) { name = mi.MetaFileName; if (mi.MetaFileBinary == null) { // Ensure the binary data mi.MetaFileBinary = MetaFileInfoProvider.GetFile(mi, SiteInfoProvider.GetSiteName(mi.MetaFileSiteID)); mi.Generalized.UpdateData(); return(true); } } return(false); }
private void HandleMetaFileUpload() { string message = string.Empty; MetaFileInfo mfi = null; try { // Check the allowed extensions CheckAllowedExtensions(); if (InsertMode) { // Create new meta file mfi = new MetaFileInfo(FileUploadControl.PostedFile, ObjectID, ObjectType, Category); mfi.MetaFileSiteID = SiteID; } else { if (MetaFileID > 0) { mfi = MetaFileInfoProvider.GetMetaFileInfo(MetaFileID); } else { DataSet ds = MetaFileInfoProvider.GetMetaFilesWithoutBinary(ObjectID, ObjectType, Category, null, null); if (!DataHelper.DataSourceIsEmpty(ds)) { mfi = new MetaFileInfo(ds.Tables[0].Rows[0]); } } if (mfi != null) { string fileExt = Path.GetExtension(FileUploadControl.FileName); // Init the MetaFile data mfi.MetaFileName = URLHelper.GetSafeFileName(FileUploadControl.FileName, null); mfi.MetaFileExtension = fileExt; mfi.MetaFileSize = Convert.ToInt32(FileUploadControl.PostedFile.InputStream.Length); mfi.MetaFileMimeType = MimeTypeHelper.GetMimetype(fileExt); mfi.InputStream = FileUploadControl.PostedFile.InputStream; // Set image properties if (ImageHelper.IsImage(mfi.MetaFileExtension)) { // Make MetaFile binary load from InputStream mfi.MetaFileBinary = null; ImageHelper ih = new ImageHelper(mfi.MetaFileBinary); mfi.MetaFileImageHeight = ih.ImageHeight; mfi.MetaFileImageWidth = ih.ImageWidth; } } } if (mfi != null) { // Save file to the database MetaFileInfoProvider.SetMetaFileInfo(mfi); } } catch (Exception ex) { // Log the exception EventLogProvider.LogException("Uploader", "UploadMetaFile", ex); message = ex.Message; } finally { string afterSaveScript = string.Empty; if (String.IsNullOrEmpty(message)) { if (!string.IsNullOrEmpty(AfterSaveJavascript)) { afterSaveScript = String.Format( @" if (window.{0} != null) {{ window.{0}(files) }} else if ((window.parent != null) && (window.parent.{0} != null)) {{ window.parent.{0}(files) }} ", AfterSaveJavascript ); } else { afterSaveScript = String.Format(@" if ((window.parent != null) && (/parentelemid={0}/i.test(window.location.href)) && (window.parent.InitRefresh_{0})) {{ window.parent.InitRefresh_{0}('{1}', false, false, {2}); }} else {{ if ('{1}' != '') {{ alert('{1}'); }} }}", ParentElemID, ScriptHelper.GetString(message.Trim(), false), mfi.MetaFileID.ToString() + (InsertMode ? ",'insert'" : ",'update'")); } } else { afterSaveScript += ScriptHelper.GetAlertScript(message, false); } ScriptHelper.RegisterStartupScript(this, typeof(string), "afterSaveScript_" + ClientID, afterSaveScript, true); } }
/// <summary> /// Reload data. /// </summary> public override void ReloadData(bool forceLoad) { pnlContent.Controls.Clear(); mReportControls = null; // Report info must exists if (ReportInfo != null) { // Check permissions for report if (ReportInfo.ReportAccess != ReportAccessEnum.All) { if (!CMSContext.CurrentUser.IsAuthenticated()) { Visible = false; return; } } // If ReloadData is called before Init, load parameters if (!wasInit || IgnoreWasInit) { LoadParameters(); } // Set parameters only if it is allowed if (mLoadFormParameters) { ReportParameters = formElem.DataRow; } // Clear resolver because it can contains old parameters values ClearResolver(); // Build report HTML mReportHTML = ReportInfo.ReportLayout; mReportHTML = ResolveMacros(mReportHTML); mReportHTML = HTMLHelper.ResolveUrls(mReportHTML, null); // For emails - resolve metafile images as inline attachments if (EmailMode) { // Find all inline images MatchCollection coll = InlineImageRegex.Matches(mReportHTML); foreach (Match m in coll) { Guid guid = ValidationHelper.GetGuid(m.Groups[1], Guid.Empty); if (guid != Guid.Empty) { // For all found images, find according metafile MetaFileInfo mfi = MetaFileInfoProvider.GetMetaFileInfo(guid, null, true); if (mfi != null) { // If metafile found add binary representation to inline attachments ReportSubscriptionSender.AddToRequest(ReportName, "g" + guid, mfi.MetaFileBinary); mReportHTML = mReportHTML.Replace(m.Value, "##InlineImage##" + guid + "##InlineImage##"); } } } } // Add the content pnlContent.Controls.Clear(); pnlContent.Controls.Add(new LiteralControl(mReportHTML)); ControlsHelper.ResolveDynamicControls(pnlContent); // Null GraphImageWidh if no graph present to enable load alone tables,values,etc bool containsGraph = mReportHTML.Contains("%%control:ReportGraph?"); if (!containsGraph) { GraphImageWidth = 0; } // Indicates if any item in the report is visible bool itemVisible = false; // Init the child controls foreach (AbstractReportControl ctrl in ReportControls) { if ((CheckInnerControls) && (!ctrl.IsValid(ReportInfo))) { ctrl.Visible = false; continue; } ctrl.RenderCssClasses = RenderCssClasses; ctrl.ReportParameters = ReportParameters; ctrl.ContextParameters = ContextParameters; ctrl.AllParameters = AllParameters; ctrl.SavedReportGuid = Guid.Empty; ctrl.GraphImageWidth = GraphImageWidth; ctrl.DynamicMacros = DynamicMacros; ctrl.TableFirstColumnWidth = TableFirstColumnWidth; ctrl.SelectedInterval = SelectedInterval; ctrl.RenderCssClasses = RenderCssClasses; ctrl.SendOnlyNonEmptyDataSource = SendOnlyNonEmptyDataSource; ctrl.EmailMode = EmailMode; ctrl.ReportSubscriptionSiteID = ReportSubscriptionSiteID; // Do no generate export context menu for saved graph ctrl.EnableExport = !isSave && EnableExport; if (AreaMaxWidth != 0) { ctrl.ComputedWidth = AreaMaxWidth; } // In save mode must be defined new Guid for graph image and saved reeport id if (mSaveMode) { ctrl.SavedReportGuid = Guid.NewGuid(); ctrl.SavedReportID = mSavedReportId; } ctrl.ReloadData(forceLoad); if (ctrl.ComputedWidth != 0) { AreaMaxWidth = ctrl.ComputedWidth; } itemVisible = itemVisible || ctrl.Visible; } if (!itemVisible && EmailMode) { Visible = false; } reportLoaded = true; // Display/hide the filtering form formElem.Visible = mDisplayFilterResult; } }
/// <summary> /// Provides operations necessary to create and store new metafile. /// </summary> /// <param name="args">Upload arguments.</param> /// <param name="context">HttpContext instance.</param> private void HandleMetafileUpload(UploaderHelper args, HttpContext context) { MetaFileInfo mfi = null; try { // Check the allowed extensions args.IsExtensionAllowed(); if (args.IsInsertMode) { // Create new metafile info mfi = new MetaFileInfo(args.FilePath, args.MetaFileArgs.ObjectID, args.MetaFileArgs.ObjectType, args.MetaFileArgs.Category); mfi.MetaFileSiteID = args.MetaFileArgs.SiteID; } else { if (args.MetaFileArgs.MetaFileID > 0) { mfi = MetaFileInfoProvider.GetMetaFileInfo(args.MetaFileArgs.MetaFileID); } else { DataSet ds = MetaFileInfoProvider.GetMetaFilesWithoutBinary(args.MetaFileArgs.ObjectID, args.MetaFileArgs.ObjectType, args.MetaFileArgs.Category, null, null); if (!DataHelper.DataSourceIsEmpty(ds)) { mfi = new MetaFileInfo(ds.Tables[0].Rows[0]); } } if (mfi != null) { FileInfo fileInfo = FileInfo.New(args.FilePath); // Init the MetaFile data mfi.MetaFileName = URLHelper.GetSafeFileName(fileInfo.Name, null); mfi.MetaFileExtension = fileInfo.Extension; FileStream file = fileInfo.OpenRead(); mfi.MetaFileSize = Convert.ToInt32(fileInfo.Length); mfi.MetaFileMimeType = MimeTypeHelper.GetMimetype(mfi.MetaFileExtension); mfi.InputStream = file; // Set image properties if (ImageHelper.IsImage(mfi.MetaFileExtension)) { ImageHelper ih = new ImageHelper(mfi.MetaFileBinary); mfi.MetaFileImageHeight = ih.ImageHeight; mfi.MetaFileImageWidth = ih.ImageWidth; } } } if (mfi != null) { MetaFileInfoProvider.SetMetaFileInfo(mfi); } } catch (Exception ex) { args.Message = ex.Message; } finally { if (String.IsNullOrEmpty(args.Message)) { if (!string.IsNullOrEmpty(args.AfterSaveJavascript)) { args.AfterScript = String.Format(@" if (window.{0} != null) {{ window.{0}() }} else if ((window.parent != null) && (window.parent.{0} != null)) {{ window.parent.{0}() }}", args.AfterSaveJavascript); } else { args.AfterScript = String.Format(@" if (window.InitRefresh_{0}) {{ window.InitRefresh_{0}('{1}', false, false, {2}); }} else {{ if ('{1}' != '') {{ alert('{1}'); }} }}", args.ParentElementID, ScriptHelper.GetString(args.Message.Trim(), false), mfi.MetaFileID); } } else { args.AfterScript += ScriptHelper.GetAlertScript(args.Message, false); } args.AddEventTargetPostbackReference(); context.Response.Write(args.AfterScript); context.Response.Flush(); } }