コード例 #1
0
        private void SaveButton_Click(object sender, RoutedEventArgs e)
        {
            // Tallennetaan uusi sekvenssi
            if (SequenceEditListBox.Items.Count == 0 || seqcuenceNameTextBox.Text == "")
            {
                MessageBox.Show("Laita sekvenssiin vähintään yksi rivi ja anna sekvenssille nimi", "Virhe");
            }
            else
            {
                try
                {
                    using (var saveSequence = new SequenceContext())
                    {
                        // Luodaan uusi ledisekvenssi
                        var sekvenssi = new LedSequence
                        {
                            Name = seqcuenceNameTextBox.Text
                        };
                        saveSequence.Add(sekvenssi);

                        // Käydään listan rivit läpi
                        foreach (var playRow in newList.PlayListRows)
                        {
                            var aika1 = new TimeRow
                            {
                                Time        = playRow.Time,
                                LedSequence = sekvenssi
                            };
                            saveSequence.Add(aika1);

                            var ledit = new LedRow
                            {
                                PinId   = playRow.PinId1,
                                Status  = playRow.Status1,
                                TimeRow = aika1
                            };
                            saveSequence.Add(ledit);
                            ledit = new LedRow
                            {
                                PinId   = playRow.PinId2,
                                Status  = playRow.Status2,
                                TimeRow = aika1
                            };
                            saveSequence.Add(ledit);
                        }

                        // Tallennetaan uudet tiedot tietokantaan
                        saveSequence.SaveChanges();
                        MessageBox.Show("Tiedot tallennettu tietokantaan.", "Onnistui");
                        this.Close();
                    }
                }
                catch (Exception)
                {
                    throw;
                }
            }
        }
コード例 #2
0
 private void deleteAll()
 {
     using (var deleteSequences = new SequenceContext())
     {
         deleteSequences.LedSequences.RemoveRange(deleteSequences.LedSequences);
         deleteSequences.TimeRows.RemoveRange(deleteSequences.TimeRows);
         deleteSequences.LedRows.RemoveRange(deleteSequences.LedRows);
         deleteSequences.SaveChanges();
     }
 }
コード例 #3
0
 private void LoadSequences()
 {
     // Ladataan sekvenssit tietokannasta
     try
     {
         using (var loadSequences = new SequenceContext())
         {
             // Sekvenssien latausta ei tehdä, jos huomataan, ettei niitä ole yhtään.
             if (loadSequences.LedSequences.Count() > 0)
             {
                 SequencesComboBox.ItemsSource = loadSequences.LedSequences.ToList();
             }
         }
     }
     catch (Exception)
     {
         throw;
     }
 }
コード例 #4
0
        private void PlayButton_Click(object sender, RoutedEventArgs e)
        {
            // Play-nappia painettu, toistetaan sekvenssi
            var selectedSequence = this.SequencesComboBox.SelectedItem as LedSequence;

            if (selectedSequence != null)
            {
                PlayList uusiLista = new PlayList();
                try
                {
                    using (var loadSequences = new SequenceContext())
                    {
                        int time    = 0;
                        int pinId1  = 0;
                        int status1 = 0;
                        int pinId2  = 0;
                        int status2 = 0;

                        SequenceNameTextBox.Text = selectedSequence.Name;
                        var sequenceId = selectedSequence.Id;

                        /*
                         * var query = loadSequences.TimeRows
                         *  .Include(c => c.LedRows)
                         *  .ToArray();
                         */

                        var query = (
                            from timer in loadSequences.TimeRows
                            join leds in loadSequences.LedRows on timer.Id equals leds.TimeRow.Id
                            join sekvenssi in loadSequences.LedSequences on timer.LedSequence.Id equals sekvenssi.Id
                            where sekvenssi.Id.Equals(sequenceId)
                            select new
                        {
                            sequencedId = timer.LedSequence.Id,
                            sequenceName = timer.LedSequence.Name,
                            timeRowId = timer.Id,
                            time = timer.Time,
                            ledRowId = leds.Id,
                            ledPinId = leds.PinId,
                            ledStatus = leds.Status
                        }).ToArray();

                        PlayListRow playListRow = new PlayListRow();

                        int count = 0;

                        foreach (var sequence in query)
                        {
                            if (count % 2 == 0)
                            {
                                time    = sequence.time;
                                pinId1  = sequence.ledPinId;
                                status1 = sequence.ledStatus;
                            }
                            else
                            {
                                pinId2  = sequence.ledPinId;
                                status2 = sequence.ledStatus;
                                PlayListRow listanrivi = new PlayListRow(time, pinId1, status1, pinId2, status2);
                                uusiLista.addRow(listanrivi);
                            }
                            count++;
                        }
                    }
                }
                catch (Exception)
                {
                    throw;
                }

                PlaySequence(uusiLista);
            }
        }
コード例 #5
0
        private void SequencesComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            // Ladataan sekvenssit tietokannasta
            try
            {
                var selectedSequence = this.SequencesComboBox.SelectedItem as LedSequence;
                using (var loadSequences = new SequenceContext())
                {
                    //MessageBox.Show($"Valitsit sekvenssin {selectedSequence.Name}, jonka id on {selectedSequence.Id}");
                    SequenceNameTextBox.Text = selectedSequence.Name;
                    int sequenceId = selectedSequence.Id;

                    /*
                     * var ledSequenceList = loadSequences.LedSequences
                     *  .Include(TimeRow => TimeRow.TimeRows)
                     *  .Where(c => c.Id.Equals(secuenceId))
                     *  .ToList();
                     *
                     * var ledSequenceArray = loadSequences.LedSequences
                     *  .Include(TimeRow => TimeRow.TimeRows)
                     *  .Where(c => c.Id.Equals(secuenceId))
                     *  .ToArray();
                     *
                     * var timeId = ledSequenceList[0].Id;
                     *
                     * var ledSequence = loadSequences.LedRows
                     *  .Include(LedRow => LedRow.TimeRow)
                     *  .Include(LedSequence => LedSequence.TimeRow)
                     *  .ToList();
                     */



                    var uusi2 = loadSequences.TimeRows
                                .Include(c => c.LedRows)
                                .ToArray();

                    //.Where(d => d.LedSequence.Id.Equals(sequenceId))


                    var query = (
                        from timerows in loadSequences.TimeRows
                        join ledrows in loadSequences.LedRows on timerows.Id equals ledrows.TimeRow.Id
                        where timerows.LedSequence.Id == sequenceId
                        select new { TimeRow = timerows, LedRow = ledrows }).ToList();

                    /*
                     * var query = (
                     * from sequencerows in loadSequences.LedSequences
                     * join timerows in loadSequences.TimeRows on sequencerows.Id equals timerows.LedSequence.Id
                     * join ledrows in loadSequences.LedRows on timerows.Id equals ledrows.TimeRow.Id
                     * where sequencerows.Id == sequenceId
                     * select new { LedSequence = sequencerows, TimeRow = timerows, LedRow = ledrows }).ToList();
                     */


                    /*
                     * var uusi =
                     *  from timer in loadSequences.TimeRows
                     *  join leds in loadSequences.LedRows on timer.Id equals leds.TimeRow.Id
                     *  join sekvenssi in loadSequences.LedSequences on timer.LedSequence.Id equals sekvenssi.Id
                     *  where sekvenssi.Id.Equals(secuenceId)
                     *  select sekvenssi;
                     *
                     * foreach (var item in uusi)
                     * {
                     *  var testi = item.TimeRows;
                     * }
                     */

                    /*
                     * var query = (
                     *  from timer in loadSequences.TimeRows
                     *  join leds in loadSequences.LedRows on timer.Id equals leds.TimeRow.Id
                     *  join sekvenssi in loadSequences.LedSequences on timer.LedSequence.Id equals sekvenssi.Id
                     *  where sekvenssi.Id.Equals(secuenceId)
                     *  select new
                     *  {
                     *      sequencedId = timer.LedSequence.Id,
                     *      sequenceName = timer.LedSequence.Name,
                     *      timeRowId = timer.Id,
                     *      time = timer.Time,
                     *      ledRowId = leds.Id,
                     *      ledPinId = leds.PinId,
                     *      ledStatus = leds.Status
                     *  }).ToList();
                     */

                    var joinquery = (
                        from timer in loadSequences.TimeRows
                        join leds in loadSequences.LedRows on timer.Id equals leds.TimeRow.Id
                        join sekvenssi in loadSequences.LedSequences on timer.LedSequence.Id equals sekvenssi.Id
                        where sekvenssi.Id.Equals(sequenceId)
                        select new
                    {
                        sequencedId = timer.LedSequence.Id,
                        sequenceName = timer.LedSequence.Name,
                        timeRowId = timer.Id,
                        time = timer.Time,
                        ledRowId = leds.Id,
                        ledPinId = leds.PinId,
                        ledStatus = leds.Status
                    }).ToList();

                    var joinqueryArray = (
                        from timer in loadSequences.TimeRows
                        join leds in loadSequences.LedRows on timer.Id equals leds.TimeRow.Id
                        join sekvenssi in loadSequences.LedSequences on timer.LedSequence.Id equals sekvenssi.Id
                        where sekvenssi.Id.Equals(sequenceId)
                        select new
                    {
                        sequencedId = timer.LedSequence.Id,
                        sequenceName = timer.LedSequence.Name,
                        timeRowId = timer.Id,
                        time = timer.Time,
                        ledRowId = leds.Id,
                        ledPinId = leds.PinId,
                        ledStatus = leds.Status
                    }).ToArray();

                    // TimeRowDetails(uusi2);
                    // Tämä on melkein ok, älä poista. Pitää saada vain yhden id:n tiedot

                    //TimeRowDetailsFromQyeryArray(joinqueryArray);
                    //TimeRowDetailsFromQyery(joinquery);

                    // Tekisin tämän kasauksen omassa funktiossa, mutta en osaa välittää tätä tyyppiä ulos.
                    List <string> detailsList   = new List <string>();
                    string        detailsString = "";
                    foreach (var time in joinquery)
                    {
                        detailsString  = "";
                        detailsString  = "AikaId " + time.timeRowId + "\t";
                        detailsString += "Aika " + time.time + " ms\t";
                        detailsString += "pidId " + time.ledPinId + "\t";
                        detailsString += "status " + time.ledStatus + "\t";
                        detailsList.Add(detailsString);
                    }

                    SequenceDetailListBox.ItemsSource = detailsList;
                    SequenceDetailListBox.Items.Refresh();
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
                //throw;
            }
        }
コード例 #6
0
        private void populateSequence()
        {
            try
            {
                // Jos tietokannassa ei ole yhtään sekvenssiä, lisätään sinne yksi
                var populateSecuence = new SequenceContext();

                if (populateSecuence.LedSequences.Count() == 0)
                {
                    var sekvenssi = new LedSequence
                    {
                        Name = "Sekunnin jumppa"
                    };
                    populateSecuence.Add(sekvenssi);

                    var aika1 = new TimeRow
                    {
                        Time        = 1000,
                        LedSequence = sekvenssi
                    };
                    populateSecuence.Add(aika1);

                    var ledit = new LedRow
                    {
                        PinId   = redLed.pinId,
                        Status  = 0,
                        TimeRow = aika1
                    };
                    populateSecuence.Add(ledit);
                    ledit = new LedRow
                    {
                        PinId   = blueLed.pinId,
                        Status  = 1,
                        TimeRow = aika1
                    };
                    populateSecuence.Add(ledit);

                    var aika2 = new TimeRow
                    {
                        Time        = 1000,
                        LedSequence = sekvenssi
                    };
                    populateSecuence.Add(aika2);

                    var ledit2 = new LedRow
                    {
                        PinId   = redLed.pinId,
                        Status  = 1,
                        TimeRow = aika2
                    };
                    populateSecuence.Add(ledit2);
                    ledit2 = new LedRow
                    {
                        PinId   = blueLed.pinId,
                        Status  = 0,
                        TimeRow = aika2
                    };
                    populateSecuence.Add(ledit2);

                    populateSecuence.SaveChanges();
                }
            }
            catch (Exception)
            {
                MessageBox.Show("Tietoja ei voitu lisätä tietokantaan", "Virhe");
            }
        }