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);
        }
Exemplo n.º 2
0
        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);
        }