private void ShowBasePage()
        {
            List <Manufacturer> lst = new List <Manufacturer>(Manufacturer.CachedManufacturers());

            lst.RemoveAll(man => man.AllowedTypes != AllowedAircraftTypes.Any);
            gvManufacturers.DataSource = lst;
            gvManufacturers.DataBind();
        }
Exemple #2
0
 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();
            }
        }
    }