Ejemplo n.º 1
0
 public BookRepository(IUnitOfWork unitOfWork, BookMapper bookMapper,
                       BookStoreDbContext dbContext)
 {
     _unitOfWork = unitOfWork;
     _bookMapper = bookMapper;
     _dbContext  = dbContext;
 }
Ejemplo n.º 2
0
        public void UpdateBook(BookBusinessModel book)
        {
            var mapper = new BookMapper();

            this.uow.Items.Update(mapper.Map(book));
            this.uow.Commit();
        }
Ejemplo n.º 3
0
        public override void PreInitialize()
        {
            // Pages
            Configuration.Authorization.Providers.Add <AbpLearningAuthorizationProvider>();

            // 云书单权限
            Configuration.Authorization.Providers.Add <CloudBookListAuthorizationProvider>();

            // File
            Configuration.Authorization.Providers.Add <FileAuthorizationProvider>();

            // 自定义类型映射
            Configuration.Modules.AbpAutoMapper().Configurators.Add(configuration =>
            {
                BookMapper.CreateMappings(configuration);

                BookListMapper.CreateMappings(configuration);

                RoleMapper.CreateMappings(configuration);

                PermissionMapper.CreateMappings(configuration);

                UserMapper.CreateMappings(configuration);

                OrganizationMapper.CreateMappings(configuration);
            });
        }
Ejemplo n.º 4
0
        public void GivenThatBookIsNull_WhenTryingToMapIt_ThenArgumentNullExceptionIsThrown()
        {
            var urlHelper = CreateUrlHelper(RequestedUri);
            var mapper    = new BookMapper(new MediaTypeMapper());

            var mappedBook = mapper.Map(null, urlHelper);
        }
Ejemplo n.º 5
0
        public List <BookBusinessModel> GetAllBooks()
        {
            var         mapper = new BookMapper();
            List <Book> books  = this.uow.Items.GetAll().OfType <Book>().ToList();

            return(books.Select(mapper.Map).ToList());
        }
Ejemplo n.º 6
0
        public TagScoreMapperTests()
        {
            this.mapper = new TagScoreMapper();

            Fixture fixture = new Fixture{RepeatCount = 1};
            fixture.Behaviors.Remove(new ThrowingRecursionBehavior());
            fixture.Behaviors.Add(new OmitOnRecursionBehavior());
            fixture.Customizations.Add(new TypeRelay(typeof(Item), typeof(Book)));

            Reader reader = fixture.Create<Reader>();
            ReaderMapper readerMapper = new ReaderMapper();
            var readerModel = readerMapper.Map(reader);

            // item is book
            Book book = fixture.Create<Book>();
            this.entityWithBook = new TagScore{Id = 1, Item = book, Reader = reader, Score = 0.5f};
            BookMapper bookMapper = new BookMapper();
            var bookModel = bookMapper.Map(book);
            this.modelWithBook = new TagScoreBusinessModel{Item = bookModel, Reader = readerModel, Score = 0.5f};
            
            // item is disk
            Disk disk = fixture.Create<Disk>();
            this.entityWithDisk = new TagScore { Id = 1, Item = disk, Reader = reader, Score = 0.5f };
            DiskMapper diskMapper = new DiskMapper();
            var diskModel = diskMapper.Map(disk);
            this.modelWithDisk = new TagScoreBusinessModel{Item = diskModel, Reader = readerModel, Score = 0.5f};

            // item is magazine
            Magazine magazine = fixture.Create<Magazine>();
            this.entityWithMagazine = new TagScore { Id = 1, Item = magazine, Reader = reader, Score = 0.5f };
            MagazineMapper magazineMapper = new MagazineMapper();
            var magazineModel = magazineMapper.Map(magazine);
            this.modelWithMagazine =
                new TagScoreBusinessModel { Item = magazineModel, Reader = readerModel, Score = 0.5f };
        }
Ejemplo n.º 7
0
        public void EntityToModelMappingTest()
        {
            var book       = this.fixture.Create <Book>();
            var bookMapper = new BookMapper();
            var bookModel  = bookMapper.Map(book);

            //Assert.AreEqual(book.Id, bookModel.Id, "Id is not correct");
            //Assert.AreEqual(book.Name, bookModel.Name, "Name is not correct");
            //Assert.AreEqual(book.PageCount, bookModel.PageCount, "PageCount is not correct");
            //Assert.AreEqual(book.Publisher, bookModel.Publisher, "Publisher is not correct");
            //Assert.AreEqual(book.Year, bookModel.Year, "Year is not correct");
            //Assert.IsNotNull(bookModel.Authors);
            //Assert.IsNotNull(bookModel.Tags);
            //Assert.IsNotNull(bookModel.Inventories);
            //Assert.IsNotNull(bookModel.ReservedItems);
            PropertyInfo[] bookProperties      = book.GetType().GetProperties().OrderBy(x => x.Name).ToArray();
            PropertyInfo[] bookModelProperties = bookModel.GetType().GetProperties().OrderBy(x => x.Name).ToArray();
            for (int i = 0; i < bookProperties.Length; i++)
            {
                object expectedValue = bookProperties[i].GetValue(book);
                object actualValue   = bookModelProperties[i].GetValue(bookModel);
                if (actualValue is IEnumerable)
                {
                    Assert.IsNotNull(actualValue);
                }
                else
                {
                    Assert.AreEqual(expectedValue, actualValue, bookModelProperties[i].Name + " is not correct");
                }
            }
        }
Ejemplo n.º 8
0
 public void EntityToModelMappingTest()
 {
     var book = this.fixture.Create<Book>();
     var bookMapper = new BookMapper();
     var bookModel = bookMapper.Map(book);
     //Assert.AreEqual(book.Id, bookModel.Id, "Id is not correct");
     //Assert.AreEqual(book.Name, bookModel.Name, "Name is not correct");
     //Assert.AreEqual(book.PageCount, bookModel.PageCount, "PageCount is not correct");
     //Assert.AreEqual(book.Publisher, bookModel.Publisher, "Publisher is not correct");
     //Assert.AreEqual(book.Year, bookModel.Year, "Year is not correct");
     //Assert.IsNotNull(bookModel.Authors);
     //Assert.IsNotNull(bookModel.Tags);
     //Assert.IsNotNull(bookModel.Inventories);
     //Assert.IsNotNull(bookModel.ReservedItems);
     PropertyInfo[] bookProperties = book.GetType().GetProperties().OrderBy(x => x.Name).ToArray();
     PropertyInfo[] bookModelProperties = bookModel.GetType().GetProperties().OrderBy(x => x.Name).ToArray();
     for (int i = 0; i < bookProperties.Length; i++)
     {
         object expectedValue = bookProperties[i].GetValue(book);
         object actualValue = bookModelProperties[i].GetValue(bookModel);
         if (actualValue is IEnumerable)
         {
             Assert.IsNotNull(actualValue);
         }
         else
         {
             Assert.AreEqual(expectedValue, actualValue, bookModelProperties[i].Name + " is not correct");
         }
     }
 }
        public async Task GivenThatOneBookExists_WhenTryingToGetAll_ThenResultContainsCorrectBook()
        {
            var book    = CreateMockedBook(1);
            var service = MockRepository.GenerateMock <IModelService <IBook> >();

            service.Stub(x => x.GetPaginatedAsync(Arg <int> .Is.Anything, Arg <int> .Is.Anything))
            .Return(Task.FromResult((IPagedList <IBook>) new PagedList <IBook>(new List <IBook> {
                book
            }.AsQueryable(), 1, 1)));
            var urlHelper  = CreateUrlHelper("http://localhost/api/books/1");
            var mapper     = new BookMapper(new MediaTypeMapper());
            var controller = new BooksController(service, mapper)
            {
                Configuration = new HttpConfiguration(),
                Request       = new HttpRequestMessage(HttpMethod.Get, new Uri("http://localhost/api/books/1")),
                Url           = urlHelper
            };

            IEnumerable <Book> books;
            var result = await controller.Get();

            result.TryGetContentValue(out books);

            Assert.AreEqual(1, books.Count());
            Assert.AreEqual("http://localhost/api/books/1", books.ElementAt(0).URL);
        }
Ejemplo n.º 10
0
 public Mapper()
 {
     AuthorMapper    = new AuthorMapper();
     BookMapper      = new BookMapper();
     PublisherMapper = new PublisherMapper();
     UserMapper      = new UserMapper();
 }
Ejemplo n.º 11
0
 public BookBusinessModel GetBookById(int id)
 {
     var mapper = new BookMapper();
     var item = this.uow.Items.GetById(id);
     var book = item as Book;
     return mapper.Map(book);
 }
        public async Task GivenThatOneBookExists_WhenTryingToGetAll_ThenResultContainsCorrectBook()
        {
            var book      = CreateMockedBook(1);
            var service   = MockRepository.GenerateMock <IModelService <IBook, BookFilter> >();
            var pagedList = new PagedList <IBook>(new List <IBook> {
                book
            }.AsQueryable(), 1, 1);

            service.Stub(x => x.GetPaginatedAsync(0, 0)).IgnoreArguments()
            .Return(Task.FromResult((IPagedList <IBook>)pagedList));
            var linksFactory = MockRepository.GenerateMock <IPagingLinksFactory <BookFilter> >();

            linksFactory.Stub(x => x.Create(pagedList, null, new BookFilter())).IgnoreArguments().Return(new[] { new Link(new Uri("https://localhost.com")) });
            var mapper     = new BookMapper(new MediaTypeMapper());
            var controller = new BooksController(service, mapper, linksFactory)
            {
                Configuration = new HttpConfiguration(),
                Request       = new HttpRequestMessage(HttpMethod.Get, new Uri("http://localhost.com")),
                Url           = CreateUrlHelper("http://localhost.com")
            };


            IEnumerable <Book> books;
            var result = await controller.Get();

            result.TryGetContentValue(out books);

            Assert.AreEqual(1, books.Count());
        }
Ejemplo n.º 13
0
        public void GivenThatUrlHelperIsNull_WhenTryingToMapBook_ThenArgumentNullExceptionIsThrown()
        {
            var book   = MockRepository.GenerateMock <IBook>();
            var mapper = new BookMapper(new MediaTypeMapper());

            var mappedBook = mapper.Map(book, null);
        }
Ejemplo n.º 14
0
        public void TestInitialize()
        {
            _fixture = new Fixture();

            _authorMapper = new Mock <IAuthorMapper>(MockBehavior.Strict);

            _target = new BookMapper(_authorMapper.Object);
        }
Ejemplo n.º 15
0
        public BookBusinessModel GetBookById(int id)
        {
            var mapper = new BookMapper();
            var item   = this.uow.Items.GetById(id);
            var book   = item as Book;

            return(mapper.Map(book));
        }
 public ActionResult Edit(BookViewModel book)
 {
     if (ModelState.IsValid)
     {
         BookRepository.Update(BookMapper.Map(book));
         return(RedirectToAction("Index"));
     }
     return(View(book));
 }
Ejemplo n.º 17
0
 public void CreateBook(BookBusinessModel book)
 {
     var mapper = new BookMapper();
     var bookNew = mapper.Map(book);
     this.uow.Items.Add(bookNew);
     this.uow.Commit();
    
     book.Id = bookNew.Id; // updates the book.Id to Id value from DB
 }
Ejemplo n.º 18
0
        public void GivenThatBookHasCountry_WhenTryingToMapIt_ThenMappedBookHasSameCountry()
        {
            var book = CreateMockedBook(1);
            var mapper = new BookMapper(new MediaTypeMapper());

            var mappedBook = mapper.Map(book, CreateUrlHelper(RequestedUri));

            Assert.AreEqual(book.Country, mappedBook.Country);
        }
        /*поменяла в int? на int в параметрах*/
        public async Task <ActionResult> Index(int id)
        {
            var genre = GenreMapper.Map(await genresClient.GetGenre(id).ConfigureAwait(false));
            var books = BookMapper.Map(await booksClient.GetWithGenre(id).ConfigureAwait(false));

            var model = new GenrePage(genre, books);

            return(View(model));
        }
Ejemplo n.º 20
0
        public void GivenThatBookHasIdentifier_WhenTryingToMapIt_ThenMappedBookHasUrlWithIdentifierInIt()
        {
            var book = CreateMockedBook(1);
            var mapper = new BookMapper(new MediaTypeMapper());

            var mappedBook = mapper.Map(book, CreateUrlHelper(RequestedUri));

            Assert.AreEqual(RequestedUri, mappedBook.URL);
        }
        public ViewResult Index(int id)
        {
            var cartItems = CartItemMapper.Map(cartItemClient.GetItems(id).Result);
            var bookIds   = cartItems.ConvertAll(item => item.BookId);
            var books     = BookMapper.Map(booksClient.GetBooks(bookIds).Result);
            var model     = BookMapper.Map(books, cartItems);

            return(View(model));
        }
Ejemplo n.º 22
0
        public void GivenThatBookHasName_WhenTryingToMapIt_ThenMappedBookHasSameName()
        {
            var book   = CreateMockedBook(1);
            var mapper = new BookMapper(new MediaTypeMapper());

            var mappedBook = mapper.Map(book, CreateUrlHelper(RequestedUri));

            Assert.AreEqual(book.Name, mappedBook.Name);
        }
Ejemplo n.º 23
0
        public void GivenThatBookHasIdentifier_WhenTryingToMapIt_ThenMappedBookHasUrlWithIdentifierInIt()
        {
            var book   = CreateMockedBook(1);
            var mapper = new BookMapper(new MediaTypeMapper());

            var mappedBook = mapper.Map(book, CreateUrlHelper(RequestedUri));

            Assert.AreEqual(RequestedUri, mappedBook.URL);
        }
Ejemplo n.º 24
0
        public TagScoreMapperTests()
        {
            this.mapper = new TagScoreMapper();

            Fixture fixture = new Fixture {
                RepeatCount = 1
            };

            fixture.Behaviors.Remove(new ThrowingRecursionBehavior());
            fixture.Behaviors.Add(new OmitOnRecursionBehavior());
            fixture.Customizations.Add(new TypeRelay(typeof(Item), typeof(Book)));

            Reader       reader       = fixture.Create <Reader>();
            ReaderMapper readerMapper = new ReaderMapper();
            var          readerModel  = readerMapper.Map(reader);

            // item is book
            Book book = fixture.Create <Book>();

            this.entityWithBook = new TagScore {
                Id = 1, Item = book, Reader = reader, Score = 0.5f
            };
            BookMapper bookMapper = new BookMapper();
            var        bookModel  = bookMapper.Map(book);

            this.modelWithBook = new TagScoreBusinessModel {
                Item = bookModel, Reader = readerModel, Score = 0.5f
            };

            // item is disk
            Disk disk = fixture.Create <Disk>();

            this.entityWithDisk = new TagScore {
                Id = 1, Item = disk, Reader = reader, Score = 0.5f
            };
            DiskMapper diskMapper = new DiskMapper();
            var        diskModel  = diskMapper.Map(disk);

            this.modelWithDisk = new TagScoreBusinessModel {
                Item = diskModel, Reader = readerModel, Score = 0.5f
            };

            // item is magazine
            Magazine magazine = fixture.Create <Magazine>();

            this.entityWithMagazine = new TagScore {
                Id = 1, Item = magazine, Reader = reader, Score = 0.5f
            };
            MagazineMapper magazineMapper = new MagazineMapper();
            var            magazineModel  = magazineMapper.Map(magazine);

            this.modelWithMagazine =
                new TagScoreBusinessModel {
                Item = magazineModel, Reader = readerModel, Score = 0.5f
            };
        }
Ejemplo n.º 25
0
        public void GivenBookMapper_WhenMapToBookDto_ThenReturnListWithBookDto()
        {
            DBAuthors.AuthorDB = FakedataAuthor();
            BookMapper bookMapper = new BookMapper();
            Book       book       = new Book {
                BookTitle = "test", Isbn = "5", AuthorId = "1"
            };

            Assert.IsType <BookDTO>(bookMapper.BooksMapper(book));
        }
Ejemplo n.º 26
0
        public async Task <IEnumerable <Book> > GetReadingList(string listName, string label = null)
        {
            await _board.Lists.Refresh();

            var cardList = string.IsNullOrEmpty(label) ?
                           _board.Lists.FirstOrDefault(l => l.Name.Equals(listName))?.Cards :
                           _board.Lists.FirstOrDefault(l => l.Name.Equals(listName))?.Cards.Where(c => c.Labels.All(l => l.Name.ToLower().Equals(label.ToLower())));

            return(cardList?.Select(card => BookMapper.CreateBook(card.Name, card.Labels.FirstOrDefault()?.Name.ToLower() ?? ReadingListConstants.UnspecifiedLabel)).ToList());
        }
Ejemplo n.º 27
0
        public void CreateBook(BookBusinessModel book)
        {
            var mapper  = new BookMapper();
            var bookNew = mapper.Map(book);

            this.uow.Items.Add(bookNew);
            this.uow.Commit();

            book.Id = bookNew.Id; // updates the book.Id to Id value from DB
        }
Ejemplo n.º 28
0
        public void GivenThatBookHasISBN_WhenTryingToMapIt_ThenMappedBookHasSameISBN()
        {
            var book = CreateMockedBook(1);
            book.Stub(x => x.ISBN).Return("isbn");
            var mapper = new BookMapper(new MediaTypeMapper());

            var mappedBook = mapper.Map(book, CreateUrlHelper(RequestedUri));

            Assert.AreEqual(book.ISBN, mappedBook.ISBN);
        }
Ejemplo n.º 29
0
        public void GivenThatBookHasReleaseDate_WhenTryingToMapIt_ThenMappedBookHasSameReleaseDate()
        {
            var book = CreateMockedBook(1);

            book.Stub(x => x.Released).Return(new DateTime(2000, 1, 1));
            var mapper = new BookMapper(new MediaTypeMapper());

            var mappedBook = mapper.Map(book, CreateUrlHelper(RequestedUri));

            Assert.AreEqual(book.Released, mappedBook.Released);
        }
Ejemplo n.º 30
0
        public async Task <ActionResult> Index()
        {
            var novelties = BookMapper.Map(await booksClient.GetNovelties().ConfigureAwait(false));
            var popular   = BookMapper.Map(await booksClient.GetPopular().ConfigureAwait(false));

            var model = new MainContentModel {
                Novelties = novelties, Popular = popular
            };

            return(View(model));
        }
Ejemplo n.º 31
0
        public void GivenThatBookHasAuthors_WhenTryingToMapIt_ThenMappedBookHasSameAuthors()
        {
            var book = CreateMockedBook(1);
            book.Stub(x => x.Released).Return(new DateTime(2000, 1, 1));
            var mapper = new BookMapper(new MediaTypeMapper());

            var mappedBook = mapper.Map(book, CreateUrlHelper(RequestedUri));

            Assert.AreEqual(book.Authors.Count, mappedBook.Authors.Count());
            Assert.AreEqual(book.Authors.ElementAt(0), mappedBook.Authors.ElementAt(0));
        }
Ejemplo n.º 32
0
        public void GivenThatBookHasISBN_WhenTryingToMapIt_ThenMappedBookHasSameISBN()
        {
            var book = CreateMockedBook(1);

            book.Stub(x => x.ISBN).Return("isbn");
            var mapper = new BookMapper(new MediaTypeMapper());

            var mappedBook = mapper.Map(book, CreateUrlHelper(RequestedUri));

            Assert.AreEqual(book.ISBN, mappedBook.ISBN);
        }
Ejemplo n.º 33
0
        public void GivenThatBookHasMediaType_WhenTryingToMapIt_ThenMappedBookHasSameMediaType()
        {
            var book = CreateMockedBook(1);

            book.Stub(x => x.Released).Return(new DateTime(2000, 1, 1));
            var mapper = new BookMapper(new MediaTypeMapper());

            var mappedBook = mapper.Map(book, CreateUrlHelper(RequestedUri));

            Assert.AreEqual(AnApiOfIceAndFire.Models.v1.MediaType.Hardcover, mappedBook.MediaType);
        }
Ejemplo n.º 34
0
        // [Route("Books")]   localhost:port/Books
        public IActionResult Index()
        {
            List <Book> books = StaticDb.Books;
            List <BookListViewModel> bookListViewModels = new List <BookListViewModel>();

            foreach (Book book in books)
            {
                bookListViewModels.Add(BookMapper.ToBookListViewModel(book));
            }
            return(View(bookListViewModels));
        }
Ejemplo n.º 35
0
        public async Task <Book> Handle(AddBookCommand request, CancellationToken cancellationToken)
        {
            // add to database
            BookEntity entity = await _booksRepository.AddAsync(request.Name, request.Price);

            // map
            Book book = BookMapper.MapToModel(entity);

            // return
            return(book);
        }
Ejemplo n.º 36
0
 public IActionResult Details(int?id)
 {
     if (id != null)
     {
         // if we send id find the book we are looking for
         Book book = StaticDb.Books.FirstOrDefault(x => x.Id == id);
         BookDetailsViewModel bookDetailsViewModel = BookMapper.ToBookDetailsViewModel(book);
         return(View(bookDetailsViewModel));
     }
     return(new EmptyResult());
 }
Ejemplo n.º 37
0
        public void GivenThatBookHasAuthors_WhenTryingToMapIt_ThenMappedBookHasSameAuthors()
        {
            var book = CreateMockedBook(1);

            book.Stub(x => x.Released).Return(new DateTime(2000, 1, 1));
            var mapper = new BookMapper(new MediaTypeMapper());

            var mappedBook = mapper.Map(book, CreateUrlHelper(RequestedUri));

            Assert.AreEqual(book.Authors.Count, mappedBook.Authors.Count());
            Assert.AreEqual(book.Authors.ElementAt(0), mappedBook.Authors.ElementAt(0));
        }
Ejemplo n.º 38
0
        public async Task <Book> Handle(GetBookByIdQuery request, CancellationToken cancellationToken)
        {
            // load from database
            BookEntity entity = await _booksRepository.GetByIdAsync(request.BookId);

            if (entity is null)
            {
                return(null);
            }

            return(BookMapper.MapToModel(entity));
        }
Ejemplo n.º 39
0
        /// <summary>
        /// Gets All books
        /// </summary>
        /// <returns>The BookBusinessModel list</returns>
        public List<BookBusinessModel> GetAllBooks()
        {
            var models = new List<BookBusinessModel>();

            using (LibraryUow uow = new LibraryUow())
            {
                var bookInfoMapper = new BookMapper();
                var books = uow.Items.GetAll().OfType<Book>().ToList();
                books.ForEach(book => models.Add(bookInfoMapper.Map(book)));
            }

            return models;
        }
Ejemplo n.º 40
0
        public void GivenThatBookHasCharacters_WhenTryingToMapIt_ThenMappedBookCharactersContainsCorrectUrls()
        {
            var book = CreateMockedBook(1);
            var character = MockRepository.GenerateMock<ICharacter>();
            character.Stub(x => x.Identifier).Return(10);
            book.Stub(x => x.Characters).Return(new List<ICharacter> { character });
            var mapper = new BookMapper(new MediaTypeMapper());

            var mappedBook = mapper.Map(book, CreateUrlHelper(RequestedUri));

            Assert.AreEqual(1, mappedBook.Characters.Count());
            Assert.AreEqual($"http://localhost/api/characters/{character.Identifier}", mappedBook.Characters.ElementAt(0));
        }
Ejemplo n.º 41
0
 public void ModelToEntityMappingTest()
 {
     
     var bookModel = this.fixture.Create<BookBusinessModel>();
     var bookMapper = new BookMapper();
     var book = bookMapper.Map(bookModel);
     Assert.AreEqual(bookModel.Id, book.Id, "Id is not correct");
     Assert.AreEqual(bookModel.Name, book.Name, "Name is not correct");
     Assert.AreEqual(bookModel.PageCount, book.PageCount, "PageCount is not correct");
     Assert.AreEqual(bookModel.Publisher, book.Publisher, "Publisher is not correct");
     Assert.AreEqual(bookModel.Year, book.Year, "Year is not correct");
     Assert.IsNotNull(book.Authors);
     Assert.IsNotNull(book.Tags);
     Assert.IsNotNull(book.Inventories);
     Assert.IsNotNull(book.ReservedItems);
 }
Ejemplo n.º 42
0
        public ActionResult Edit(int id)
        {
            var item = this.itemManager.GetItemById(id);

            if (item == null)
            {
                return this.HttpNotFound();
            }

            if (item is BookBusinessModel)
            {
                Book book = new BookMapper().Map(item as BookBusinessModel);
                BookWithAuthorsShort bookWithAuthors = new BookWithAuthorsShortMapper().Map(book);
                return this.View("_EditBook", bookWithAuthors);
            }
            else if (item is MagazineBusinessModel)
            {
                return this.View("_EditMagazine", item as MagazineBusinessModel);
            }
            else
            {
                return this.View("_EditDisk", item as DiskBusinessModel);
            }
        }
Ejemplo n.º 43
0
 public List<BookBusinessModel> GetAllBooks()
 {
     var mapper = new BookMapper();
     List<Book> books = this.uow.Items.GetAll().OfType<Book>().ToList();
     return books.Select(mapper.Map).ToList();
 }
Ejemplo n.º 44
0
        //public string GetAllBooksXml()
        //{
        //    var models = new List<BookBusinessModel>();

        //    using (LibraryUow uow = new LibraryUow())
        //    {
        //        var bookInfoMapper = new BookMapper();
        //        var books = uow.Books.GetAll().ToList();
        //        books.ForEach(book => models.Add(bookInfoMapper.Map(book)));
        //    }

        //    List<BookModel> myBooks = models.Select(mod => new BookModel
        //    {
        //        Id = mod.Id,
        //        Name = mod.Name,
        //        Authors = mod.Authors != null ? (mod.Authors.Select(a => new AuthorModel { Id = a.Id, FirstName = a.FirstName, LastName = a.LastName }).ToList()) : null,
        //        Publisher = mod.Publisher,
        //        Year = mod.Year,
        //        PageCount = mod.PageCount
        //    }).ToList();

        //    XmlSerializer myXmlSerializer = new XmlSerializer(typeof(List<BookModel>));
        //    StreamWriter myStreamWriter = new StreamWriter(@"c:\Books.xml");
        //    myXmlSerializer.Serialize(myStreamWriter, myBooks);
        //    myStreamWriter.Close();

        //    string sTemp = "Look for file on folder!!!";

        //    return sTemp;
        //}


        public List<BookBusinessModel> GetBookByName(string searchString)
        {
            var bookModels = new List<BookBusinessModel>();

            string[] words = searchString.Trim().Split(' ');

            using (LibraryUow uow = new LibraryUow())
            {
                var bookInfoMapper = new BookMapper();
                var books = uow.Items.GetAll().OfType<Book>().ToList();

                // Search by BookName
                foreach (var book in books)
                {
                    foreach (string word in words)
                    {
                        if (book.Name.ToLower().Contains(word.ToLower()) || word.ToLower().Contains(book.Name.ToLower()))
                        {
                            var bookToMap = bookInfoMapper.Map(book);

                            // Distinct
                            if (!bookModels.Any(b => b.Id == bookToMap.Id))
                            {
                                bookModels.Add(bookToMap);
                            }
                        }
                    }
                }

                // Search by Authors FirstName or LastName
                foreach (var book in books)
                {
                    foreach (var author in book.Authors)
                    {
                        foreach (string word in words)
                        {
                            if (author.FirstName.ToLower().Contains(word.ToLower()) || word.ToLower().Contains(author.FirstName.ToLower()) ||
                            author.LastName.ToLower().Contains(word.ToLower()) || word.ToLower().Contains(author.LastName.ToLower()))
                            {
                                var bookToMap = bookInfoMapper.Map(book);

                                if (!bookModels.Any(b => b.Id == bookToMap.Id))
                                {
                                    bookModels.Add(bookToMap);
                                }
                            }
                        }
                    }
                }
            }

            return bookModels;
        }
Ejemplo n.º 45
0
        public void GivenThatUrlHelperIsNull_WhenTryingToMapBook_ThenArgumentNullExceptionIsThrown()
        {
            var book = MockRepository.GenerateMock<IBook>();
            var mapper = new BookMapper(new MediaTypeMapper());

            var mappedBook = mapper.Map(book, null);
        }
Ejemplo n.º 46
0
 public void UpdateBook(BookBusinessModel book)
 {
     var mapper = new BookMapper();
     this.uow.Items.Update(mapper.Map(book));
     this.uow.Commit();
 }
        public async Task GivenThatOneBookExists_WhenTryingToGetAll_ThenResultContainsCorrectBook()
        {
            var book = CreateMockedBook(1);
            var service = MockRepository.GenerateMock<IModelService<IBook, BookFilter>>();
            var pagedList = new PagedList<IBook>(new List<IBook> { book }.AsQueryable(), 1, 1);

            service.Stub(x => x.GetPaginatedAsync(0, 0)).IgnoreArguments()
                .Return(Task.FromResult((IPagedList<IBook>)pagedList));
            var linksFactory = MockRepository.GenerateMock<IPagingLinksFactory<BookFilter>>();
            linksFactory.Stub(x => x.Create(pagedList, null, new BookFilter())).IgnoreArguments().Return(new[] { new Link(new Uri("https://localhost.com")) });
            var mapper = new BookMapper(new MediaTypeMapper());
            var controller = new BooksController(service, mapper, linksFactory)
            {
                Configuration = new HttpConfiguration(),
                Request = new HttpRequestMessage(HttpMethod.Get, new Uri("http://localhost.com")),
                Url = Helper.CreateUrlHelper("http://localhost.com")
            };


            IEnumerable<Book> books;
            var result = await controller.Get();
            result.TryGetContentValue(out books);

            Assert.AreEqual(1, books.Count());
        }
Ejemplo n.º 48
0
        public void GivenThatBookHasMediaType_WhenTryingToMapIt_ThenMappedBookHasSameMediaType()
        {
            var book = CreateMockedBook(1);
            book.Stub(x => x.Released).Return(new DateTime(2000, 1, 1));
            var mapper = new BookMapper(new MediaTypeMapper());

            var mappedBook = mapper.Map(book, CreateUrlHelper(RequestedUri));

            Assert.AreEqual(AnApiOfIceAndFire.Models.v0.MediaType.Hardcover, mappedBook.MediaType);
        }
Ejemplo n.º 49
0
        public void GivenThatBookHasReleaseDate_WhenTryingToMapIt_ThenMappedBookHasSameReleaseDate()
        {
            var book = CreateMockedBook(1);
            book.Stub(x => x.Released).Return(new DateTime(2000, 1, 1));
            var mapper = new BookMapper(new MediaTypeMapper());

            var mappedBook = mapper.Map(book, CreateUrlHelper(RequestedUri));

            Assert.AreEqual(book.Released, mappedBook.Released);
        }
        public async Task GivenThatOneBookExists_WhenTryingToGetAll_ThenResultContainsCorrectBook()
        {
            var book = CreateMockedBook(1);
            var service = MockRepository.GenerateMock<IModelService<IBook>>();
            service.Stub(x => x.GetPaginatedAsync(Arg<int>.Is.Anything, Arg<int>.Is.Anything))
                .Return(Task.FromResult((IPagedList<IBook>)new PagedList<IBook>(new List<IBook> { book }.AsQueryable(), 1, 1)));
            var urlHelper = CreateUrlHelper("http://localhost/api/books/1");
            var mapper = new BookMapper(new MediaTypeMapper());
            var controller = new BooksController(service, mapper)
            {
                Configuration = new HttpConfiguration(),
                Request = new HttpRequestMessage(HttpMethod.Get, new Uri("http://localhost/api/books/1")),
                Url = urlHelper
            };

            IEnumerable<Book> books;
            var result = await controller.Get();
            result.TryGetContentValue(out books);

            Assert.AreEqual(1, books.Count());
            Assert.AreEqual("http://localhost/api/books/1", books.ElementAt(0).URL);
        }
Ejemplo n.º 51
0
        public void GivenThatBookHasNumberOfPages_WhenTryingToMapIt_ThenMappedBookHasSameNumberOfPages()
        {
            var book = CreateMockedBook(1);
            var mapper = new BookMapper(new MediaTypeMapper());

            var mappedBook = mapper.Map(book, CreateUrlHelper(RequestedUri));

            Assert.AreEqual(book.NumberOfPages, mappedBook.NumberOfPages);
        }
Ejemplo n.º 52
0
        public ItemBusinessModel GetItemInfoById(int id)
        {
            var item = this.uow.Items.GetById(id);
            ItemBusinessModel itemBusinessModel;
            if (item is Book)
            {
                itemBusinessModel = new BookMapper().Map(item as Book);
            }
            else if (item is Magazine)
            {
                itemBusinessModel = new MagazineMapper().Map(item as Magazine);
            }
            else
            {
                itemBusinessModel = new DiskMapper().Map(item as Disk);
            }

            return itemBusinessModel;
        }
Ejemplo n.º 53
0
        public void GivenThatBookIsNull_WhenTryingToMapIt_ThenArgumentNullExceptionIsThrown()
        {
            var urlHelper = CreateUrlHelper(RequestedUri);
            var mapper = new BookMapper(new MediaTypeMapper());

            var mappedBook = mapper.Map(null, urlHelper);
        }