private void RemoveFromReferential(IPreconstructedDeckCardEdition preconstructedDeckCardEdition) { if (!_preconstructedDeckCards.TryGetValue(preconstructedDeckCardEdition.IdPreconstructedDeck, out IList <IPreconstructedDeckCardEdition> list)) { list.Remove(preconstructedDeckCardEdition); } }
public void InsertOrUpdatePreconstructedDeckCardEdition(int idPreconstructedDeck, int idGatherer, int count) { using (new WriterLock(_lock)) { if (GetPreconstructedDeck(idPreconstructedDeck) == null) { return; } IPreconstructedDeckCardEdition preconstructedDeckCard = GetPreconstructedDeckCard(idPreconstructedDeck, idGatherer); if (preconstructedDeckCard == null) { //Insert new if (count <= 0) { return; } PreconstructedDeckCardEdition newPreconstructedDeckCardEdition = new PreconstructedDeckCardEdition { IdPreconstructedDeck = idPreconstructedDeck, IdGatherer = idGatherer, Number = count }; AddToDbAndUpdateReferential(newPreconstructedDeckCardEdition, InsertInReferential); return; } //Update if (count < 0 || count == preconstructedDeckCard.Number) { return; } if (preconstructedDeckCard is not PreconstructedDeckCardEdition updatePreconstructedDeckCardEdition) { return; } if (count == 0) { RemoveFromDbAndUpdateReferential(updatePreconstructedDeckCardEdition, RemoveFromReferential); return; } updatePreconstructedDeckCardEdition.Number = count; using (IDbConnection cnx = _databaseConnection.GetMagicConnection()) { Mapper <PreconstructedDeckCardEdition> .UpdateOne(cnx, updatePreconstructedDeckCardEdition); } } }
private void InsertInReferential(IPreconstructedDeckCardEdition preconstructedDeckCardEdition) { if (!_preconstructedDeckCards.TryGetValue(preconstructedDeckCardEdition.IdPreconstructedDeck, out IList <IPreconstructedDeckCardEdition> list)) { list = new List <IPreconstructedDeckCardEdition>(); _preconstructedDeckCards.Add(preconstructedDeckCardEdition.IdPreconstructedDeck, list); } if (list.Contains(preconstructedDeckCardEdition)) { throw new Exception("Invalid addition"); } list.Add(preconstructedDeckCardEdition); }