Esempio n. 1
0
        public static Casa ToCasa(this CasaForm casaForm)
        {
            Casa casa = new Casa();

            casa.Nome     = casaForm.Nome;
            casa.Endereco = casaForm.Endereco;

            return(casa);
        }
        public ActionResult <CasaResponse> UpdateCasa([FromBody] CasaForm casaForm, string id)
        {
            var casa = _casaRepository.GetCasa(id);

            if (casa != null)
            {
                if (casa.UsuarioEmail != User.Identity.Name)
                {
                    return(BadRequest("Só é possível editar uma casa que você criou."));
                }

                var casaUpdate = casaForm.ToCasa();
                casaUpdate.Id = id;
                _casaRepository.Update(casaUpdate);
                var eventosUri = Url.Action("GetEventos", new{ id = casaUpdate.Id });
                return(casaUpdate.ToCasaResponse(eventosUri));
            }
            return(NotFound("Casa não encontrada."));
        }
        public IActionResult PostCasa([FromBody] CasaForm casaForm)
        {
            if (ModelState.IsValid)
            {
                Casa casa = casaForm.ToCasa();
                casa.UsuarioEmail = User.Identity.Name;

                try{
                    _casaRepository.Add(casa);
                } catch (Exception e) {
                    return(StatusCode(500, "Erro ao conectar com o banco. " + e.Message));
                }

                var uri        = Url.Action("GetCasa", new { id = casa.Id });
                var eventosUri = Url.Action("GetEventos", new { id = casa.Id });
                return(Created(uri, casa.ToCasaResponse(eventosUri)));
            }

            return(BadRequest("Requisição inválida."));
        }