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; } } }
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(); } }
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; } }
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); } }
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; } }
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"); } }