コード例 #1
0
    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;
        }
    }
コード例 #2
0
    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);
        }
    }
コード例 #3
0
    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);
    }
コード例 #6
0
    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);
        }
    }
コード例 #7
0
    /// <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;
        }
    }
コード例 #8
0
        /// <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();
            }
        }