public static async Task<BookModel> PopulateFullBookInfo(Book book) { if (book == null) return null; using (var authorRepo = new AuthorRepository()) { using (var categoryRepo = new BookCategoryRepository()) { var model = new BookModel(); model.InjectFrom(book); var author = await authorRepo.GetById(book.AuthorId); var coAuthor = book.CoAuthorId != null && book.CoAuthorId > 0 ? await authorRepo.GetById(Convert.ToInt32(book.CoAuthorId)) : null; var category = await categoryRepo.GetById(book.BookCategoryId); if (author != null) model.AuthorName = string.Format("{0} {1}", author.FirstName, author.LastName); if (coAuthor != null) model.CoAuthorName = string.Format("{0} {1}", coAuthor.FirstName, coAuthor.LastName); if (category != null) model.CategoryText = category.Name; return model; } } }
public static async Task<IEnumerable<BookModel>> PopulateFullBookInfo(IEnumerable<Book> source) { if (source == null || !source.Any()) return null; var result = new List<BookModel>(); using (var authorRepo = new AuthorRepository()) { using (var categoryRepo = new BookCategoryRepository()) { foreach (var book in source) { var model = new BookModel(); model.InjectFrom(book); var author = await authorRepo.GetById(book.AuthorId); var coAuthor = book.CoAuthorId != null && book.CoAuthorId > 0 ? await authorRepo.GetById(Convert.ToInt32(book.CoAuthorId)) : null; var category = await categoryRepo.GetById(book.BookCategoryId); if (author != null) model.AuthorName = string.Format("{0} {1}", author.FirstName, author.LastName); if (coAuthor != null) model.CoAuthorName = string.Format("{0} {1}", coAuthor.FirstName, coAuthor.LastName); if (category != null) model.CategoryText = category.Name; result.Add(model); } return result; } } }
public async Task<IHttpActionResult> SaveBook(BookModel bookModel) { if (ModelState.IsValid) { var entity = new Book(); entity.InjectFrom(bookModel); return Ok(await _repository.Save(entity)); } var errors = ModelState.Values.SelectMany(x => x.Errors); return BadRequest(Helper.GenerateModelStateError(errors)); }
public AddBookViewModel() { Populate(); Book = new BookModel {ISBN = Guid.NewGuid().ToString(), Visible = true}; }
public Task<int> SaveBook(BookModel model) { return Save<int, BookModel>(model); }