public async Task <GetBookListForEditOutput> GetForEdit(NullableIdDto <long> input) { var output = new GetBookListForEditOutput(); BookListEditDto editDto; var allBooks = (await _bookManager.GetAll()).MapTo <List <BookSelectListDto> >(); if (input.Id.HasValue) { var entity = await _entityRepository.GetAsync(input.Id.Value); editDto = entity.MapTo <BookListEditDto>(); var bookIds = (await _bookListAndBookRelationshipManager.GetByBookListId(entity.Id)) .Select(o => o.BookId) .ToList(); foreach (var book in allBooks) { if (bookIds.Exists(o => o == book.Id)) { book.IsSelected = true; } } } else { editDto = new BookListEditDto(); } output.BookList = editDto; output.Books = allBooks; return(output); }
public async Task <GetBookListForEditOutput> GetForEdit(NullableIdDto <long> input) { var output = new GetBookListForEditOutput(); BookListEditDto editDto; List <long> allSelectedBookIds = null; var allBooks = ObjectMapper .Map <List <BookSelectedListDto> >((await _bookRepository.GetAllListAsync())); if (input.Id.HasValue) { var entity = await _bookListRepository.GetAsync(input.Id.Value); editDto = ObjectMapper.Map <BookListEditDto>(entity); allSelectedBookIds = (await _bookListManager.GetBookTagsByBookId(editDto.Id)).Select(b => b.BookId).ToList(); if (allSelectedBookIds.Count > 0) { foreach (var book in allBooks) { if (allSelectedBookIds.Any(b => b == book.Id)) { book.IsSelected = true; } } } } else { editDto = new BookListEditDto(); } output.BookList = editDto; output.Books = allBooks; return(output); }