示例#1
0
        public async Task <BookDto> GetBookByTitle(string bookTitle)
        {
            MethodBase m = MethodBase.GetCurrentMethod();

            Devon4NetLogger.Debug($"{m.ReflectedType.Name} method from service {m.Name}");
            var book = await _bookRepository.GetBookByTitleIfItExist(bookTitle).ConfigureAwait(false);

            if (IsNotBookInTheDdbb(book))
            {
                throw new ArgumentException($"The provided book title {bookTitle} does not exists");
            }
            else
            {
                return(BookConverter.ModelToDto(book));
            }
        }
示例#2
0
 /// <summary>
 /// Loads Book from the database.
 /// </summary>
 /// <param name="Id">Id of the Book to load.</param>
 /// <returns></returns>
 public BookInfo ReadBook(int Id)
 {
     try
     {
         var converter = new BookConverter();
         return(converter.ToInfo(ConnectionInfo.GetContext()
                                 .Books.Where(x => x.Id == Id)
                                 .Select(x => x)
                                 .Single()
                                 ));
     }
     catch (Exception ex)
     {
         ExceptionLogger.Log(ex);
         return(null);
     }
 }
示例#3
0
 public ActionResult Create(BookViewModel book, string prevPageUrl)
 {
     if (ModelState.IsValid)
     {
         _booksRepository.AddElem(BookConverter.ConvertViewModelToModel(book));
         TempData["message"] = $"Книга \"{book.Title}\" успешно добавлена";
         return(RedirectToAction(nameof(HomeController.Index), nameof(HomeController).Replace("Controller", "")));
     }
     else
     {
         return(View(new ActionBooksPagesViewModel
         {
             Book = book,
             Genres = new SelectList(_genresRepository.GetAllGenres(), nameof(Genre.Id), nameof(Genre.Title)),
             PrevPageUrl = prevPageUrl
         }));
     }
 }
示例#4
0
        public IActionResult Index()
        {
            if (!this._middleware.CheckUserPermission(PermissionType.User, HttpContext))
            {
                return(RedirectToAction("Login", "User"));
            }

            BookIndexViewModel bivm = new BookIndexViewModel();

            bivm.Books = new List <BookModel>();

            BookConverter bookConverter = new BookConverter();

            foreach (Book book in this._bookContainer.GetBooksByUserID(this._sessionHandler.GetUserID(HttpContext)))
            {
                bivm.Books.Add(bookConverter.ConvertBookToBookModel(book));
            }

            return(View(bivm));
        }
示例#5
0
        public IActionResult Search(string name)
        {
            if (!this._middleware.CheckUserPermission(PermissionType.None, HttpContext))
            {
                return(RedirectToAction("Login", "User"));
            }

            BookIndexViewModel bivm = new BookIndexViewModel();

            bivm.Books = new List <BookModel>();

            BookConverter bookConverter = new BookConverter();

            foreach (Book book in this._bookContainer.GetBookByName(name))
            {
                bivm.Books.Add(bookConverter.ConvertBookToBookModel(book));
            }

            return(View(bivm));
        }
示例#6
0
 public BooksRepository()
 {
     try
     {
         ConnectionInfo = new EntityConnection();
         BooksViewPoint = new ObservableCollection <BookInfo>();
         using (var DbContext = ConnectionInfo.GetContext())
         {
             var converter = new BookConverter();
             foreach (var Book in DbContext.Books)
             {
                 BooksViewPoint.Add(converter.ToInfo(Book));
             }
         }
     }
     catch (Exception ex)
     {
         ExceptionLogger.Log(ex);
     }
 }
示例#7
0
        public void CanConvertABookBackAndForth()
        {
            var book = new Book()
                           {
                               Authors = "Authors",
                               Id = 42,
                               Title = "Title"
                           };

            book.Formats.Add("This is a format");
            book.Formats.Add("another.format");

            var bookConverter = new BookConverter();
            var coreDoc = bookConverter.ToDocument(new CalibreBookSource(), book);

            var convertedBook = (Book)bookConverter.FromDocumentToItem(coreDoc);
            Assert.Equal(book.Authors, convertedBook.Authors);
            Assert.Equal(book.Title, convertedBook.Title);
            Assert.Equal(book.Id, convertedBook.Id);
            Assert.Equal(book.Formats, convertedBook.Formats);
        }
示例#8
0
        /// <summary>
        ///
        /// </summary>
        /// <returns></returns>
        public async Task <BookDto> Create(BookDto bookDto)
        {
            Devon4NetLogger.Debug($"CreateAuthor method from service AuthorService with value : {bookDto.Title}, {bookDto.Summary}, {bookDto.Genere}");

            if (string.IsNullOrEmpty(bookDto.Title) || string.IsNullOrWhiteSpace(bookDto.Title))
            {
                throw new ArgumentException("The 'Title' field can not be null.");
            }

            if (string.IsNullOrEmpty(bookDto.Summary) || string.IsNullOrWhiteSpace(bookDto.Summary))
            {
                throw new ArgumentException("The 'Summary' field can not be null.");
            }

            if (string.IsNullOrEmpty(bookDto.Genere) || string.IsNullOrWhiteSpace(bookDto.Genere))
            {
                throw new ArgumentException("The 'Genere' field can not be null.");
            }

            return(BookConverter.ModelToDto(await _bookRepository.Create(bookDto).ConfigureAwait(false)));
        }
示例#9
0
        public IActionResult Edit(int id)
        {
            if (!this._middleware.CheckUserPermission(PermissionType.User, HttpContext))
            {
                return(RedirectToAction("Login", "User"));
            }

            SectorConverter sectorConverter = new SectorConverter();

            ViewData["Sectors"] = sectorConverter.ToSectorModelList(this._sectorContainer.GetAll());

            CourseConverter courseConverter = new CourseConverter();

            ViewData["Courses"] = courseConverter.ToCourseModelList(this._courseContainer.GetAll());

            Book book = this._bookContainer.GetBookById(id);

            BookConverter bookConverter = new BookConverter();
            BookModel     bookModel     = bookConverter.ConvertBookToBookModel(book);

            return(View(bookModel));
        }
        public void CanConvertABookBackAndForth()
        {
            var book = new Book()
            {
                Authors = "Authors",
                Id      = 42,
                Title   = "Title"
            };

            book.Formats.Add("This is a format");
            book.Formats.Add("another.format");

            var bookConverter = new BookConverter();
            var coreDoc       = bookConverter.ToDocument(new CalibreBookSource(), book);

            var convertedBook = (Book)bookConverter.FromDocumentToItem(coreDoc);

            Assert.Equal(book.Authors, convertedBook.Authors);
            Assert.Equal(book.Title, convertedBook.Title);
            Assert.Equal(book.Id, convertedBook.Id);
            Assert.Equal(book.Formats, convertedBook.Formats);
        }
示例#11
0
        public async Task <IActionResult> Index(string searchExpr, int?page = 1)
        {
            IEnumerable <Book> books = new List <Book>();
            IndexBookViewModel indexViewModel;

            if (string.IsNullOrEmpty(searchExpr))
            {
                books = await _booksRepository.GetAllBooks();
            }
            else
            {
                books = await _booksRepository.GetBooksByFilter(searchExpr, _genresRepository.GetAllGenres().ToList());
            }
            indexViewModel = new IndexBookViewModel
            {
                Books = _booksRepository.PartBooksForPage(books, page.Value, COUNT_ELEMS_ON_PAGE)
                        .Select(book => BookConverter.ConvertModelToViewModel(book)).ToList(),
                PageViewModel = new PageViewModel(books.Count(), page.Value, COUNT_ELEMS_ON_PAGE),
                SearchExpr    = String.IsNullOrEmpty(searchExpr) ? string.Empty : searchExpr
                                //, ActionName = nameof(this.ShowBooks)
            };
            return(View(indexViewModel));
        }
示例#12
0
 public ActionResult Edit(BookViewModel book, string prevPageUrl)
 {
     if (book.Id <= 0)
     {
         throw new ArgumentException("Book ID is empty or <= 0");
     }
     if (ModelState.IsValid)
     {
         _booksRepository.EditElem(BookConverter.ConvertViewModelToModel(book));
         TempData["message"] = $"Книга \"{book.Title}\" успешно изменена";
         return(RedirectToAction(nameof(HomeController.Index), nameof(HomeController).Replace("Controller", "")));
     }
     else
     {
         return(View(new ActionBooksPagesViewModel
         {
             Book = book,
             Genres = new SelectList(_genresRepository.GetAllGenres(), nameof(Genre.Id), nameof(Genre.Title),
                                     _genresRepository.GetAllGenres().FirstOrDefault(g => g.Id == book.GenreId)),
             PrevPageUrl = prevPageUrl
         }));
     }
 }
示例#13
0
        private async Task <BookDto> CreateBook(BookDto newBook)
        {
            // TODO: Put the correct call
            string mediaType    = MediaType.ApplicationJson;
            string endPoint     = "Books";
            var    httpResponse = await _httpClientHandler.Send(System.Net.Http.HttpMethod.Get, endPoint,
                                                                "/books", null, mediaType, true, false, null);

            var listOfBooks = GetObjectFromHttpResponse <List <BookDto> >(in httpResponse);

            string title   = "";
            string genere  = "";
            string summary = "";

            foreach (BookDto book in listOfBooks)
            {
                title   = book._title;
                genere  = book._genere;
                summary = book._summary;
            }

            return(BookConverter.ModelToDto(await _bookRepository.Create(newBook).ConfigureAwait(false)));
        }
示例#14
0
 public BookBusinessImpl(IRepository <Book> repository)
 {
     _ticketRepository = repository;
     _converter        = new BookConverter();
 }
示例#15
0
 public BooksController(IBookBusiness bookBusiness)
 {
     _bookBusiness = bookBusiness;
     _converter    = new BookConverter();
 }
示例#16
0
        public ActionResult Show(int id)
        {
            var book = BookConverter.ConvertModelToViewModel(_booksRepository.GetElem(id));

            return(View(book));
        }
 private void InitContext()
 {
     _context.Books.InsertMany(TestData.Books.Select(book => BookConverter.ConvertBookToDocument(book)));
 }
 public BookServiceImpl(IRepository <Book> repository)
 {
     this.repository = repository;
     // Build the PersonConventer Instance
     this.converter = new BookConverter();
 }
示例#19
0
 public BookService(IRepository <Book> repository)
 {
     _repository = repository;
     _converter  = new BookConverter();
 }
示例#20
0
 public BookService(IBookRepository repo)
 {
     this.repo      = repo;
     this.converter = new BookConverter();
 }
示例#21
0
 public BookBusinessImplementation(IRepository <Book> repository, MySQLContext context)
 {
     _repository = repository;
     _converter  = new BookConverter();
     _context    = context;
 }
示例#22
0
 public BookBusinessImplementation(IRepository <Book> repository)
 {
     _repository = repository;
     _converter  = new BookConverter();
 }
示例#23
0
        /// <summary>
        /// Get book by title
        /// </summary>
        /// <param name="title"></param>
        /// <returns></returns>
        public async Task <BookDto> GetBookByTitle(string title)
        {
            Devon4NetLogger.Debug($"GetBookByTitle method from service Bookservice with value : {title}");

            return(BookConverter.ModelToDto(await _bookRepository.GetFirstOrDefault(x => x.Title == title).ConfigureAwait(false)));
        }
示例#24
0
 public BookBusinessImpl(IRepository <Book> repository)
 {
     this.repository = repository;
     this.converter  = new BookConverter();
 }
示例#25
0
 public BookBusiness(IRepository <Book> bookRepository)
 {
     _bookRepository = bookRepository;
     _converter      = new BookConverter();
 }
示例#26
0
 public BookBusiness(IRepository <Book> repository)
 {
     _repository    = repository;
     _bookConverter = new BookConverter();
 }
示例#27
0
 public BookBusiness(IRepository <Books> bookBusiness)
 {
     _bookBusiness = bookBusiness;
     _converter    = new BookConverter();
 }
示例#28
0
 public BookBusiness(IRepository <Book> repository, BookConverter converter)
 {
     _repository = repository;
     _converter  = converter;
 }
示例#29
0
 public BookBusinessImpl(IRepository <Book> context)
 {
     _repository = context;
     _converter  = new BookConverter();
 }
 public BookServiceImplementation(IRepository <Book> repository)
 {
     _repository = repository;
     _converter  = new BookConverter();
 }
示例#31
0
 public BookBusiness(IBaseRepository <Book> repo)
 {
     _repo      = repo;
     _converter = new BookConverter();
 }