Пример #1
0
    // Datan haku funktio
    public void getData(bool d)
    {
        // Luodaan uusi entiteetti
        ctx = new G7934Entities();
        // Julistetaan lista olioista
        List<GridViewClassC> results;

        // Jos funktiota on kutsuttu arvolla 'true'
        if (d)
        {
            // Haetaan data entiteetistä...
            var result = from c in ctx.Accoplishments
                      join p in ctx.People on c.Person equals p.idPerson
                      // ...summaten tuloksen nimien mukaan...
                      group c by p.Name into cc
                      // ...ja järjestäen se summatun kestokentän mukaan
                      orderby cc.Sum(x => x.Duration) descending
                      select new GridViewClassC
                      {
                          Nimi = cc.Key,
                          // Kerrat kenttä - yhteenlasketaan suoritusten määrä
                          Kerrat = cc.Sum(x => 1),
                          // Kesto - yhteenlasketaan kesto kentät.
                          Kesto = cc.Sum(x => x.Duration)
                      };
            // Asetetaan data listaan.
            results = result.ToList();
        }
        // Jos taas funktio kutsuttu arvolla 'false'
        else
        {
            // Haetaan taas dataa entiteestiä...
            var result = from c in ctx.Accoplishments
                          join p in ctx.People on c.Person equals p.idPerson
                          // ...summaten tulekset nimien mukaan...
                          group c by p.Name into cc
                          // ...ja järjestämälle ne summatun kertakentän mukaan
                          orderby cc.Sum(x => 1) descending
                          select new GridViewClassC
                          {
                              Nimi = cc.Key,
                              Kerrat = cc.Sum(x => 1),
                              Kesto = cc.Sum(x => x.Duration)
                          };
            // Data listaksi
            results = result.ToList();
        }

        // Ja data näkyviin.
        gvData.DataSource = results;
        gvData.DataBind();
    }
Пример #2
0
    // Uuden lajin lisäysnapin funktio
    protected void btnAddNewSport_Click(object sender, EventArgs e)
    {
        // Uusi entiteetin instanssi
        ctx = new G7934Entities();
        // Luodaan uusi lajin olio
        Sport s = new Sport();
        // Asetetaan sille nimi tekstikentästä
        s.Name = txtNewSport.Text;
        // Lisätään se entiteettiin
        ctx.Sports.Add(s);
        // Ja tallennetaan se
        ctx.SaveChanges();
        // Täytetään lajivalikko uudestaan
        FillDateAndSports();
        // Ja asetataan juuri luotu laji valituksi
        ddlSport.SelectedValue = s.Name;

        // Piilotetaan lajinlisäyssälät
        trNewSport.Visible = false;
    }
Пример #3
0
    // Taulun täyttö funkkari
    private void ddlPopulate()
    {
        // Uusi entiteetti
        ctx = new G7934Entities();
        // Haetaan KAIKKI suoritukset...
        var results = from c in ctx.Accoplishments
                      join a in ctx.People on c.Person equals a.idPerson
                      join b in ctx.Sports on c.Sport equals b.idSport
                      orderby c.Date descending
                      // ...ja pökitään ne GridViewClassA olioihin
                      select new GridViewClassA
                      {
                          Nimi = a.Name,
                          Pvm = c.Date,
                          Laji = b.Name,
                          Kesto = c.Duration
                      };

        // Luodaan lista GridViewClassB olioista
        List<GridViewClassB> list = new List<GridViewClassB>();
        // Plärätään entiteetistä saatu lista läpi
        foreach (var item in results)
        {
            // Ja lisätään kakkoslistaan olioit ykköslistasta
            list.Add(new GridViewClassB()
            {
                Nimi = item.Nimi,
                // DateTimestä leikataan tunnit, minuutit ja sekuntit pois
                Pvm = item.Pvm.ToString("dd.MM.yyyy"),
                Laji = item.Laji,
                Kesto = item.Kesto
            });
        }

        // Leikataan listasta muut kuin 15 ensimmäistä alkiota pois.
        list.RemoveRange(15, list.Count - 15);
        // Ja pistetään data näkymään
        gvData.DataSource = list;
        gvData.DataBind();
    }
Пример #4
0
    // Datan täyttö päivämäärillä
    private void ddlPopulateWithDates()
    {
        // Jos aloituspäivä on täytetty...
        if (txtStart.Text != "")
        {
            // ...otetaan data sieltä
            startDate = DateTime.Parse(txtStart.Text);
        }
        // Jos taas ei, käytetään oletuspäivämäärää
        else
        {
            startDate = DateTime.Parse("01.01.2000");
        }
        // Ja sama loppupäivälle.
        if (txtEnd.Text != "")
        {
            endDate = DateTime.Parse(txtEnd.Text);
        }
        else
        {
            endDate = DateTime.Parse("01.01.2100");
        }

        // Uusi entiteetti
        ctx = new G7934Entities();
        // Haetaan suoritukset jotka osuvat aikaväliin...
        var results = from c in ctx.Accoplishments
                      join a in ctx.People on c.Person equals a.idPerson
                      join b in ctx.Sports on c.Sport equals b.idSport
                      // ...mikä on tässä!
                      where c.Date > startDate & c.Date < endDate
                      orderby c.Date descending
                      select new GridViewClassA
                      {
                          Nimi = a.Name,
                          Pvm = c.Date,
                          Laji = b.Name,
                          Kesto = c.Duration
                      };

        // Tehdään sama kikkailu kuin ylempänä. Eli saadaan DateTimet silmille kivempaan muotoon
        List<GridViewClassB> list = new List<GridViewClassB>();
        foreach (var item in results)
        {
            list.Add(new GridViewClassB()
            {
                Nimi = item.Nimi,
                Pvm = item.Pvm.ToString("dd.MM.yyyy"),
                Laji = item.Laji,
                Kesto = item.Kesto
            });
        }

        // Datasourcen määritys ja datan bindaus.
        gvData.DataSource = list;
        gvData.DataBind();
    }
Пример #5
0
    // Sivun lataus funktio.
    protected void Page_Load(object sender, EventArgs e)
    {
        // Jos sivulle ollaan tultu katselemaan jonkun (muun) henkilön suorituksia...
        if (Request.QueryString["name"] != null)
        {
            // Otetaan nimi talteen osoiteriviltä
            string nameForWhere = Request.QueryString["name"];
            // Entiteetin uusi instanssi
            ctx = new G7934Entities();
            // Haetaan data entiteesitä GridViewClassC olioihin...
            var results = from c in ctx.Accoplishments
                          join a in ctx.People on c.Person equals a.idPerson
                          join b in ctx.Sports on c.Sport equals b.idSport
                          // ...joiden suorittaja on kyseinen henkilö.
                          where a.Name == nameForWhere
                          orderby c.Date descending
                          select new GridViewClassC
                          {
                              Nimi = a.Name,
                              Pvm = c.Date,
                              Laji = b.Name,
                              Kesto = c.Duration,
                              Id = c.idAccoplishmnet
                          };

            // Tehdään GridViewClassC luokan oliojoukosta lista joukon
            // GridViewClassD olioita jotta päivämäärä saadaan kivaan muotoon
            List<GridViewClassD> list = new List<GridViewClassD>();
            foreach (var item in results)
            {
                list.Add(new GridViewClassD()
                {
                    Nimi = item.Nimi,
                    Pvm = item.Pvm.ToString("dd.MM.yyyy"),
                    Laji = item.Laji,
                    Kesto = item.Kesto,
                    Id = item.Id
                });
            }

            // Datan bindaus
            gvData.DataSource = list;
            gvData.DataBind();
            // Piilotetaan ensimmäinen linkkikolumni
            gvData.Columns[0].Visible = false;

            // Kerrotaan käyttäjälle kenen tuloksia näytetään.
            lblUser.Text = "Näytetään henkilön " + nameForWhere + " tulokset";
        }
        // Jos taas sivulle on tultu yläpalkin linkin kautta ja käyttäjä on jo valittu
        else if (Request.Cookies["UserSettings"] != null)
        {
            // Otetaan keksistä käyttäjän nimi talteen
            string nameForWhere = Request.Cookies["UserSettings"]["Name"];
            // Luodaan uusi instanssi entiteetistä
            ctx = new G7934Entities();
            // Ja haetaan käyttäjän suoritukset entiteetistä.
            var results = from c in ctx.Accoplishments
                          join a in ctx.People on c.Person equals a.idPerson
                          join b in ctx.Sports on c.Sport equals b.idSport
                          where a.Name == nameForWhere
                          orderby c.Date descending
                          select new GridViewClassC
                          {
                              Nimi = a.Name,
                              Pvm = c.Date,
                              Laji = b.Name,
                              Kesto = c.Duration,
                              Id = c.idAccoplishmnet
                          };

            // Muutetaan taas oliot luokasta C luokkaan D jotta päivämäärät on kivoja.
            List<GridViewClassD> list = new List<GridViewClassD>();
            foreach (var item in results)
            {
                list.Add(new GridViewClassD()
                {
                    Nimi = item.Nimi,
                    Pvm = item.Pvm.ToString("dd.MM.yyyy"),
                    Laji = item.Laji,
                    Kesto = item.Kesto,
                    Id = item.Id
                });
            }

            // Asetetaan taas data näkyviin
            gvData.DataSource = list;
            gvData.DataBind();
            // Ja tällä kertaa piilotetaan kolumni 1 jossa näkyy nimet ilman linkkejä
            gvData.Columns[1].Visible = false;

            // Kerrotaan vielä käyttäjälle kuka hän on
            lblUser.Text = "Valittuna: " + nameForWhere;
            btnLogOut.Visible = true;
        }
        // Jos taas käyttäjää ei ole valittu lainkaan
        else
        {
            // Pyydetään käyttäjää valitsemaan itsentä alasvetovalikosta...
            lblUser.Text = "Valitse kuka olet";
            // ...joka asetetaan näkyviin.
            ddlUser.Visible = true;
            // Ja mikäli dataa valikkoon ei vielä ole haettu
            if(!IsPostBack)
            {
                // Luodaan uusi entiteetti
                ctx = new G7934Entities();
                // Haetaan sieltä ihmiset
                var results = from c in ctx.People
                              select c.Name;
                // Luodaan lista...
                List<string> list = new List<string>();
                // ...johon lisätään ensimmäiseksi tyhjä valinta...
                list.Add("");
                // ...ja sitten nimet entiteetin joukosta.
                foreach (var i in results)
                {
                    list.Add(i);
                }

                // Ja sitten data näkyviin.
                ddlUser.DataSource = list;
                ddlUser.DataBind();
            }
        }
    }
Пример #6
0
    // Lisäysnäppäimen painallus
    protected void btnAdd_Click(object sender, EventArgs e)
    {
        // Luodaan uusi entiteetin instanssi
        ctx = new G7934Entities();

        // Jos kyseessä suorituksen muokkaus...
        if (Request.QueryString["id"] != null)
        {
            // Haetaan suoritus _id:n perusteella
            int id = int.Parse(Request.QueryString["id"]);
            var result = from c in ctx.Accoplishments
                         // Tässä merkataan id
                         where c.idAccoplishmnet == id
                         select c;
            // Haetaan lajin _id minkä nimi on tekstikentässä
            var s = from c in ctx.Sports
                    where c.Name == ddlSport.SelectedValue
                    select c;
            // Luodaan apumuuttuja lajin _id:lle...
            int sportId = 0;
            foreach (var i in s)
            {
                // ...ja merkataan siihen arvo
                sportId = i.idSport;
            }
            foreach (var a in result)
            {
                // Merkataan suoritukseen uudet arvot
                a.Date = DateTime.Parse(ddlDate.SelectedValue);
                a.Duration = int.Parse(txtDuration.Text);
                a.Sport = sportId;
            }

            // Ja tallennetaan se..
            ctx.SaveChanges();

            // ...ja näytetään käyttäjälle ilmoitus
            lblMessage.Text = "Muutos tallennettu";
            lblMessage.Visible = true;
        }
        // Jos taas kyseessä on uusi suoritus
        else
        {
            // Luodaan apumuuttuja...
            string name = "";
            // ...ja jos uusien nimien lisäys on mahdollista...
            if (AllowNewUsersAndSports)
            {
                // ...haetaan nimi tekstikentästä...
                name = txtName.Text;
            }
            // ...jos taas lisäys ei ole käytössä
            else
            {
                // ...haetaan nimi alasvetovalikosta.
                name = ddlName.SelectedValue;
            }

            // Haetaan tallennettavan henkilön _id kenttä entiteetistä...
            var person = from c in ctx.People
                    where c.Name == name
                    select c.idPerson;
            int personId = 0;
            foreach (var i in person)
            {
                // ...ja merkataan se apumuuttujaan.
                personId = i;
            }
            // Haetaan henkilön suoritukset...
            var results = from c in ctx.Accoplishments
                         where c.Person == personId
                         select c;
            int counter = 0;
            foreach (var i in results)
            {
                // ...ja jos henkilöllä on jo suorituksia valitulle päivälle niin lasketaan ne.
                if (i.Date.ToString("dd.MM.yyyy").Equals(ddlDate.SelectedValue)) {
                    counter++;
                }
            }

            // Jos suorituksiä päivälle on 5...
            if (counter > 4)
            {
                // ...ilmoitetaan siitä käyttäjälle...
                lblMessage.Text = "Sinulla on tällä päivällä jo " + counter + " suoritusta, et voi lisätä enempää.";
                lblMessage.Visible = true;
                // ...ja piilotetaan lisäysnapit.
                btnAdd.Visible = false;
                btnConfirmedAdd.Visible = false;
            }
            // Jos taas suorituksia on mutta ei vielä viittä...
            else if (counter > 0)
            {
                // ...piilotetaan peruslisäysnappi ja näytetään sekondäärilisäysnappi...
                btnAdd.Visible = false;
                btnConfirmedAdd.Visible = true;
                // ...ja ilmoitetaan tästä käyttäjälle.
                lblMessage.Text = "Sinulla on tällä päivällä jo " + counter.ToString() + " suoritusta, lisätäänkö uusi?";
                lblMessage.Visible = true;
            }
            // Jos suorituksia ei vielä kyseiselle päivälle ole, lisätään suoritus
            else
            {
                AddNew();
            }
        }
    }
Пример #7
0
    // Täytetään laji ja päivämäärä valikot
    protected void FillDateAndSports()
    {
        // Uusi entiteetti instanssi
        ctx = new G7934Entities();

        // Haetaan lajit entiteetistä...
        var sports = from c in ctx.Sports
                     select c.Name;
        // Luodaan haetuista lajeista lista string alkioita
        List<string> sportList = sports.ToList();

        // Ja jos lajien lisäys on käytössä...
        if (AllowNewUsersAndSports)
        {
            // ...lisätään listan loppuun uusi laji vaihtoehto
            sportList.Add(addNewSport);
        }

        // Asetetaan lajilista lajivalikon datasourceksi...
        ddlSport.DataSource = sportList;
        // ...ja kiinnitetään data valikkoon.
        ddlSport.DataBind();

        // Luodaan lista päivämäärille
        List<String> dates = new List<string>();

        // Apumuuttujat jotai käytetään jos kyseessä suorituksen muokkaus
        string selectedDate = "";
        string selectedSport = "";
        string selectedName = "";
        string selectedDuration = "";
        // Jos kyseessä suorituksen muokkaus
        if (Request.QueryString["id"] != null)
        {
            // Haetaan suoritus
            int id = int.Parse(Request.QueryString["id"]);
            var result = from c in ctx.Accoplishments
                         join a in ctx.People on c.Person equals a.idPerson
                         join b in ctx.Sports on c.Sport equals b.idSport
                         // Suorituksen id pitää olla tietty _id
                         where c.idAccoplishmnet == id
                         // Tulokset läiskäytetään uuteen olioon
                         select new
                         {
                             // Halutut arvot halutuille nimille
                             name = a.Name,
                             date = c.Date,
                             sport = b.Name,
                             duration = c.Duration
                         };
            foreach (var i in result)
            {
                // Jos suorituksen päivämäärä ei muuten tulisi valikkoon...
                if (i.date.CompareTo(DateTime.Today.AddDays(-14)) < 0)
                {
                    // ...lisätään suorituksen päivämäärä päivämäärälistaan
                    dates.Add(i.date.ToString("dd.MM.yyyy"));
                }
                // Merkataan valittavat arvot
                selectedDate = i.date.ToString("dd.MM.yyyy");
                selectedSport = i.sport;
                selectedName = i.name;
                selectedDuration = i.duration.ToString();
            }
        }

        // Lisätään tämä päivämäärä listaan...
        DateTime date = DateTime.Today;
        dates.Add(date.ToString("dd.MM.yyyy"));
        for (int i = 0; i < 13; i++)
        {
            // ...ja sen jälkeen 13 päivää taaksepäin
            date = date.AddDays(-1);
            dates.Add(date.ToString("dd.MM.yyyy"));
        }
        // Lisätään 14 (ehkä 15 jos vanhan suorituksen muokkaus) päivämäärävalikon datasourceksi
        ddlDate.DataSource = dates;
        // Ja bindataan data.
        ddlDate.DataBind();

        // Jos käyttäjien lisäys ei ole sallittu
        if (!AllowNewUsersAndSports)
        {
            // Haetaan entiteetistä valmiit käyttäjät...
            var people = from c in ctx.People
                         select c.Name;
            // ...ja muutetaan ne listaksi ja laitetaan valikon datasourceksi
            ddlName.DataSource = people.ToList();
            // Ja bindataan data.
            ddlName.DataBind();
        }

        // Jos kyseessä suorituksen muokkaus jolloin selected arvot on muutettu...
        if (selectedDate != "" && selectedSport != "" && selectedName != "" && selectedDuration != "")
        {
            // ...asetetaan saadut arvot kenttiin.
            txtName.Text = selectedName;
            txtDuration.Text = selectedDuration;
            ddlSport.SelectedValue = selectedSport;
            ddlDate.SelectedValue = selectedDate;
        }
    }
Пример #8
0
 // Sekondäärilisäysnappi
 protected void btnConfirmedAdd_Click(object sender, EventArgs e)
 {
     // Kun ollaan varmistettu suorituksen lisäys, lisätään se.
     ctx = new G7934Entities();
     AddNew();
 }