private static void InitMailProcessing()
    {
        PX.Data.EP.MailSendProvider.Register(new PX.Objects.EP.CommonMailSendProvider());

        PX.Objects.EP.EmailProcessorManager.Register(new PX.Objects.EP.ConversationEmailProcessor());
        PX.Objects.EP.EmailProcessorManager.Register(new PX.Objects.EP.ConfirmReceiptEmailProcessor());
        PX.Objects.EP.EmailProcessorManager.Register(new PX.Objects.EP.DefaultEmailProcessor());
        PX.Objects.EP.EmailProcessorManager.Register(new PX.Objects.EP.ExchangeEmailProcessor());
        PX.Objects.EP.EmailProcessorManager.Register(new PX.Objects.CR.CaseCommonEmailProcessor());
        PX.Objects.EP.EmailProcessorManager.Register(new PX.Objects.EP.RouterEmailProcessor());
        PX.Objects.EP.EmailProcessorManager.Register(new PX.Objects.CR.NewCaseEmailProcessor());
        PX.Objects.EP.EmailProcessorManager.Register(new PX.Objects.CR.ContactBAccountEmailProcessor());
        PX.Objects.EP.EmailProcessorManager.Register(new PX.Objects.CR.NewLeadEmailProcessor());
        PX.Objects.EP.EmailProcessorManager.Register(new PX.Objects.EP.NotificationEmailProcessor());
        PX.Objects.EP.EmailProcessorManager.Register(new PX.Objects.EP.UnassignedEmailProcessor());
        PX.Objects.EP.EmailProcessorManager.Register(new PX.Objects.EP.CleanerEmailProcessor());
        PX.Objects.EP.EmailProcessorManager.Register(new PX.Objects.EP.AssignmentEmailProcessor());
        PX.Objects.EP.CommonMailReceiveProvider receiver = new PX.Objects.EP.CommonMailReceiveProvider();
        PX.Data.EP.EMailMessageReceiver.RegisterProvider(receiver);
        PX.Data.EP.EMailMessageReceiver.RegisterProcessor(receiver);
        PX.Data.EP.EMailMessageReceiver.RegisterOriginalMailProvider(receiver);

        PX.Data.Wiki.Parser.ISettings wikiSettings = new PXWikiSettings(null).Absolute.Settings;
        PX.Data.Reports.PXReportTools.WikiSettings = wikiSettings;
    }
コード例 #2
0
    protected void Page_Load(object sender, EventArgs e)
    {
        string         exportType = Request["type"];
        WikiReader     reader     = PXGraph.CreateInstance <WikiReader>();
        PXWikiSettings settings   = new PXWikiSettings(this, reader);

        this.SetReaderFilter(reader);
        WikiPage article = reader.Pages.SelectWindowed(0, 1);

        reader.Pages.Current = article;
        PXRenderer renderer = this.CreateRenderer(exportType, settings.Absolute);

        if (article != null && !string.IsNullOrEmpty(article.Content) && renderer != null)
        {
            var ctx = new PXDBContext(settings.Absolute);

            ctx.Renderer = renderer;
            ctx.WikiID   = article.WikiID;
            string result = PXWikiParser.Parse(article.Content, ctx);
            string mime   = MimeTypes.GetMimeType("." + exportType);
            Response.AddHeader("cache-control", "no-store, private");
            Response.Clear();
            Response.Cache.SetCacheability(HttpCacheability.Private);
            Response.Cache.SetExpires(DateTime.Now.AddSeconds(2));
            Response.Cache.SetValidUntilExpires(true);
            Response.AddHeader("Content-Type", mime);
            Response.AddHeader("Content-Encoding", "ansi");
            this.AdditionalResponseParams(renderer, article);
            Response.Write(result);
        }
    }
コード例 #3
0
    protected void Page_Load(object sender, EventArgs e)
    {
        WikiReader     reader   = PXGraph.CreateInstance <WikiReader>();
        PXWikiSettings settings = new PXWikiSettings(this, reader);

        reader.Filter.Current.PageID = PX.Common.GUID.CreateGuid(this.Request["PageID"]);
        WikiPage article = reader.Pages.SelectWindowed(0, 1);

        reader.Pages.Current = article;
        if (article != null && !string.IsNullOrEmpty(article.Content))
        {
            MemoryStream  stream   = new MemoryStream();
            PXPdfRenderer renderer = new PXPdfRenderer(stream, settings.Relative);
            settings.Relative.Renderer = renderer;
            PXWikiParser.Parse(article.Content, settings.Relative);
            string mime  = MimeTypes.GetMimeType(".pdf");
            byte[] bytes = new byte[renderer.ResultPDFStream.Length];

            renderer.ResultPDFStream.Position = 0;
            renderer.ResultPDFStream.Read(bytes, 0, bytes.Length);
            Response.AddHeader("cache-control", "no-store, private");
            Response.Clear();
            Response.Cache.SetCacheability(HttpCacheability.Private);
            Response.Cache.SetExpires(DateTime.Now.AddSeconds(2));
            Response.Cache.SetValidUntilExpires(true);
            Response.AddHeader("Content-Type", mime);
            Response.AddHeader("Content-Length", renderer.ResultPDFStream.Length.ToString());
            Response.BinaryWrite(bytes);
        }
    }
コード例 #4
0
        public virtual IEnumerable IndexCustomArticles(PXAdapter adapter)
        {
            PXLongOperation.StartOperation(this, delegate()
            {
                foreach (var result in WikiArticles.Select())
                {
                    string plaintext = null;

                    var _wp = (WikiPage)result[typeof(WikiPage)];
                    var _wr = (WikiRevision)result[typeof(WikiRevision)];
                    var _wl = (WikiPageLanguage)result[typeof(WikiPageLanguage)];

                    if (_wp.IsHtml != true)
                    {
                        WikiReader reader       = PXGraph.CreateInstance <WikiReader>();
                        PXWikiSettings settings = new PXWikiSettings(new PXPage(), reader);
                        PXTxtRenderer renderer  = new PXTxtRenderer(settings.Absolute);
                        var ctx      = new PXDBContext(settings.Absolute);
                        ctx.Renderer = renderer;
                        plaintext    = (_wl.Title ?? "") + Environment.NewLine + PXWikiParser.Parse(_wr.Content, ctx);
                    }
                    else
                    {
                        plaintext = (_wl.Title ?? "") + Environment.NewLine + SearchService.Html2PlainText(_wr.Content);
                    }


                    //Try updating the article in current Company
                    if (!PXDatabase.Update <WikiRevision>(
                            new PXDataFieldAssign("PlainText", PXDbType.NVarChar, plaintext),
                            new PXDataFieldRestrict("PageID", PXDbType.UniqueIdentifier, _wr.PageID),
                            new PXDataFieldRestrict("PageRevisionID", PXDbType.Int, _wr.PageRevisionID),
                            new PXDataFieldRestrict("Language", PXDbType.VarChar, _wr.Language)
                            ))
                    {
                        //Article may be shared. Try updating the article through graph (thus handling the shared record update stratagy)
                        //if article is not updatable an exception may be thrown - ignore.
                        try
                        {
                            ArticleUpdater updater = PXGraph.CreateInstance <ArticleUpdater>();
                            WikiRevision rev       = updater.Revision.Select(_wr.PageID, _wr.PageRevisionID, _wr.Language);
                            rev.PlainText          = plaintext;
                            updater.Revision.Update(rev);
                            updater.Persist();
                        }
                        catch (Exception ex)
                        {
                            PXTrace.WriteInformation("Plain text field could not be updated for article = {0}. Error Message: {1}", _wr.PageID, ex.Message);
                        }
                    }
                }
            });



            return(adapter.Get());
        }