public void UpdateWordKnowledge(WordKnowledge knowledge) { // Equals ovveride bez sprawdzania level, więc szuka tylko krotki wg.: id_front, id_back, id_user // Check czy user już sie tego uczył if (WordKnowledgeExists(knowledge)) { // Edycja (użycie Update) var oldLevel = WordKnowledges[WordKnowledges.IndexOf(knowledge)]; // Czy zmienił poziom w danej krotce if (oldLevel.Knowledge != knowledge.Knowledge) { // Jeśli tak to edytuj w bazie if (SetOfWordKnwoledges.EditWordKnowledge(knowledge, oldLevel.Id)) { // i edytuj w kolekcji knowledge.Id = oldLevel.Id; WordKnowledges[WordKnowledges.IndexOf(oldLevel)] = knowledge; } } } else // Jeśli nowa krotka to { // Dodaj nowe ( użycie SetOf...Add (index się doda)) if (SetOfWordKnwoledges.AddWordKnowledge(knowledge)) { // Dodaj do listy (z indexem) WordKnowledges.Add(knowledge); } } }
private bool Match(Word wordA, Word wordB, WordKnowledge wordKnowledge) { if (wordA.GUID == wordB.GUID && wordKnowledge.Id_word_back == wordB.Id && wordKnowledge.Id_word_front == wordA.Id) { return(true); } return(false); }
public virtual IList <WordKnowledge> Qualify() { if (chached) { return(wordKnowledges); } chached = true; WordIdOpenCount.ForEach((metric) => { WordKnowledge wordKnowledge = new WordKnowledge(metric.Key, LevelFromMetric(metric.Value), GetComplexity(Type)); wordKnowledges.Add(wordKnowledge); }); return(wordKnowledges); }
public static bool AddWordKnowledge(WordKnowledge wk) { bool state = false; using (var connection = DBConnection.Instance.Connection) { MySqlCommand cmd = new MySqlCommand($"{query.add_word_knowledge} {wk.ToInsert()}", connection); connection.Open(); var id = cmd.ExecuteNonQuery(); state = true; wk.Id = (ulong)cmd.LastInsertedId; connection.Close(); } return(state); }
public static bool EditWordKnowledge(WordKnowledge wk, ulong?idWk) { bool state = false; using (var connection = DBConnection.Instance.Connection) { // Aktualizacja krotki (jeśli wymagana) w miejscu poprzednika (zmiana tylko knowledge) string AKTUALIZUJ_POZIOM = $"UPDATE wordknowledge SET knowledge={wk.Knowledge} WHERE ID={idWk}"; MySqlCommand cmd = new MySqlCommand(AKTUALIZUJ_POZIOM, connection); connection.Open(); var n = cmd.ExecuteNonQuery(); if (n == 1) { state = true; } connection.Close(); } return(state); }
public bool WordKnowledgeExists(WordKnowledge wk) => WordKnowledges.Contains(wk);