public async Task <IActionResult> Cadastrar(IngredienteViewModel ingredienteViewModel) { var configuration = new MapperConfiguration(cfg => { cfg.CreateMap <IngredienteViewModel, IngredienteDTO>(); }); IMapper mapper = configuration.CreateMapper(); IngredienteDTO dto = mapper.Map <IngredienteDTO>(ingredienteViewModel); try { Response response = await _ingredienteService.Insert(dto); if (response.Sucesso) { return(RedirectToAction("Index", "Ingrediente")); } ViewBag.ErrorMessage = response.GetErrorMessage(); return(View()); } catch (Exception ex) { ViewBag.ErrorMessage = ex.Message; return(View()); } }
public async Task <IngredienteDTO> Update(IngredienteDTO ingredienteDTO) { var ingrediente = this.mapper.Map <Ingrediente>(ingredienteDTO); var result = await this.repo.Update(ingrediente); return(this.mapper.Map <IngredienteDTO>(result)); }
public async Task <Response> Insert(IngredienteDTO ingrediente) { Response response = Validate(ingrediente); if (response.Erros.Count > 0) { response.Sucesso = false; return(response); } return(await _ingredienteRepository.Insert(ingrediente)); }
private Response Validate(IngredienteDTO item) { Response response = new Response(); if (string.IsNullOrWhiteSpace(item.Nome)) { response.Erros.Add("Informe o nome."); } else { item.Nome = EXT.NormatizarNome(item.Nome); if (item.Nome.Length < 2 || item.Nome.Length > 50) { response.Erros.Add("O nome deve conter entre 2 e 50 caracteres."); } else if (!EXT.CorrectName(item.Nome)) { response.Erros.Add("O nome está no formato incorreto."); } } return(response); }
public async Task <Response> Insert(IngredienteDTO ingrediente) { Response response = new Response(); if (response.Erros.Count > 0) { response.Sucesso = false; return(response); } try { IngredienteDTO ingredienteJaCadastrado = await _context.Ingredientes.FirstOrDefaultAsync(c => c.Nome.Equals(ingrediente.Nome)); if (ingredienteJaCadastrado != null) { response.Erros.Add("Ingrediente já cadastrado!"); response.Sucesso = false; return(response); } this._context.Ingredientes.Add(ingrediente); await this._context.SaveChangesAsync(); response.Sucesso = true; return(response); } catch (Exception ex) { File.WriteAllText("log.txt", ex.Message + " - " + ex.StackTrace); response.Erros.Add("Erro no banco de dados, contate o administrador."); response.Sucesso = false; return(response); } }
public async Task <bool> Delete(IngredienteDTO ingredienteDTO) { var ingrediente = this.mapper.Map <Ingrediente>(ingredienteDTO); return(await this.repo.Delete(ingrediente.Id)); }