/// <summary> /// Deletes an existing keyword. /// </summary> public void DeleteKeyword(Keyword keyword) { keyword = dataContext.Keywords.Find(keyword.Id); if (keyword == null) throw new ArgumentOutOfRangeException("keyword.Id", "Id must exist in the Keywords-table."); dataContext.Keywords.Remove(keyword); dataContext.SaveChanges(); }
/// <summary> /// Adds a new keyword. /// </summary> public void AddNewKeyword(Keyword keyword) { Check.Require(keyword.Name); if (dataContext.Languages.Find(keyword.LanguageId) == null) throw new ArgumentOutOfRangeException("keyword.LanguageId", "LanguageId must exist in the Languages-table."); dataContext.Keywords.Add(keyword); dataContext.SaveChanges(); }
/// <summary> /// Event raised when a cell has finished editing. /// The edited cell is either updated or added to the database. /// TODO: This should be converted to be done by pure binding instead using this event. /// TODO: USE: xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity" for binding! /// TODO: USE: xmlns:ei="http://schemas.microsoft.com/expression/2010/interactions" for binding! /// </summary> private void DataGrid_CellEditEnding(object sender, DataGridCellEditEndingEventArgs e) { using (var businessContext = new BusinessContext()) { Keyword keyword = (Keyword) e.Row.Item; keyword = businessContext.DataContext.Keywords.Find(keyword.Id); if (keyword != null) { keyword.Name = ((TextBox)e.EditingElement).Text; businessContext.UpdateKeyword(keyword); } else { keyword = new Keyword { Name = ((TextBox)e.EditingElement).Text, LanguageId = ((Language)LanguageTabControl.SelectedValue).Id }; businessContext.AddNewKeyword(keyword); } } }
/// <summary> /// Updates an existing keyword. /// </summary> public void UpdateKeyword(Keyword keyword) { Check.Require(keyword.Name); Keyword existingKeyword = dataContext.Keywords.Find(keyword.Id); if (existingKeyword == null) throw new ArgumentOutOfRangeException("keyword.Id", "Id must exist in the Keywords-table."); existingKeyword = keyword; dataContext.SaveChanges(); }