/// <summary> /// Remove um livro. /// </summary> /// <param name="viewModel">ViewModel com as informações do livro.</param> /// <returns></returns> public async Task <bool> DeleteBook(BookViewModel viewModel) { var book = viewModel.AutoMapear <BookViewModel, Book>(); _bookRepository.Delete(book); await Commit(); return(OperationSuccesful); }
/// <summary> /// Cadastra um novo livro. /// </summary> /// <param name="viewModel">ViewModel com as informações do livro.</param> /// <returns></returns> public async Task <BookViewModel> AddBook(BookViewModel viewModel) { #region Validação da regra de negócios if (await _bookRepository.Exists(p => p.Title == viewModel.Title)) { ModelError = string.Format(Criticas.Ja_Cadastrado_0, "Livro"); return(viewModel); } else if (viewModel.CategoriesList.Count == 0) { ModelError = "Nenhum gênero informado para o livro."; return(viewModel); } #endregion var book = viewModel.AutoMapear <BookViewModel, Book>(); //Convertendo a imagem de string para byte[]. book.SetCoverImage(viewModel.CoverImageBase64); _bookRepository.Insert(book); #region Inserindo categorias if (viewModel.CategoriesList.Count > 0) { var bookId = _bookRepository.GetInsertCurrentKey(book, p => p.BookId); foreach (var categoryId in viewModel.CategoriesList) { var bookCategory = new BookCategory(bookId, categoryId); _bookCategoryRepository.Insert(bookCategory); } } #endregion await Commit(); //Recuperando o valor recebido pelo BookId. viewModel.BookId = book.BookId; return(viewModel); }
/// <summary> /// Altera informações de um livro cadastrado. /// </summary> /// <param name="viewModel">ViewModel com as informações do livro.</param> /// <returns></returns> public async Task <BookViewModel> UpdateBook(BookViewModel viewModel) { #region Validação da regra de negócios if (await _bookRepository.Exists(p => p.Title == viewModel.Title && p.BookId != viewModel.BookId)) { ModelError = string.Format(Criticas.Ja_Existe_0, "outro Livro com este título."); return(viewModel); } else if (viewModel.CategoriesList.Count == 0) { ModelError = "Nenhum gênero informado para o livro."; return(viewModel); } #endregion var book = viewModel.AutoMapear <BookViewModel, Book>(); //Convertendo a imagem de string para byte[]. book.SetCoverImage(viewModel.CoverImageBase64); _bookRepository.Update(book); #region Inserindo categorias _bookCategoryRepository.Delete(p => p.BookId == book.BookId); if (viewModel.CategoriesList.Count > 0) { foreach (var categoryId in viewModel.CategoriesList) { var bookCategory = new BookCategory(book.BookId, categoryId); _bookCategoryRepository.Insert(bookCategory); } } #endregion await Commit(); return(viewModel); }