public async Task <ActionResult> Add(AddEbookModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            using (var db = new EbookManagerDbContext())
            {
                var catalogRepository = new CatalogRepository(db);
                var ebook             = new Ebook();
                ebook.Id      = Guid.NewGuid();
                ebook.Summary = model.Summary;
                ebook.Title   = model.Title;

                ebook.Thumbnail = new byte[model.Thumbnail.ContentLength];
                model.Thumbnail.InputStream.Read(ebook.Thumbnail, 0, ebook.Thumbnail.Length);

                try
                {
                    await catalogRepository.AddEbookAsync(ebook);

                    return(RedirectToRoute("editEbook", new { ebookId = ebook.Id }));
                }
                catch (Exception e)
                {
                    ModelState.AddModelError("InsertError", e);
                    return(View(model));
                }
            }
        }