/// <summary> /// удаление карты /// </summary> /// <param name="id">ид карты</param> /// <returns></returns> public async Task DeleteCard(long id) { using (var db = new DeckContext()) { var exist = await db.Cards.FindAsync(id); if (exist != null) { var decks = db.Decks.ToList(); foreach (var deck in decks) { var cardsIds = new JsonSerializer().Deserialize <List <long> > (new JsonTextReader (new StringReader(deck.CardsIds))); if (cardsIds.Contains(exist.Id)) { cardsIds.Remove(exist.Id); deck.CardsIds = cardsIds.SerializeToJson(); } } db.Cards.Remove(exist); await db.SaveChangesAsync(); } } }