public void CreateBookDtoForBook() { IBook book = NetworkModel.Factory.CreateObject <IBook>(); book.Id = 1; book.Title = "Firstname"; Shared.Logic.WebModel.IBook bookDto = Mapper.MapEntities <IBook, Logic.WebModel.IBook>(book); Assert.NotNull(bookDto); Assert.Equal(book.Id, bookDto.Id); Assert.Equal(book.Title, bookDto.Title); }
public Shared.Logic.WebModel.IBook AddBook(Shared.Logic.WebModel.IBook book) { if (book == null) { return(null); } IBook dataBook = Mapper.MapEntities <Shared.Logic.WebModel.IBook, IBook>(book); if (_dataContext is null || dataBook is null) { return(null); } lock (_authorsLock) lock (_booksLock) { if (_dataContext.Books.Select(b => b.Id).Contains(book.Id)) { return(book); } for (int i = 0; i < dataBook.Authors.Count; ++i) { Data.Entities.IAuthor original = _dataContext.Authors.FirstOrDefault(b => b.Id == dataBook.Authors[i].Id); if (original != null) { dataBook.Authors[i] = original; } } foreach (IAuthor author in dataBook.Authors.Where(b => !_dataContext.Authors.Select(a => a.Id).Contains(b.Id))) { _dataContext.AddAuthor(author); } _dataContext.AddBook(dataBook); } return(book); }