コード例 #1
0
        public async Task <IActionResult> Create(Livro livro, int[] categoriasID, IFormFile imagem)
        {
            if (!ModelState.IsValid)
            {
                return(View(new LivroViewModel {
                    Livro = livro, Categorias = await _categoriaServico.GetAllAsync()
                }));
            }

            if (categoriasID.Length == 0)
            {
                TempData["CustomError"] = "Informe pelo menos uma categoria!";
                ModelState.AddModelError(string.Empty, TempData["CustomError"].ToString());
                ModelState.AddModelError("livro.LivrosCategorias", "Informe pelo menos uma categoria!");
                return(View(new LivroViewModel {
                    Livro = livro, Categorias = await _categoriaServico.GetAllAsync()
                }));
            }
            if (imagem != null)
            {
                if (imagem.ContentType != "image/jpeg")
                {
                    TempData["CustomError"] = "O arquivo informado é inválido!";
                    ModelState.AddModelError(string.Empty, TempData["CustomError"].ToString());
                    return(View(new LivroViewModel {
                        Livro = livro, Categorias = await _categoriaServico.GetAllAsync()
                    }));
                }
            }
            await VerificarCadastroAutor(livro);

            ConfigurarImagem(livro, imagem);
            await _livroServico.AddAsync(livro);

            await CadastarCategorias((await _livroServico.LastAsync()).ID, categoriasID);

            TempData["Concluido"] = "Livro Cadastrado!";
            return(RedirectToAction(nameof(Index)));
        }