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)); }