Exemple #1
0
        public async Task <ActionResult <Models.Response.EbookResponse> > CadastrarEbook([FromForm] Models.Request.EbookRequest req)
        {
            try
            {
                List <Models.TbGeneroEbook> generoEbook = new List <Models.TbGeneroEbook>();

                if (req.outrosGeneros.Count != 0)
                {
                    foreach (int item in req.outrosGeneros)
                    {
                        generoEbook.Add(new Models.TbGeneroEbook()
                        {
                            IdGenero = item
                        });
                    }
                }

                Models.TbEbook ebook = await business.CadastrarEbook(
                    conversor.ParaTabela(req),
                    new Models.TbGeneroEbook()
                {
                    IdGenero = req.generoPrincipal
                },
                    generoEbook);

                ebook.DsImg = gerenciadorImagem.GerarNovoNome(req.img.FileName);
                gerenciadorImagem.SalvarFoto(ebook.DsImg, req.img);

                return(conversor.ParaResponse(ebook));
            }
            catch (Exception ex)
            {
                return(BadRequest(new Models.Response.ErroResponse(ex, 400)));
            }
        }
        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 Models.TbEbook ParaTabela(Models.Request.EbookRequest req)
        {
            Models.TbEbook ebook = new Models.TbEbook();

            ebook.NmEbook          = req.nome;
            ebook.IdAutor          = req.autor;
            ebook.DsEbook          = req.sinopse;
            ebook.VlEbook          = req.valor;
            ebook.QtPaginas        = req.qtPaginas;
            ebook.NmEditora        = req.editora;
            ebook.DsEdicao         = req.edicao;
            ebook.NmLingua         = req.lingua;
            ebook.NmLinguaOriginal = req.linguaOriginal;

            return(ebook);
        }
 public Models.Response.EbookResponse ParaResponse(Models.TbEbook tb)
 {
     return(new Models.Response.EbookResponse()
     {
         id = tb.IdEbook,
         nome = tb.NmEbook,
         autor = tb.IdAutorNavigation.NmAutor,
         ebook = tb.DsImg,
         sinopse = tb.DsEbook,
         valor = tb.VlEbook,
         qtPaginas = tb.QtPaginas,
         editora = tb.NmEditora,
         edicao = tb.NmEditora,
         isbn = tb.DsIsbn,
         lingua = tb.NmLingua,
         linguaOriginal = tb.NmLinguaOriginal
     });
 }
        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));
        }