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); }
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); }