/// <summary> /// Should this record be included in the report based on teh selected locations and/or assets /// </summary> /// <param name="record"></param> /// <returns></returns> protected bool FilterRecord(InternetReportEntry record) { // check data filter first if ((!_showAllDates) && (record.Date < _startDate.Date || record.Date > _endDate.Date)) { return(false); } // True if no filters applied if ((_selectedGroups == "") && (_selectedAssets == "")) { return(true); } // Check locations specified foreach (string group in SelectedGroupsList) { if (record.Location == group) { return(true); } } // Not in the groups list so check the assets list also foreach (string assetName in SelectedAssetsList) { if (record.AssetName == assetName) { return(true); } } return(false); }
/// <summary> /// This function is responsible for generating the actual data which will be displayed by the report /// </summary> protected void GenerateReportData() { // Create a string representation of the publisher filter list passed to us // We need to get the entire licensing information at this point StatisticsDAO lwDataAccess = new StatisticsDAO(); DataTable internetTable = lwDataAccess.GetInternetHistory(_startDate, _endDate, _filterURL); // Create a string representation of the publisher filter list passed to us // We need to get the entire licensing information at this point AssetGroup.GROUPTYPE displayType = AssetGroup.GROUPTYPE.userlocation; DataTable table = new LocationsDAO().GetGroups(new AssetGroup(displayType)); AssetGroup _cachedAssetGroups = new AssetGroup(table.Rows[0], displayType); _cachedAssetGroups.Populate(true, _ignoreChildAssets, true); // Now apply the filter to these groups _cachedAssetGroups.ApplyFilters(_selectedGroups, _selectedAssets, _ignoreChildAssets); // Now that we have a definitive list of the assets (as objects) which we want to include in the // report we could really do with expanding this list so that ALL of the assets are in a single list // and not distributed among the publishers AssetList _cachedAssetList = _cachedAssetGroups.GetAllAssets(); _selectedAssets = String.Empty; foreach (Asset asset in _cachedAssetList) { _selectedAssets += asset.Name + ";"; } char[] charsToTrim = { ';' }; _selectedAssets.TrimEnd(charsToTrim); ResetSelectedAssets(); // ...then create InternetReportEntry objects for each returned and add to the view foreach (DataRow row in internetTable.Rows) { // Create the object for this Internet record InternetReportEntry ieEntry = new InternetReportEntry(row); // Check for this being filtered by location/asset if (FilterRecord(ieEntry)) { AddRecord(ieEntry); } } }
/// <summary> /// This function is called to add an application to the DataSet noting that the /// DataSet actually has 3 separate (but linked) tables for Applications, Instances and Licenses /// </summary> /// <param name="thisApplication"></param> protected void AddRecord(InternetReportEntry record) { // Get the Table from the DataSet DataTable internetTable = _reportDataSet.Tables["Internet"]; // Add the row to the data set try { internetTable.Rows.Add(new object[] { //record //, record.Location record.AssetName //, record.Source //, record.Date.ToShortDateString() , record.Date.ToString("yyyy-MM-dd") , record.Url , record.PagesAccessed.ToString() }); } catch (Exception e) { MessageBox.Show(e.Message); } }