GetSiteConfig() public static method

public static GetSiteConfig ( ) : SiteConfig
return SiteConfig
        /// <summary>
        /// Creates and returns instance of a <see cref="Core.EditControlAdapter"/> based on the site configuration.
        /// </summary>
        /// <returns>An instance of <see cref="Core.EditControlAdapter"/></returns>
        public static EditControlAdapter CreateEditControl <TDefault>()
            where TDefault : EditControlAdapter, new()
        {
            SiteConfig siteConfig            = SiteConfig.GetSiteConfig();
            string     configuredEditControl = siteConfig.EntryEditControl;

            Core.EditControlAdapter editControl;

            Type editControlType;

            // try the configured control
            if (TryGetType(configuredEditControl, out editControlType) && TryCreateControl(editControlType, out editControl))
            {
                return(editControl);
            }

            // try the requested default
            if (TryCreateControl(typeof(TDefault), out editControl))
            {
                return(editControl);
            }

            // if all else failed, default to the plain textbox, since that doesn't depend on external assemblies.
            return(new TextBoxAdapter());
        }
        private void LoadFilters()
        {
            SiteConfig siteConfig = SiteConfig.GetSiteConfig(SiteConfig.GetConfigFilePathFromCurrentContext());

            contentFilters          = new ContentFilterCollection(siteConfig.ContentFilters);
            checkFilterHtml.Checked = siteConfig.ApplyContentFiltersToWeb;
            checkFilterRSS.Checked  = siteConfig.ApplyContentFiltersToRSS;
        }
 private void AddGoogleMapsApi()
 {
     if (!Page.ClientScript.IsClientScriptBlockRegistered(this.GetType(), "GoogleMapsApi"))
     {
         System.Text.StringBuilder sb = new StringBuilder();
         sb.Append("<script src=\"http://maps.google.com/maps?file=api&v=2&key=");
         sb.Append(SiteConfig.GetSiteConfig().GoogleMapsApiKey);
         sb.Append("\" type=\"text/javascript\"></script>");
         Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "GoogleMapsApi", sb.ToString());
     }
 }
Example #4
0
 public SyndicationServiceBase()
 {
     InitializeComponent();
     if (Context != null)
     {
         siteConfig     = SiteConfig.GetSiteConfig();
         loggingService = LoggingDataServiceFactory.GetService(SiteConfig.GetLogPathFromCurrentContext());
         dataService    = BlogDataServiceFactory.GetService(SiteConfig.GetContentPathFromCurrentContext(), loggingService);
         cache          = CacheFactory.GetCache();
     }
 }
        private void SaveSites( )
        {
            SiteConfig siteConfig = SiteConfig.GetSiteConfig(SiteConfig.GetConfigFilePathFromCurrentContext());

            siteConfig.CrosspostSites.Clear();
            siteConfig.CrosspostSites.AddRange(crosspostSites);
            XmlSerializer ser = new XmlSerializer(typeof(SiteConfig));

            using (StreamWriter writer = new StreamWriter(SiteConfig.GetConfigFilePathFromCurrentContext()))
            {
                ser.Serialize(writer, siteConfig);
            }
        }
        private void SaveFilters()
        {
            SiteConfig siteConfig = SiteConfig.GetSiteConfig(SiteConfig.GetConfigFilePathFromCurrentContext());

            siteConfig.ApplyContentFiltersToWeb = checkFilterHtml.Checked;
            siteConfig.ApplyContentFiltersToRSS = checkFilterRSS.Checked;
            siteConfig.ContentFilters.Clear();
            siteConfig.ContentFilters.AddRange(contentFilters);
            XmlSerializer ser = new XmlSerializer(typeof(SiteConfig));

            using (StreamWriter writer = new StreamWriter(SiteConfig.GetConfigFilePathFromCurrentContext()))
            {
                ser.Serialize(writer, siteConfig);
            }
        }
        private void LoadSites( )
        {
            SiteConfig siteConfig = SiteConfig.GetSiteConfig(SiteConfig.GetConfigFilePathFromCurrentContext());

            crosspostSites = new CrosspostSiteCollection(siteConfig.CrosspostSites);

            // [email protected] 24-MAR-04
            // ensure that each allBlogNames property has at
            // least one entry, namely the blog name
            foreach (CrosspostSite site in crosspostSites)
            {
                if (site.AllBlogNames == null || site.AllBlogNames.Length == 0)
                {
                    site.AllBlogNames = new string[] { site.BlogName }
                }
                ;
            }
        }
        /// <summary>
        /// Gets the entries for this month that we will be rendering
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void calendarMonth_PreRender(object sender, EventArgs e)
        {
            Control           root           = contentPlaceHolder;
            SiteConfig        siteConfig     = SiteConfig.GetSiteConfig();
            string            languageFilter = Request.Headers["Accept-Language"];
            MonthViewCalendar eventSource    = sender as MonthViewCalendar;

            requestPage = Page as SharedBasePage;

            // if we adjust for time zones (we don't show everything in UTC), we get the entries
            // using the configured time zone.
            eventSource.EntriesThisMonth = new EntryCollection();
            if (siteConfig.AdjustDisplayTimeZone)
            {
                //Store away these Entries for the DayRender step...
                eventSource.EntriesThisMonth = requestPage.DataService.GetEntriesForMonth(eventSource.VisibleDate, siteConfig.GetConfiguredTimeZone(), languageFilter);
            }
            else
            {
                //Store away these Entries for the DayRender step...
                eventSource.EntriesThisMonth = requestPage.DataService.GetEntriesForMonth(eventSource.VisibleDate, new Util.UTCTimeZone(), languageFilter);
            }
        }
Example #9
0
        protected void Application_Start(Object sender, EventArgs e)
        {
            //We clear out the Cache on App Restart...
            CacheFactory.GetCache().Clear();

            ILoggingDataService loggingService = null;

            loggingService = LoggingDataServiceFactory.GetService(SiteConfig.GetLogPathFromCurrentContext());
            loggingService.AddEvent(new EventDataItem(EventCodes.ApplicationStartup, "", ""));

            SiteConfig siteConfig = SiteConfig.GetSiteConfig(SiteConfig.GetConfigFilePathFromCurrentContext());

            //if (siteConfig.EnableReportMailer)
            {
                reportMailer = new ReportMailer(
                    SiteConfig.GetConfigFilePathFromCurrentContext(),
                    SiteConfig.GetContentPathFromCurrentContext(),
                    SiteConfig.GetLogPathFromCurrentContext()
                    );

                reportMailerThread              = new Thread(new ThreadStart(reportMailer.Run));
                reportMailerThread.Name         = "ReportMailer";
                reportMailerThread.IsBackground = true;
                reportMailerThread.Start();
            }

            if (siteConfig.EnablePop3)
            {
                mailToWeblog = new MailToWeblog(
                    SiteConfig.GetConfigFilePathFromCurrentContext(),
                    SiteConfig.GetContentPathFromCurrentContext(),
                    SiteConfig.GetBinariesPathFromCurrentContext(),
                    SiteConfig.GetLogPathFromCurrentContext(),
                    new Uri(new Uri(SiteConfig.GetSiteConfig().Root), SiteConfig.GetSiteConfig().BinariesDirRelative)
                    );

                mailToWeblogThread              = new Thread(new ThreadStart(mailToWeblog.Run));
                mailToWeblogThread.Name         = "MailToWeblog";
                mailToWeblogThread.IsBackground = true;
                mailToWeblogThread.Start();
            }

            if (siteConfig.EnableXSSUpstream)
            {
                xssUpstreamer = new XSSUpstreamer(
                    SiteConfig.GetConfigFilePathFromCurrentContext(),
                    SiteConfig.GetContentPathFromCurrentContext(),
                    SiteConfig.GetLogPathFromCurrentContext()
                    );

                xssUpstreamerThread              = new Thread(new ThreadStart(xssUpstreamer.Run));
                xssUpstreamerThread.Name         = "XSSUpstreamer";
                xssUpstreamerThread.IsBackground = true;
                xssUpstreamerThread.Start();
            }

            /*
             * if (siteConfig.EnableMovableTypeBlackList)
             * {
             *      ReferralBlackListFactory.AddBlacklist(new MovableTypeBlacklist(), Path.Combine(SiteConfig.GetConfigPathFromCurrentContext(), "blacklist.txt"));
             * }
             */

            if (siteConfig.EnableReferralUrlBlackList && siteConfig.ReferralUrlBlackList.Length != 0)
            {
                ReferralBlackListFactory.AddBlacklist(new ReferralUrlBlacklist(), siteConfig.ReferralUrlBlackList);
            }
        }
Example #10
0
        private void ClickThroughsBox_PreRender(object sender, EventArgs e)
        {
            Control root = contentPlaceHolder;

            SiteConfig          siteConfig  = SiteConfig.GetSiteConfig();
            ILoggingDataService logService  = LoggingDataServiceFactory.GetService(SiteConfig.GetLogPathFromCurrentContext());
            IBlogDataService    dataService = BlogDataServiceFactory.GetService(SiteConfig.GetContentPathFromCurrentContext(), logService);

            Dictionary <string, int> clickThroughUrls = new Dictionary <string, int>();
            Dictionary <string, int> userAgents       = new Dictionary <string, int>();
            Dictionary <string, int> userDomains      = new Dictionary <string, int>();

            // get the user's local time
            DateTime utcTime   = DateTime.UtcNow;
            DateTime localTime = siteConfig.GetConfiguredTimeZone().ToLocalTime(utcTime);

            if (Request.QueryString["date"] != null)
            {
                try
                {
                    DateTime popUpTime = DateTime.ParseExact(Request.QueryString["date"], "yyyy-MM-dd", CultureInfo.InvariantCulture);
                    utcTime   = new DateTime(popUpTime.Year, popUpTime.Month, popUpTime.Day, utcTime.Hour, utcTime.Minute, utcTime.Second);
                    localTime = new DateTime(popUpTime.Year, popUpTime.Month, popUpTime.Day, localTime.Hour, localTime.Minute, localTime.Second);
                }
                catch (FormatException ex)
                {
                    ErrorTrace.Trace(System.Diagnostics.TraceLevel.Error, ex);
                }
            }

            LogDataItemCollection logItems = new LogDataItemCollection();

            logItems.AddRange(logService.GetClickThroughsForDay(localTime));

            if (siteConfig.AdjustDisplayTimeZone)
            {
                newtelligence.DasBlog.Util.WindowsTimeZone tz = siteConfig.GetConfiguredTimeZone();
                TimeSpan ts     = tz.GetUtcOffset(DateTime.UtcNow);
                int      offset = ts.Hours;

                if (offset < 0)
                {
                    logItems.AddRange(logService.GetClickThroughsForDay(localTime.AddDays(1)));
                }
                else
                {
                    logItems.AddRange(logService.GetClickThroughsForDay(localTime.AddDays(-1)));
                }
            }

            foreach (LogDataItem log in logItems)
            {
                bool exclude = false;

                if (siteConfig.AdjustDisplayTimeZone)
                {
                    if (siteConfig.GetConfiguredTimeZone().ToLocalTime(log.RequestedUtc).Date != localTime.Date)
                    {
                        exclude = true;
                    }
                }

                if (!exclude)
                {
                    string key = log.UrlRequested + "°" + log.UrlReferrer;
                    if (!clickThroughUrls.ContainsKey(key))
                    {
                        clickThroughUrls[key] = 0;
                    }
                    clickThroughUrls[key] = clickThroughUrls[key] + 1;

                    if (!userAgents.ContainsKey(log.UserAgent))
                    {
                        userAgents[log.UserAgent] = 0;
                    }
                    userAgents[log.UserAgent] = userAgents[log.UserAgent] + 1;

                    if (!userDomains.ContainsKey(log.UserDomain))
                    {
                        userDomains[log.UserDomain] = 0;
                    }
                    userDomains[log.UserDomain] = userDomains[log.UserDomain] + 1;
                }
            }

            root.Controls.Add(BuildStatisticsTable(GenerateSortedItemList(clickThroughUrls), resmgr.GetString("text_activity_click_throughs"), resmgr.GetString("text_activity_clicks"), new StatisticsBuilderCallback(this.BuildClickThroughsRow), dataService));
            root.Controls.Add(BuildStatisticsTable(GenerateSortedItemList(userDomains), resmgr.GetString("text_activity_user_domains"), resmgr.GetString("text_activity_hits"), new StatisticsBuilderCallback(this.BuildUserDomainRow), dataService));
            root.Controls.Add(BuildStatisticsTable(GenerateSortedItemList(userAgents), resmgr.GetString("text_activity_user_agent"), resmgr.GetString("text_activity_hits"), new StatisticsBuilderCallback(this.BuildAgentsRow), dataService));

            DataBind();
        }
Example #11
0
        private void ClickThroughsBox_PreRender(object sender, EventArgs e)
        {
            if (_robotDefinition == null)
            {
                return;
            }

            Control root = contentPlaceHolder;

            SiteConfig          siteConfig  = SiteConfig.GetSiteConfig();
            ILoggingDataService logService  = LoggingDataServiceFactory.GetService(SiteConfig.GetLogPathFromCurrentContext());
            IBlogDataService    dataService = BlogDataServiceFactory.GetService(SiteConfig.GetContentPathFromCurrentContext(), logService);

            Dictionary <string, int> clickThroughUrls = new Dictionary <string, int>();
            Dictionary <string, int> userAgents       = new Dictionary <string, int>();
            Dictionary <string, int> userDomains      = new Dictionary <string, int>();

            DateTime serverTimeUtc = DateTime.Now.ToUniversalTime();
            DateTime localTime     = siteConfig.GetConfiguredTimeZone().ToLocalTime(serverTimeUtc);

            if (Request.QueryString["date"] != null)
            {
                try
                {
                    DateTime popUpTime = DateTime.ParseExact(Request.QueryString["date"], "yyyy-MM-dd", CultureInfo.InvariantCulture);
                    localTime     = new DateTime(popUpTime.Year, popUpTime.Month, popUpTime.Day);
                    serverTimeUtc = new DateTime(popUpTime.Year, popUpTime.Month, popUpTime.Day, 23, 59, 59).ToUniversalTime();
                }
                catch (FormatException ex)
                {
                    ErrorTrace.Trace(System.Diagnostics.TraceLevel.Error, ex);
                }
            }

            LogDataItemCollection logItems = new LogDataItemCollection();

            logItems.AddRange(logService.GetClickThroughsForDay(serverTimeUtc));

            // depending on the offset (positive or negative) we want to grab events in the
            // next or previos day to account for timezone difference.
            if (siteConfig.AdjustDisplayTimeZone)
            {
                newtelligence.DasBlog.Util.WindowsTimeZone tz = siteConfig.GetConfiguredTimeZone();
                TimeSpan ts     = tz.GetUtcOffset(DateTime.Now);
                int      offset = ts.Hours;
                if (serverTimeUtc.Date != serverTimeUtc.AddHours(offset).Date)
                {
                    logItems.AddRange(logService.GetClickThroughsForDay(serverTimeUtc.AddHours(offset)));
                }
            }

            foreach (LogDataItem log in logItems)
            {
                bool exclude = false;

                if (siteConfig.AdjustDisplayTimeZone)
                {
                    if (siteConfig.GetConfiguredTimeZone().ToLocalTime(log.RequestedUtc).Date != localTime.Date)
                    {
                        exclude = true;
                    }
                }

                if (_robotDefinition.IsRobot(log))
                {
                    exclude = true;
                }

                if (!exclude)
                {
                    string key = log.UrlRequested + "°" + log.UrlReferrer;
                    if (!clickThroughUrls.ContainsKey(key))
                    {
                        clickThroughUrls[key] = 0;
                    }
                    clickThroughUrls[key] = clickThroughUrls[key] + 1;

                    if (!userAgents.ContainsKey(log.UserAgent))
                    {
                        userAgents[log.UserAgent] = 0;
                    }
                    userAgents[log.UserAgent] = userAgents[log.UserAgent] + 1;

                    // AG User domain added.
                    if (!userDomains.ContainsKey(log.UserDomain))
                    {
                        userDomains[log.UserDomain] = 0;
                    }

                    userDomains[log.UserDomain] = userDomains[log.UserDomain] + 1;
                }
            }

            root.Controls.Add(BuildStatisticsTable(GenerateSortedItemList(clickThroughUrls), resmgr.GetString("text_activity_click_throughs"), resmgr.GetString("text_activity_clicks"), new StatisticsBuilderCallback(this.BuildClickThroughsRow), dataService));
            root.Controls.Add(BuildStatisticsTable(GenerateSortedItemList(userDomains), resmgr.GetString("text_activity_user_domains"), resmgr.GetString("text_activity_hits"), new StatisticsBuilderCallback(this.BuildUserDomainRow), dataService));
            root.Controls.Add(BuildStatisticsTable(GenerateSortedItemList(userAgents), resmgr.GetString("text_activity_user_agent"), resmgr.GetString("text_activity_hits"), new StatisticsBuilderCallback(this.BuildAgentsRow), dataService));

            DataBind();
        }
        private void ReferrersBox_PreRender(object sender, EventArgs e)
        {
            Control root = contentPlaceHolder;

            SiteConfig          siteConfig = SiteConfig.GetSiteConfig();
            ILoggingDataService logService = LoggingDataServiceFactory.GetService(SiteConfig.GetLogPathFromCurrentContext());
            string siteRoot = siteConfig.Root.ToUpper();

            Dictionary <string, int> referrerUrls = new Dictionary <string, int>();
            Dictionary <string, int> userAgents   = new Dictionary <string, int>();
            Dictionary <string, int> searchUrls   = new Dictionary <string, int>();
            Dictionary <string, int> userDomains  = new Dictionary <string, int>();

            // get the user's local time
            DateTime utcTime   = DateTime.UtcNow;
            DateTime localTime = siteConfig.GetConfiguredTimeZone().ToLocalTime(utcTime);

            if (Request.QueryString["date"] != null)
            {
                try
                {
                    DateTime popUpTime = DateTime.ParseExact(Request.QueryString["date"], "yyyy-MM-dd", CultureInfo.InvariantCulture);
                    utcTime   = new DateTime(popUpTime.Year, popUpTime.Month, popUpTime.Day, utcTime.Hour, utcTime.Minute, utcTime.Second);
                    localTime = new DateTime(popUpTime.Year, popUpTime.Month, popUpTime.Day, localTime.Hour, localTime.Minute, localTime.Second);
                }
                catch (FormatException ex)
                {
                    ErrorTrace.Trace(System.Diagnostics.TraceLevel.Error, ex);
                }
            }

            LogDataItemCollection logItems = new LogDataItemCollection();

            logItems.AddRange(logService.GetReferralsForDay(localTime));

            if (siteConfig.AdjustDisplayTimeZone)
            {
                newtelligence.DasBlog.Util.WindowsTimeZone tz = siteConfig.GetConfiguredTimeZone();
                TimeSpan ts     = tz.GetUtcOffset(DateTime.UtcNow);
                int      offset = ts.Hours;

                if (offset < 0)
                {
                    logItems.AddRange(logService.GetReferralsForDay(localTime.AddDays(1)));
                }
                else
                {
                    logItems.AddRange(logService.GetReferralsForDay(localTime.AddDays(-1)));
                }
            }

            foreach (LogDataItem log in logItems)
            {
                bool exclude = false;
                if (log.UrlReferrer != null)
                {
                    exclude = log.UrlReferrer.ToUpper().StartsWith(siteRoot);

                    // Let Utils.ParseSearchString decide whether it's a search engine referrer.
                    if (SiteUtilities.ParseSearchString(log.UrlReferrer) != null)
                    {
                        exclude = true;

                        bool addToSearches = true;
                        if (siteConfig.AdjustDisplayTimeZone)
                        {
                            if (siteConfig.GetConfiguredTimeZone().ToLocalTime(log.RequestedUtc).Date != localTime.Date)
                            {
                                addToSearches = false;
                            }
                        }

                        if (addToSearches)
                        {
                            if (!searchUrls.ContainsKey(log.UrlReferrer))
                            {
                                searchUrls[log.UrlReferrer] = 0;
                            }

                            searchUrls[log.UrlReferrer] = searchUrls[log.UrlReferrer] + 1;
                        }
                    }
                }

                if (siteConfig.AdjustDisplayTimeZone)
                {
                    if (siteConfig.GetConfiguredTimeZone().ToLocalTime(log.RequestedUtc).Date != localTime.Date)
                    {
                        exclude = true;
                    }
                }

                if (!exclude)
                {
                    if (!referrerUrls.ContainsKey(log.UrlReferrer))
                    {
                        referrerUrls[log.UrlReferrer] = 0;
                    }

                    referrerUrls[log.UrlReferrer] = referrerUrls[log.UrlReferrer] + 1;

                    log.UserAgent = Server.HtmlEncode(log.UserAgent);
                    if (!userAgents.ContainsKey(log.UserAgent))
                    {
                        userAgents[log.UserAgent] = 0;
                    }

                    userAgents[log.UserAgent] = userAgents[log.UserAgent] + 1;

                    if (!userDomains.ContainsKey(log.UserDomain))
                    {
                        userDomains[log.UserDomain] = 0;
                    }

                    userDomains[log.UserDomain] = userDomains[log.UserDomain] + 1;
                }
            }

            Table rollupTable = new Table();

            rollupTable.CssClass = "statsTableStyle";
            TableRow row = new TableRow();

            row.CssClass = "statsTableHeaderRowStyle";
            row.Cells.Add(new TableCell());
            row.Cells.Add(new TableCell());
            row.Cells[0].CssClass = "statsTableHeaderColumnStyle";
            row.Cells[1].CssClass = "statsTableHeaderNumColumnStyle";
            row.Cells[0].Text     = resmgr.GetString("text_activity_summary");
            row.Cells[1].Text     = resmgr.GetString("text_activity_hits");
            rollupTable.Rows.Add(row);

            //SDH: I know this is gross, but I didn't want to totally rewrite this whole thing, I just wanted to get the rollup to work
            string total = String.Empty;
            Table  internetSearchesTable = BuildStatisticsTable(GenerateSortedSearchStringItemList(searchUrls), resmgr.GetString("text_activity_internet_searches"), resmgr.GetString("text_activity_hits"), new StatisticsBuilderCallback(this.BuildSearchesRow), out total, null);

            BuildRow(total, rollupTable, resmgr.GetString("text_activity_internet_searches"));
            Table userDomainsTable  = BuildStatisticsTable(GenerateSortedItemList(userDomains), resmgr.GetString("text_activity_user_domains"), resmgr.GetString("text_activity_hits"), new StatisticsBuilderCallback(this.BuildUserDomainRow), out total, null);
            Table userAgentsTable   = BuildStatisticsTable(GenerateSortedItemList(userAgents), resmgr.GetString("text_activity_user_agent"), resmgr.GetString("text_activity_hits"), new StatisticsBuilderCallback(this.BuildAgentsRow), out total, null);
            Table referrerUrlsTable = BuildStatisticsTable(GenerateSortedItemList(referrerUrls), resmgr.GetString("text_activity_referrer_urls"), resmgr.GetString("text_activity_hits"), new StatisticsBuilderCallback(this.BuildReferrerRow), out total, null);

            BuildRow(total, rollupTable, resmgr.GetString("text_activity_referrer_urls"));

            root.Controls.Add(rollupTable);

            root.Controls.Add(internetSearchesTable);
            root.Controls.Add(referrerUrlsTable);
            root.Controls.Add(userDomainsTable);
            root.Controls.Add(userAgentsTable);

            //root.Controls.Add(BuildStatisticsTable(GenerateSortedItemList(userAgents), CONSTUSERAGENTSLIST, CONSTHITS, new StatisticsBuilderCallback(this.BuildAgentsRow), out total, null));

            DataBind();
        }
        protected void Page_Load(object sender, EventArgs e)
        {
            SharedBasePage requestPage = this.Page as SharedBasePage;

            siteConfig = SiteConfig.GetSiteConfig();

            resmgr = ApplicationResourceTable.Get();

            imageUpload.Accept = "image/jpeg,image/gif,image/png";
            editControl.Width  = Unit.Percentage(99d);
            editControl.Height = Unit.Pixel(400);
            editControl.Text   = "<p></p>";

            // TODO: OmarS need to get rid of this
            isDHTMLEdit = true;

            editControl.SetLanguage(CultureInfo.CurrentUICulture.Name);
            editControl.SetTextDirection(requestPage.ReadingDirection);

            if (!requestPage.SiteConfig.EnableCrossposts)
            {
                gridCrossposts.Visible = false;
                labelCrosspost.Visible = false;
            }

            if (!SiteSecurity.IsValidContributor())
            {
                Response.Redirect("~/FormatPage.aspx?path=SiteConfig/accessdenied.format.html");
            }

            CrosspostInfoCollection crosspostSiteInfo = new CrosspostInfoCollection();

            if (!IsPostBack)
            {
                foreach (CrosspostSite site in requestPage.SiteConfig.CrosspostSites)
                {
                    CrosspostInfo ci = new CrosspostInfo(site);
                    ci.TrackingUrlBase = SiteUtilities.GetCrosspostTrackingUrlBase(requestPage.SiteConfig);
                    crosspostSiteInfo.Add(ci);
                }

                // set up categories
                foreach (CategoryCacheEntry category in requestPage.DataService.GetCategories())
                {
                    this.categoryList.Items.Add(category.Name);
                }


                // get the cultures
                CultureInfo[] cultures = CultureInfo.GetCultures(CultureTypes.AllCultures);

                // setup temp store for listitem items, for sorting
                List <ListItem> cultureList = new List <ListItem>(cultures.Length);

                foreach (CultureInfo ci in cultures)
                {
                    string langName = (ci.NativeName != ci.EnglishName) ? ci.NativeName + " / " + ci.EnglishName : ci.NativeName;

                    if (langName.Length > 55)
                    {
                        langName = langName.Substring(0, 55) + "...";
                    }

                    cultureList.Add(new ListItem(langName, ci.Name));
                }

                // setup the sort culture
                string rssCulture = requestPage.SiteConfig.RssLanguage;

                CultureInfo sortCulture;

                try
                {
                    sortCulture = (rssCulture != null && rssCulture.Length > 0 ? new CultureInfo(rssCulture) : CultureInfo.CurrentCulture);
                }
                catch (ArgumentException)
                {
                    // default to the culture of the server
                    sortCulture = CultureInfo.CurrentCulture;
                }

                // sort the list
                cultureList.Sort(delegate(ListItem x, ListItem y)
                {
                    // actual comparison
                    return(String.Compare(x.Text, y.Text, true, sortCulture));
                });

                // add to the languages listbox
                ListItem[] cultureListItems = cultureList.ToArray();

                listLanguages.Items.AddRange(cultureListItems);

                listLanguages.SelectedValue = "";

                if (requestPage != null && requestPage.WeblogEntryId != "")
                {
                    Session["newtelligence.DasBlog.Web.EditEntryBox.OriginalReferrer"] = Request.UrlReferrer;
                    Entry entry = requestPage.DataService.GetEntryForEdit(requestPage.WeblogEntryId);

                    if (entry != null)
                    {
                        CurrentEntry       = entry;
                        entryTitle.Text    = entry.Title;
                        entryAbstract.Text = entry.Description;

                        textDate.SelectedDate = entry.CreatedLocalTime;

                        if (isDHTMLEdit)
                        {
                            editControl.Text = entry.Content;
                        }

                        foreach (string s in entry.GetSplitCategories())
                        {
                            categoryList.Items.FindByText(s).Selected = true;
                        }

                        this.checkBoxAllowComments.Checked = entry.AllowComments;
                        this.checkBoxPublish.Checked       = entry.IsPublic;
                        this.checkBoxSyndicated.Checked    = entry.Syndicated;

                        // GeoRSS.
                        this.txtLat.Text  = String.Format(CultureInfo.InvariantCulture, "{0}", entry.Latitude);
                        this.txtLong.Text = String.Format(CultureInfo.InvariantCulture, "{0}", entry.Longitude);

                        if (entry.Attachments.Count > 0)
                        {
                            foreach (Attachment enclosure in entry.Attachments)
                            {
                                enclosure.Url = SiteUtilities.GetEnclosureLinkUrl(requestPage.SiteConfig, entry.EntryId, enclosure);
                            }

                            this.enclosureUpload.Visible    = false;
                            this.buttonRemove.Visible       = true;
                            this.labelEnclosureName.Visible = true;
                            this.labelEnclosureName.Text    = entry.Attachments[0].Name;
                        }

                        listLanguages.SelectedValue = entry.Language == null ? "" : entry.Language;

                        // merge the crosspost config with the crosspost data
                        foreach (CrosspostInfo cpi in crosspostSiteInfo)
                        {
                            foreach (Crosspost cp in entry.Crossposts)
                            {
                                if (cp.ProfileName == cpi.Site.ProfileName)
                                {
                                    cpi.IsAlreadyPosted = true;
                                    cpi.TargetEntryId   = cp.TargetEntryId;
                                    cpi.Categories      = cp.Categories;
                                    break;
                                }
                            }
                        }
                        // if the entry is not public yet but opened for editing, then we can setup autosave.
                        // (If the entry was already published publically and then autosave was used, the
                        // entry's status would change to non-public and then no longer be accessible!)
                        if (requestPage.SiteConfig.EnableAutoSave && !entry.IsPublic)
                        {
                            SetupAutoSave();
                        }

                        if (requestPage.SiteConfig.EnableGoogleMaps)
                        {
                            AddGoogleMapsApi();
                        }
                    }
                }
                else // This is a brand new entry, so setup the AutoSave script if it's enabled.
                {
                    if (requestPage.SiteConfig.EnableAutoSave)
                    {
                        SetupAutoSave();
                    }

                    if (requestPage.SiteConfig.EnableGoogleMaps)
                    {
                        AddGoogleMapsApi();
                    }

                    txtLat.Text  = String.Format(CultureInfo.InvariantCulture, "{0}", siteConfig.DefaultLatitude);
                    txtLong.Text = String.Format(CultureInfo.InvariantCulture, "{0}", siteConfig.DefaultLongitude);
                }

                gridCrossposts.DataSource = crosspostSiteInfo;
                DataBind();
            }
        }
        private void EventlogBox_PreRender(object sender, EventArgs e)
        {
            SiteConfig          siteConfig = SiteConfig.GetSiteConfig();
            Control             root       = contentPlaceHolder;
            ILoggingDataService logService = LoggingDataServiceFactory.GetService(SiteConfig.GetLogPathFromCurrentContext());

            Table table = new Table();

            table.CssClass = "statsTableStyle";

            TableRow row = new TableRow();

            row.CssClass = "statsTableHeaderRowStyle";
            row.Cells.Add(new TableCell());
            row.Cells.Add(new TableCell());
            row.Cells.Add(new TableCell());
            row.Cells[0].CssClass = "statsTableDateColumnStyle";
            row.Cells[1].CssClass = "statsTableNumColumnStyle";
            row.Cells[2].CssClass = "statsTableColumnStyle";
            row.Cells[0].Text     = "<b>" + resmgr.GetString("text_time") + "</b>";
            row.Cells[1].Text     = "<b>" + resmgr.GetString("text_message_code") + "</b>";
            row.Cells[2].Text     = "<b>" + resmgr.GetString("text_message_text") + "</b>";
            table.Rows.Add(row);

            // get the user's local time
            DateTime utcTime   = DateTime.UtcNow;
            DateTime localTime = siteConfig.GetConfiguredTimeZone().ToLocalTime(utcTime);

            if (Request.QueryString["date"] != null)
            {
                try
                {
                    DateTime popUpTime = DateTime.ParseExact(Request.QueryString["date"], "yyyy-MM-dd", CultureInfo.InvariantCulture);
                    utcTime   = new DateTime(popUpTime.Year, popUpTime.Month, popUpTime.Day, utcTime.Hour, utcTime.Minute, utcTime.Second);
                    localTime = new DateTime(popUpTime.Year, popUpTime.Month, popUpTime.Day, localTime.Hour, localTime.Minute, localTime.Second);
                }
                catch (FormatException ex)
                {
                    ErrorTrace.Trace(System.Diagnostics.TraceLevel.Error, ex);
                }
            }

            EventDataItemCollection logItems = new EventDataItemCollection();

            logItems.AddRange(logService.GetEventsForDay(localTime));

            if (siteConfig.AdjustDisplayTimeZone)
            {
                newtelligence.DasBlog.Util.WindowsTimeZone tz = siteConfig.GetConfiguredTimeZone();
                TimeSpan ts     = tz.GetUtcOffset(DateTime.UtcNow);
                int      offset = ts.Hours;

                if (offset < 0)
                {
                    logItems.AddRange(logService.GetEventsForDay(localTime.AddDays(1)));
                }
                else
                {
                    logItems.AddRange(logService.GetEventsForDay(localTime.AddDays(-1)));
                }
            }

            EventDataItem[] sortedLogItems = logItems.ToSortedArray();

            foreach (EventDataItem eventItem in sortedLogItems)
            {
                if (siteConfig.AdjustDisplayTimeZone)
                {
                    if (siteConfig.GetConfiguredTimeZone().ToLocalTime(eventItem.EventTimeUtc).Date != localTime.Date)
                    {
                        continue;
                    }
                }

                row          = new TableRow();
                row.CssClass = "statsTableRowStyle";

                switch (eventItem.EventCode)
                {
                case ((int)EventCodes.Error):
                case ((int)EventCodes.PingbackServerError):
                case ((int)EventCodes.PingWeblogsError):
                case ((int)EventCodes.Pop3ServerError):
                case ((int)EventCodes.SmtpError):
                    row.CssClass = "statsTableRowStyleError";
                    break;

                case ((int)EventCodes.SecurityFailure):
                    row.CssClass = "statsTableRowStyleSecurityFailure";
                    break;

                case ((int)EventCodes.TrackbackBlocked):
                case ((int)EventCodes.ReferralBlocked):
                case ((int)EventCodes.ItemReferralBlocked):
                case ((int)EventCodes.CommentBlocked):
                case ((int)EventCodes.PingbackBlocked):
                    row.CssClass = "statsTableRowStyleBlocked";
                    break;

                default:
                    break;
                }

                row.Cells.Add(new TableCell());
                row.Cells.Add(new TableCell());
                row.Cells.Add(new TableCell());
                row.Cells[0].CssClass = "statsTableDateColumnStyle";
                row.Cells[1].CssClass = "statsTableNumColumnStyle";
                row.Cells[2].CssClass = "statsTableColumnStyle";

                if (siteConfig.AdjustDisplayTimeZone)
                {
                    row.Cells[0].Text = siteConfig.GetConfiguredTimeZone().ToLocalTime(eventItem.EventTimeUtc).ToString("yyyy-MM-dd HH:mm:ss tt");
                }
                else
                {
                    row.Cells[0].Text = eventItem.EventTimeUtc.ToString("yyyy-MM-dd HH:mm:ss tt") + " UTC";
                }

                row.Cells[1].Text = eventItem.EventCode.ToString();
                row.Cells[2].Text = eventItem.HtmlMessage;

                table.Rows.Add(row);
            }

            root.Controls.Add(table);

            DataBind();
        }
        protected void Page_Load(object sender, System.EventArgs e)
        {
            siteConfig = SiteConfig.GetSiteConfig();

            resmgr = ((System.Resources.ResourceManager)ApplicationResourceTable.Get());

            //set the current page <li> tag to here
            string filePath = this.Request.FilePath;

            if (filePath.EndsWith("EditCrossPostSites.aspx", StringComparison.InvariantCultureIgnoreCase))
            {
                editCrossPostSites.Attributes["class"]  = "here";
                hyperLinkEditCrossPostSites.NavigateUrl = "";
            }
            else if (filePath.EndsWith("EditNavigatorLinks.aspx", StringComparison.InvariantCultureIgnoreCase))
            {
                editNavigatorLinks.Attributes["class"]  = "here";
                hyperLinkEditNavigatorLinks.NavigateUrl = "";
            }
            else if (filePath.EndsWith("EditBlogRoll.aspx", StringComparison.InvariantCultureIgnoreCase))
            {
                editBlogRoll.Attributes["class"]  = "here";
                hyperLinkEditBlogRoll.NavigateUrl = "";
            }
            else if (filePath.EndsWith("EditContentFilters.aspx", StringComparison.InvariantCultureIgnoreCase))
            {
                editContentFilters.Attributes["class"]  = "here";
                hyperLinkEditContentFilters.NavigateUrl = "";
            }
            else if (filePath.EndsWith("EditConfig.aspx", StringComparison.InvariantCultureIgnoreCase))
            {
                editConfig.Attributes["class"]  = "here";
                hyperLinkEditConfig.NavigateUrl = "";
            }
            else if (filePath.EndsWith("Referrers.aspx", StringComparison.InvariantCultureIgnoreCase) ||
                     filePath.EndsWith("Eventlog.aspx", StringComparison.InvariantCultureIgnoreCase) ||
                     filePath.EndsWith("AggBugs.aspx", StringComparison.InvariantCultureIgnoreCase) ||
                     filePath.EndsWith("ClickThroughs.aspx", StringComparison.InvariantCultureIgnoreCase))
            {
                activity.Attributes["class"]  = "here";
                hyperLinkActivity.NavigateUrl = "";
            }
            else if (filePath.EndsWith("EditEntry.aspx", StringComparison.InvariantCultureIgnoreCase))
            {
                editEntry.Attributes["class"]  = "firstHere";
                hyperLinkEditEntry.NavigateUrl = "";
            }
            else if (filePath.EndsWith("EditUser.aspx", StringComparison.InvariantCultureIgnoreCase))
            {
                editUser.Attributes["class"]  = "here";
                hyperLinkEditUser.NavigateUrl = "";
            }

            // The only tab that should be visible for a contributor is the
            // "Add Entry" and "User Settings" tab
            if (SiteSecurity.IsInRole("contributor"))
            {
                this.editConfig.Visible         = false;
                this.editCrossPostSites.Visible = false;
                this.editContentFilters.Visible = false;
                this.editBlogRoll.Visible       = false;
                this.editNavigatorLinks.Visible = false;
                this.activity.Visible           = false;
            }
            DataBind();
        }