public async Task <IActionResult> PutProductBook(string id, ProductBookDAO productBookDao) { var product = new Product(); product.Title = productBookDao.Title; product.Price = productBookDao.Price; product.ReleaseYear = productBookDao.ReleaseYear; product.Language = productBookDao.Language; product.Type = ProductType.Book; product.FilePath = productBookDao.FilePath; product.PreviewFilePath = productBookDao.PreviewFilePath; var productBook = new ProductBook(); var bookSubject = new ProductBookSubject(); productBook.Subject = bookSubject; productBook.Author = productBookDao.Author; productBook.Publisher = productBookDao.Publisher; productBook.Product = product; productBook.Code = productBookDao.Code; ChangeLog.AddCreatedLog(_context, "Books", productBook); if (id != productBookDao.Code) { return(BadRequest()); } if (id != productBook.Code) { return(BadRequest()); } _context.Entry(productBook).State = EntityState.Modified; try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!ProductBookExists(id)) { return(NotFound()); } else { throw; } } return(NoContent()); }
public async Task <ActionResult <ProductBook> > PostProductBook(ProductBookDAO productBookDao) { var product = new Product(); product.Title = productBookDao.Title; product.Price = productBookDao.Price; product.ReleaseYear = productBookDao.ReleaseYear; product.Language = productBookDao.Language; product.Type = ProductType.Book; product.FilePath = productBookDao.FilePath; product.PreviewFilePath = productBookDao.PreviewFilePath; _context.Products.Add(product); var book = new ProductBook(); var bookSubject = new ProductBookSubject(); book.Author = productBookDao.Author; book.Publisher = productBookDao.Publisher; var booksConsecutive = _context.TableConsecutives.Single(tableConsecutive => tableConsecutive.Table == "Libros"); book.Code = booksConsecutive.GetCurrentCode(); book.Product = product; try { bookSubject = _context.ProductBookSubjects.Single(bookSubject => bookSubject.Id == productBookDao.SubjectId); } catch { bookSubject = null; } book.Subject = bookSubject; _context.ProductBooks.Add(book); ChangeLog.AddCreatedLog(_context, "Books", book); try { await _context.SaveChangesAsync(); } catch (DbUpdateException) { if (ProductExists(product.Id)) { return(Conflict()); } else if (ProductBookExists(book.Code)) { return(Conflict()); } else { throw; } } return(CreatedAtAction("GetProductBook", new { id = book.Code }, book)); }