// ny hest
    protected void ButtonOpret_Click(object sender, EventArgs e)
    {
        // hesten oprettes, erklæres som variabel og instantieres med default constructor
        Hest hesten = new Hest();
        using (var ctx = new RideklubbenContext())
        {
            // værdier puttes ind i objektet
            hesten.Navn = TextBoxNavn.Text;
            hesten.Vægt = Convert.ToDouble(TextBoxVægt.Text);
            hesten.Højde = Convert.ToDouble(TextBoxHøjde.Text);

            // Åh suk. Jeg har lavet disse felter "not null" i databasen, så der skal være en værdi i.
            hesten.Forælder_HesteId = ctx.Heste.Single(f => f.Navn == "Stamfar").HesteId;
            hesten.Fødestald = "";
            hesten.FødeDato = DateTime.Now;

            GemHesteBillede(hesten);

            // her er magien
            ctx.Heste.AddObject(hesten);
            ctx.SaveChanges();
        }
        PanelEdit.Visible = false;
        ButtonOpret.Visible = false;
        RepeaterHeste.DataBind();
    }
Exemple #2
0
    /// <summary>
    /// Når man klikker på en hest i topbaren
    /// </summary>
    /// <param name="source">topbar repeateren</param>
    /// <param name="e">Alt muligt info om eventet.
    /// Bl.a. e.CommandArgument, hvor vi har ID'et på hesten brugeren trykkede på.</param>
    protected void RepeaterTopBar_ItemCommand(object source, RepeaterCommandEventArgs e)
    {
        // asert Heste
        // TODO hvad hvis ikke heste? Men Ryttere eller ejere...

        // den hest der er klikket på
        int hesteId = Convert.ToInt32(e.CommandArgument);
        using (var ctx = new RideklubbenContext())
        {
            // hent den hest der er klikket på
            Hest hesten = ctx.Heste.Single(heste => heste.HesteId == hesteId);

            // Udskriv info om hesten (der er kun en, så jeg gider ikke en repeater).
            CenterImageNavn.Text = hesten.Navn;
            // udregn alder i år
            CenterImageAlder.Text = Math.Floor(((DateTime.Now - hesten.FødeDato).TotalDays / 365)).ToString() + " år";
            CenterIamgeOprindelse.Text = hesten.Fødestald;
            CenterImageImg.ImageUrl = hesten.BilledeSti;

            // HER BLIR DET SMART!
            // vi binder alle hestens ryttere til repeateren i venstre side.
            RepeaterLeftColumn.DataSource = hesten.Ryttere;
            RepeaterLeftColumn.DataBind();

        }
    }
Exemple #3
0
 protected void Page_Load(object sender, EventArgs e)
 {
     using (var ctx = new RideklubbenContext())
     {
         // hent alle Heste fra context'en, og put dem i repeaterens datasource.
         // Databind(), så kører resten :-)
         RepeaterTopBar.DataSource = ctx.Heste;
         RepeaterTopBar.DataBind();
     }
 }
    protected void ButtonOpdater_Click(object sender, EventArgs e)
    {
        int hesteID = Convert.ToInt32(ViewState["hesteID"]);
        Hest hesten;
        using (var ctx = new RideklubbenContext())
        {
            // vi henter den entitet der skal redigeres
            hesten = ctx.Heste.Single(h => h.HesteId == hesteID);

            // nye værdier puttes ind i objektet
            hesten.Navn = TextBoxNavn.Text;
            hesten.Vægt = Convert.ToDouble( TextBoxVægt.Text );
            hesten.Højde = Convert.ToDouble( TextBoxHøjde.Text );

            GemHesteBillede(hesten);

            // her er magien
            ctx.SaveChanges();
        }
        PanelEdit.Visible = false;
        ButtonOpdater.Visible = false;
        RepeaterHeste.DataBind();
    }
    protected void RepeaterHeste_ItemCommand(object source, RepeaterCommandEventArgs e)
    {
        if (e.CommandName == "hentHest")
        {
            int hesteID = Convert.ToInt32(e.CommandArgument);
            Hest hesten;

            using (var ctx = new RideklubbenContext())
            {
                hesten = ctx.Heste.Single(h => h.HesteId == hesteID);

                TextBoxNavn.Text = hesten.Navn;
                TextBoxVægt.Text = hesten.Vægt.ToString();
                TextBoxHøjde.Text = hesten.Højde.ToString();
                ViewState["hesteID"] = hesteID;
            }

            PanelEdit.Visible = true;
            ButtonOpdater.Visible = true;
            ButtonOpret.Visible = false;
        }
        else if (e.CommandName == "sletHest")
        {
            int hesteID = Convert.ToInt32(e.CommandArgument);
            Hest hesten;

            using (var ctx = new RideklubbenContext())
            {
                // indlæs entiteten
                hesten = ctx.Heste.Single(h => h.HesteId == hesteID);
                try
                {
                    // slet billedet
                    File.Delete(Server.MapPath("~/" + hesten.BilledeSti));
                    // slet entiteten
                    ctx.DeleteObject(hesten);
                    // gem ændringerne
                    ctx.SaveChanges();
                }
                catch (System.IO.DirectoryNotFoundException de)
                {
                    // nada
                }
            }
            RepeaterHeste.DataBind();
        }
    }