protected void ExportByViewsButton_Click(Object sender, EventArgs e) { GenericExportManager <CategoryViewSummary> exportManager = GenericExportManager <CategoryViewSummary> .Instance; GenericExportOptions <CategoryViewSummary> options = new GenericExportOptions <CategoryViewSummary>(); options.CsvFields = new string[] { "CategoryName", "Views" }; SortableCollection <KeyValuePair <ICatalogable, int> > categoryViews = PageViewDataSource.GetViewsByCategory("ViewCount DESC"); // CONVERT TO SUMMARY LIST TO GENERATE CSV IList <CategoryViewSummary> viewsSummay = new List <CategoryViewSummary>(); foreach (KeyValuePair <ICatalogable, int> dataRow in categoryViews) { viewsSummay.Add(new CategoryViewSummary(dataRow.Key.Name, dataRow.Value)); } options.ExportData = viewsSummay; options.FileTag = "POPULAR_CATEGORIES_BY_VIEWS"; exportManager.BeginExport(options); }
private void initViewChart(bool forceRefresh) { string cacheKey = "3C26BAC7-1D53-40ef-920B-5BDB705F363B"; CacheWrapper cacheWrapper = Cache[cacheKey] as CacheWrapper; if (forceRefresh || (cacheWrapper == null)) { SortableCollection <KeyValuePair <ICatalogable, int> > categoryViews = PageViewDataSource.GetViewsByCategory(_Size, 0, "ViewCount DESC"); if (categoryViews.Count > 0) { //BUILD BAR CHART ViewsChart.Series["Views"].Points.Clear(); for (int i = 0; i < categoryViews.Count; i++) { DataPoint point = new DataPoint(ViewsChart.Series["Views"]); point.SetValueXY(categoryViews[i].Key.Name, new object[] { categoryViews[i].Value }); ViewsChart.Series["Views"].Points.Add(point); } ViewsChart.DataBind(); //CACHE THE DATA cacheWrapper = new CacheWrapper(categoryViews); Cache.Remove(cacheKey); Cache.Add(cacheKey, cacheWrapper, null, LocaleHelper.LocalNow.AddMinutes(5).AddSeconds(-1), TimeSpan.Zero, System.Web.Caching.CacheItemPriority.High, null); } else { //NO CATEGORIES HAVE BEEN VIEWED YET OR PAGE TRACKING IS NOT AVAIALBEL this.Controls.Clear(); Panel noViewsPanel = new Panel(); noViewsPanel.CssClass = "emptyData"; Label noViewsMessage = new Label(); noViewsMessage.Text = "No categories have been viewed or page tracking is disabled."; noViewsPanel.Controls.Add(noViewsMessage); this.Controls.Add(noViewsPanel); } } else { //USE CACHED VALUES SortableCollection <KeyValuePair <ICatalogable, int> > categoryViews = (SortableCollection <KeyValuePair <ICatalogable, int> >)cacheWrapper.CacheValue; //BUILD BAR CHART ViewsChart.Series["Views"].Points.Clear(); for (int i = 0; i < categoryViews.Count; i++) { DataPoint point = new DataPoint(ViewsChart.Series["Views"]); point.SetValueXY(categoryViews[i].Key.Name, new object[] { categoryViews[i].Value }); ViewsChart.Series["Views"].Points.Add(point); } ViewsChart.DataBind(); ViewsGrid.DataSource = categoryViews; ViewsGrid.DataBind(); } DateTime cacheDate = (cacheWrapper != null) ? cacheWrapper.CacheDate : LocaleHelper.LocalNow; CacheDate1.Text = string.Format(CacheDate1.Text, cacheDate); CacheDate2.Text = string.Format(CacheDate2.Text, cacheDate); }