public async Task <int> Invoke(DeleteDeckParams param) { try { var deck = deckRepository.FindById(param.deckId); fileRepository.Delete(deck.Deck.Icon); foreach (FullCardModel c in deck.Deck.Cards) { fileRepository.Delete(c.Answer.Id); fileRepository.Delete(c.Question.Id); } ; deckRepository.Delete(param.deckId); deckRepository.Save(); return(0); }catch (Exception e) { return(1); } }
public async Task <int> Invoke(UpdateDeckParams param) { var oldDeck = deckRepository.FindStaticById(param.NewDeck.Deck_Id); try { var mappedOldCards = oldDeck.Cards; var newDeck = param.NewDeck; if (oldDeck.Icon != newDeck.Icon) { var fileMD5 = _authUtils.GetMd5HashString(newDeck.Icon.ToString()); var filePath = _authUtils.GetFilePathFromMD5(fileMD5); _fileRepository.Insert(new File { File_Id = newDeck.Icon, Md5 = fileMD5, Path = filePath, Size = 0, Type = "", }); } //update entries oldDeck.Category_Name = newDeck.Category_Name; oldDeck.Icon = newDeck.Icon; oldDeck.Title = newDeck.Title; oldDeck.Description = newDeck.Description; oldDeck.Is_Private = newDeck.Is_Private; oldDeck.Available_Quick_Train = newDeck.Available_Quick_Train; oldDeck.LastUpdate = DateTime.Now; var cardsToAdd = SortCardsToAdd(mappedOldCards, param.NewDeck.Cards); var cardsToDelete = SortCardsToDelete(mappedOldCards, param.NewDeck.Cards); var cardsToUpdate = SortCardsToUpdate(mappedOldCards, param.NewDeck.Cards); if (cardsToAdd.Count != 0) { foreach (Card card in cardsToAdd) { card.Parent_Deck_Id = param.NewDeck.Deck_Id; } await cardRepository.InsertAsync(cardsToAdd); } if (cardsToDelete.Count != 0) { cardRepository.Delete(cardsToDelete); foreach (Card card in cardsToDelete) { oldDeck.Cards.Remove(card); } } if (cardsToUpdate.Count != 0) { foreach (Card card in cardsToUpdate) { card.Parent_Deck_Id = newDeck.Deck_Id; } await cardRepository.UpdateAsync(cardsToUpdate); } deckRepository.Save(); return(0); } catch (Exception e) { deckRepository.Delete(param.NewDeck.Deck_Id); await deckRepository.Insert(deckRepository.FindStaticById(param.NewDeck.Deck_Id)); deckRepository.Save(); return(1); } }