public async Task <IActionResult> Edit(BookPostModel model)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    var book = Mapper.Map <Book>(model);
                    var _id  = 0;
                    if (book.Id == 0)
                    {
                        var _book = await BookService.CreateAsync(book);

                        _id = _book.Id;
                    }
                    else
                    {
                        await BookService.UpdateAsync(book);

                        _id = book.Id;
                    }

                    // save image
                    if (model.Image != null || model.Remove)
                    {
                        if (model.Remove)
                        {
                            await BookService.SetImageAsync(_id, null);
                        }
                        else
                        {
                            await BookService.SetImageAsync(_id, model.Image.OpenReadStream());
                        }
                    }

                    return(RedirectToAction("view", "book", new { id = _id, slug = $"Nr. {book.Number} {book.Title}".ToSlug() }));
                }
                catch (Exception ex)
                {
                    ModelState.AddModelError("error", ex.Message);
                }
            }

            var view = new BookEditContainer
            {
                Book = model
            };

            return(View("Edit", view));
        }
        public IActionResult Create()
        {
            var _book = new Book();

            var book = Mapper.Map <BookPostModel>(_book);

            book.Number = null;

            var view = new BookEditContainer
            {
                Book = book
            };

            return(View("Edit", view));
        }
        public async Task <IActionResult> Edit(int id)
        {
            var _book = await BookService.GetByIdAsync(id);

            if (_book == null)
            {
                return(NotFound());
            }

            var book = Mapper.Map <BookPostModel>(_book);

            var view = new BookEditContainer
            {
                Book = book
            };

            return(View("Edit", view));
        }