Ejemplo n.º 1
0
        public List <BookViewModel> GetBooks()
        {
            var books  = _knihaServiceRepository.GetAll();
            var prints = _vytlacokServiceRepository.GetAll();
            var errors = _errorServiceRepository.GerAllErrors();

            if (prints == null || books == null)
            {
                return(null);
            }

            var result = new List <BookViewModel>();

            var errorsOnBook = new[] { "Author", "Genre", "Isbn", "YearOfPublication", "Description" };

            foreach (var copy in prints)
            {
                var book = books.FirstOrDefault(b => b.id == copy.kniha_id);

                var printsForSameBook = prints.Where(pr => pr.id != copy.id && pr.kniha_id == copy.kniha_id).Select(pr => pr.id);

                var actErrors = errors.Where(er => (er.vytlacok_id == copy.id || (printsForSameBook.Contains(er.vytlacok_id) && errorsOnBook.Contains(er.name))) && !er.vyhodnotena).ToList();

                result.Add(_bookViewModelFactory.CreateBookViewModel(book, copy, actErrors));
            }

            return(result);
        }
Ejemplo n.º 2
0
        public List <ErrorViewModel> GetErrors()
        {
            var result = new List <ErrorViewModel>();

            var errors = _errorServiceRepository.GerAllErrors().Where(er => !er.vyhodnotena).ToList();

            var groupedErrors = errors.GroupBy(er => er.vytlacok_id);

            foreach (var groupedError in groupedErrors)
            {
                var copy = _vytlacokServiceRepository.GetById(groupedError.Key);
                var book = _knihaServiceRepository.GetById(copy.kniha_id);

                result.Add(_errorViewModelFactory.CreatErrorViewModel(copy.name, book.ISBN, book.rokVydania, groupedError.ToList()));
            }

            return(result);
        }