public Models.Response.GenerosResponse ParaResponse(Models.TbGeneroEbook tb)
 {
     return(new Models.Response.GenerosResponse()
     {
         id = tb.IdGenero,
         genero = tb.IdGeneroNavigation.NmGenero
     });
 }
        public async Task <Models.TbEbook> CadastrarEbook(Models.TbEbook tb, Models.TbGeneroEbook generoPrincipal, List <Models.TbGeneroEbook> generos)
        {
            tb.TbGeneroEbook.Add(generoPrincipal);
            foreach (Models.TbGeneroEbook generoEbook in generos)
            {
                tb.TbGeneroEbook.Add(generoEbook);
            }

            await ctx.TbEbook.AddAsync(tb);

            await ctx.SaveChangesAsync();

            return(tb);
        }
        public async Task <Models.TbEbook> CadastrarEbook(Models.TbEbook tb, Models.TbGeneroEbook generoPrincipal, List <Models.TbGeneroEbook> generos)
        {
            if (tb.IdAutor <= 0)
            {
                throw new ArgumentException("ID inválido");
            }
            if (String.IsNullOrEmpty(tb.NmEbook))
            {
                throw new ArgumentException("Nome do ebook inválido");
            }
            if (String.IsNullOrEmpty(tb.DsEbook))
            {
                throw new ArgumentException("Sinopse inválida");
            }
            if (String.IsNullOrEmpty(tb.DsImg))
            {
                throw new ArgumentException("Imagem inválida");
            }
            if (tb.VlEbook <= 0)
            {
                throw new ArgumentException("Valor inválido");
            }
            if (tb.QtPaginas <= 0)
            {
                throw new ArgumentException("Quantidade de páginas inválida");
            }
            if (String.IsNullOrEmpty(tb.NmEditora))
            {
                throw new ArgumentException("Nome da editora inválido");
            }
            if (String.IsNullOrEmpty(tb.DsEdicao))
            {
                throw new ArgumentException("Nome da edição inválido");
            }
            if (String.IsNullOrEmpty(tb.DsCodBarra))
            {
                throw new ArgumentException("Código de barra inválido");
            }
            if (String.IsNullOrEmpty(tb.DsIsbn))
            {
                throw new ArgumentException("Código ISBN inválido");
            }
            if (String.IsNullOrEmpty(tb.NmLingua))
            {
                throw new ArgumentException("Nome da língua inválido");
            }
            if (String.IsNullOrEmpty(tb.NmLinguaOriginal))
            {
                throw new ArgumentException("Nome da língua original inválido");
            }
            if (tb.DtInsercao == DateTime.MinValue || tb.DtInsercao == DateTime.Now)
            {
                throw new ArgumentException("Data inválida");
            }
            if (generoPrincipal.IdGenero <= 0)
            {
                throw new ArgumentException("É necessário ter um gênero principal");
            }
            if (generos != null)
            {
                foreach (Models.TbGeneroEbook genero in generos)
                {
                    if (genero.IdGenero <= 0)
                    {
                        throw new ArgumentException("Gênero inválido");
                    }
                }
            }

            return(await db.CadastrarEbook(tb, generoPrincipal, generos));
        }