//[ValidateAntiForgeryToken] public virtual async Task <ResponseViewModel <Carro> > RegistrarCarro(Carro carro) { try { if (ModelState.IsValid) { using (ClientesController clientesController = new ClientesController()) { var retornoCarro = await Cadastrar(carro); var cliente = await clientesController.Detalhes(carro.IdCliente); cliente.Data.TemCarro = true; var retornoCliente = await clientesController.Editar(cliente.Data); var response = new ResponseViewModel <Carro> { Data = retornoCarro.Data, Sucesso = true, Mensagem = "Entidade Cadastrada com sucesso." }; return(response); }; } else { var response = new ResponseViewModel <Carro> { Data = carro, Sucesso = false, Mensagem = "Erro na validação da entidade." }; return(response); } } catch (Exception e) { return(new ResponseViewModel <Carro>() { Data = null, Serializado = true, Sucesso = false, Mensagem = "Não foi possivel atender a sua solicitação: " + e.Message }); } }
public async Task <ResponseViewModel <Usuario> > EditarCliente(DadosCliente editarCliente) { try { DadosGeraisCliente dados = new DadosGeraisCliente(); Task.Run(async() => { DadosGeraisCliente retorno = db.Usuarios.Join(db.Clientes, a => a.IdPessoa, b => b.Id, (a, b) => new { a, b }). Join(db.Enderecos, a2 => a2.b.IdEndereco, eP => eP.Id, (a2, eP) => new { a2, eP }). Select((x) => new DadosGeraisCliente { usuario = x.a2.a, cliente = x.a2.b, endereco = x.eP }).FirstOrDefault(x => x.usuario.Login.Equals(editarCliente.Email)); dados = retorno; }).Wait(); if (dados == null) { throw new Exception("Data not found. please if you're a user, contact me. it's a bug or yout trying to hack me."); } UsuariosController usuariosController = new UsuariosController(); ClientesController estacionamentosController = new ClientesController(); Usuario usuario = dados.usuario; usuario.Nome = editarCliente.Nickname; Endereco endereco = dados.endereco; endereco.Bairro = editarCliente.Bairro; endereco.CEP = editarCliente.CEP; endereco.IdCidade = editarCliente.IdCidade; endereco.IdEstado = editarCliente.IdEstado; endereco.Rua = editarCliente.Rua; endereco.Numero = editarCliente.Numero; endereco.Complemento = editarCliente.Complemento; Task.Run(async() => { db.Entry(dados.usuario).State = EntityState.Detached; db.Entry(dados.endereco).State = EntityState.Detached; db.Entry(usuario).State = EntityState.Modified; db.Entry(endereco).State = EntityState.Modified; await db.SaveChangesAsync(); }).Wait(); ResponseViewModel <Usuario> responseUser = new ResponseViewModel <Usuario> { Mensagem = "Sucessfull registered!", Serializado = true, Sucesso = true, Data = usuario }; return(responseUser); } catch (Exception e) { return(new ResponseViewModel <Usuario>() { Data = null, Serializado = true, Sucesso = false, Mensagem = "Sorry, something went wrong: " + e.Message }); } }
//[ValidateAntiForgeryToken] public virtual async Task <ResponseViewModel <Carro> > RegistrarCarro(Carro carro) { try { if (ModelState.IsValid) { using (ClientesController clientesController = new ClientesController()) { var cliente = await clientesController.Detalhes(carro.IdCliente); if (cliente.Data.TemCarro) { var carroAtual = db.Carros.FirstOrDefault(x => x.IdCliente.Equals(carro.IdCliente)); carroAtual.IdMarca = carro.IdMarca; carroAtual.Modelo = carro.Modelo; carroAtual.Placa = carro.Placa; carroAtual.Porte = carro.Porte; var retornoCarro = await Editar(carroAtual); return(new ResponseViewModel <Carro> { Data = null, Sucesso = true, Serializado = true, Mensagem = "Car successfully updated." }); } else { cliente.Data.TemCarro = true; var retornoCarro = await Cadastrar(carro); var retornoCliente = await clientesController.Editar(cliente.Data); return(new ResponseViewModel <Carro> { Data = null, Sucesso = true, Serializado = true, Mensagem = "Car successfully registered." }); } }; } else { return(new ResponseViewModel <Carro> { Data = carro, Sucesso = false, Mensagem = "Error in entity validation." }); } } catch (Exception e) { return(new ResponseViewModel <Carro>() { Data = null, Serializado = true, Sucesso = false, Mensagem = "We were unable to fulfill your request: " + e.Message }); } }