private void ShowBasePage() { List <Manufacturer> lst = new List <Manufacturer>(Manufacturer.CachedManufacturers()); lst.RemoveAll(man => man.AllowedTypes != AllowedAircraftTypes.Any); gvManufacturers.DataSource = lst; gvManufacturers.DataBind(); }
protected void RepopulateManufacturerDropdown(string defVal = null) { // Set up the manufacturer list every time, since it's large and consumes viewstate cmbManufacturer.SelectedIndex = -1; cmbManufacturer.SelectedValue = null; cmbManufacturer.DataSource = Manufacturer.CachedManufacturers(); cmbManufacturer.DataBind(); if (defVal != null) { SelectIfPresent(defVal); } }
protected void Page_Init(object sender, EventArgs e) { // For efficiency of viewstate, we repopulate manufactures on each postback. cmbManufacturers.DataSource = Manufacturer.CachedManufacturers(); cmbManufacturers.DataBind(); }
protected void Page_Load(object sender, EventArgs e) { // This page is for search engines by default. if (Page.User.Identity.IsAuthenticated && String.IsNullOrEmpty(Request.PathInfo)) { Response.Redirect("~/Member/Makes.aspx", true); return; } if (!IsPostBack) { Response.Cache.SetExpires(DateTime.Now.AddSeconds(1209600)); Response.Cache.SetCacheability(System.Web.HttpCacheability.Public); Response.Cache.SetValidUntilExpires(true); this.Master.Title = String.Format(CultureInfo.CurrentCulture, Resources.Makes.AllMakesTitle, Branding.CurrentBrand.AppName); string[] rgIds = Request.PathInfo.Split(new char[] { '/' }, StringSplitOptions.RemoveEmptyEntries); int clevels = rgIds.Length; if (clevels >= mvLevelToShow.Views.Count) { return; } mvHeader.ActiveViewIndex = mvLevelToShow.ActiveViewIndex = clevels; try { switch (clevels) { case 0: // base page - show manufacturers { List <Manufacturer> lst = new List <Manufacturer>(Manufacturer.CachedManufacturers()); lst.RemoveAll(man => man.AllowedTypes != AllowedAircraftTypes.Any); gvManufacturers.DataSource = lst; gvManufacturers.DataBind(); } break; case 1: // specific manufacturer - show their models // No images, just for performance { int idMan = Convert.ToInt32(rgIds[0], CultureInfo.InvariantCulture); if (ModelsByManufacturer.ContainsKey(idMan)) { gvMakes.DataSource = ModelsByManufacturer[idMan]; gvMakes.DataBind(); } else { throw new System.Web.HttpException(404, "Not found"); } } break; case 2: // specific model - show all aircraft { int idMan = Convert.ToInt32(rgIds[0], CultureInfo.InvariantCulture); int idModel = Convert.ToInt32(rgIds[1], CultureInfo.InvariantCulture); if (!ModelsByManufacturer.ContainsKey(idMan)) { throw new System.Web.HttpException(404, "Not found"); } MakeModel m = ModelsByManufacturer[idMan].Find(mm => mm.MakeModelID == idModel); if (m == null) { throw new System.Web.HttpException(404, "Not found"); } rptAttributes.DataSource = m.AttributeList(); rptAttributes.DataBind(); lblModel.Text = m.DisplayName; List <Aircraft> lst = new List <Aircraft>(); // UserAircraft.GetAircraftForUser is pretty heavyweight, especially for models witha lot of aircraft like C-152. // We just don't need that much detail, since we're just binding images by ID and tailnumbers DBHelper dbh = new DBHelper(String.Format(CultureInfo.InvariantCulture, "SELECT idaircraft, tailnumber FROM aircraft WHERE idmodel=?modelid AND tailnumber NOT LIKE '{0}%' AND instanceType=1 ORDER BY tailnumber ASC", CountryCodePrefix.szAnonPrefix)); dbh.ReadRows((comm) => { comm.Parameters.AddWithValue("modelid", idModel); }, (dr) => { int idaircraft = Convert.ToInt32(dr["idaircraft"], CultureInfo.InvariantCulture); string tailnumber = (string)dr["tailnumber"]; lst.Add(new Aircraft() { AircraftID = idaircraft, TailNumber = tailnumber }); }); gvAircraft.DataSource = lst; gvAircraft.DataBind(); } break; } } catch (FormatException) { Response.Clear(); Response.StatusCode = 404; Response.End(); } } }