protected void UpdateFlightsPerUser() { NumericBucketmanager bmFlightsPerUser = new NumericBucketmanager() { BucketForZero = true, BucketWidth = 100, BucketSelectorName = "FlightCount" }; List <SimpleCountHistogrammable> lstFlightsPerUser = new List <SimpleCountHistogrammable>(); HistogramManager hmFlightsPerUser = new HistogramManager() { SourceData = lstFlightsPerUser, SupportedBucketManagers = new BucketManager[] { bmFlightsPerUser }, Values = new HistogramableValue[] { new HistogramableValue("Range", "Flights", HistogramValueTypes.Integer) } }; DBHelper dbh = new DBHelper(String.Format(CultureInfo.InvariantCulture, @"SELECT COUNT(f2.usercount) AS numusers, f2.numflights FROM (SELECT u.username AS usercount, FLOOR((COUNT(f.idflight) + 99) / 100) * 100 AS numflights FROM users u LEFT JOIN flights f ON u.username = f.username {0} GROUP BY u.username ORDER BY numflights ASC) f2 GROUP BY f2.numflights ORDER BY f2.numflights ASC;", String.IsNullOrEmpty(cmbNewUserAge.SelectedValue) ? string.Empty : "WHERE u.creationdate > ?creationDate")); dbh.CommandArgs.Timeout = 300; dbh.ReadRows((comm) => { comm.Parameters.AddWithValue("creationDate", String.IsNullOrEmpty(cmbNewUserAge.SelectedValue) ? DateTime.MinValue : DateTime.Now.AddMonths(-Convert.ToInt32(cmbNewUserAge.SelectedValue, CultureInfo.InvariantCulture))); }, (dr) => { lstFlightsPerUser.Add(new SimpleCountHistogrammable() { Count = Convert.ToInt32(dr["numusers"], CultureInfo.InvariantCulture), Range = Convert.ToInt32(dr["numflights"], CultureInfo.InvariantCulture) }); }); gcFlightsPerUser.TickSpacing = (lstFlightsPerUser.Count < 20) ? 1 : (lstFlightsPerUser.Count < 100 ? 5 : 10); bmFlightsPerUser.ScanData(hmFlightsPerUser); using (DataTable dt = bmFlightsPerUser.ToDataTable(hmFlightsPerUser)) { gcFlightsPerUser.Clear(); foreach (DataRow dr in dt.Rows) { gcFlightsPerUser.XVals.Add((string)dr["DisplayName"]); gcFlightsPerUser.YVals.Add((int)Convert.ToDouble(dr["Flights"], CultureInfo.InvariantCulture)); } gvFlightPerUser.DataSource = dt; gvFlightPerUser.DataBind(); } }
protected void UpdateFlightsByDate() { YearMonthBucketManager bmFlights = new YearMonthBucketManager() { BucketSelectorName = "DateRange" }; List <SimpleDateHistogrammable> lstFlightsByDate = new List <SimpleDateHistogrammable>(); DBHelper dbh = new DBHelper(@"SELECT COUNT(*) AS numflights, DATE_FORMAT(f.date, '%Y-%m-01') AS creationbucket FROM flights f GROUP BY creationbucket ORDER BY creationbucket ASC"); dbh.CommandArgs.Timeout = 300; dbh.ReadRows((comm) => { }, (dr) => { lstFlightsByDate.Add(new SimpleDateHistogrammable() { Date = Convert.ToDateTime(dr["creationbucket"], CultureInfo.InvariantCulture), Count = Convert.ToInt32(dr["numflights"], CultureInfo.InvariantCulture) }); }); HistogramManager hmFlightsByDate = new HistogramManager() { SourceData = lstFlightsByDate, SupportedBucketManagers = new BucketManager[] { bmFlights }, Values = new HistogramableValue[] { new HistogramableValue("DateRange", "Flights", HistogramValueTypes.Time) } }; bmFlights.ScanData(hmFlightsByDate); using (DataTable dt = bmFlights.ToDataTable(hmFlightsByDate)) { gcFlightsOnSite.Clear(); foreach (DataRow dr in dt.Rows) { gcFlightsOnSite.XVals.Add((string)dr["DisplayName"]); gcFlightsOnSite.YVals.Add((int)Convert.ToDouble(dr["Flights"], CultureInfo.InvariantCulture)); gcFlightsOnSite.Y2Vals.Add((int)Convert.ToDouble(dr["Flights Running Total"], CultureInfo.InvariantCulture)); } // gcFlightsOnSite.TickSpacing = Math.Max(1, gcFlightsOnSite.XVals.Count / 15); gvFlightsData.DataSource = dt; gvFlightsData.DataBind(); } }