public async Task <ResponseViewModel <Usuario> > CadastrarFornecedor(CadastroFornecedor cadastroFornecedor) { try { Usuario existente = new Usuario(); Pessoa existente1 = new Pessoa(); Task.Run(async() => { var valor = db.Usuarios.Where(x => x.Login == cadastroFornecedor.Email).FirstOrDefault(); existente = valor; var valor2 = db.Pessoas.Where(x => x.CPF == cadastroFornecedor.CPF).FirstOrDefault(); existente1 = valor2; }).Wait(); if (existente != null) { throw new Exception("Email already in use"); } if (existente1 != null) { throw new Exception("Individual Registration already in use"); } UsuariosController usuariosController = new UsuariosController(); EstacionamentosController estacionamentosController = new EstacionamentosController(); string auxSenha = Helpers.GenerateRandomString(); Usuario usuario = new Usuario { Login = cadastroFornecedor.Email, AuxSenha = auxSenha, Senha = Helpers.CriarSenha(cadastroFornecedor.Senha, auxSenha), Level = 1, Nome = cadastroFornecedor.Nickname ?? "", Foto = cadastroFornecedor.Foto, Pessoa = new Pessoa { Nome = cadastroFornecedor.NomeProprietario, Nascimento = cadastroFornecedor.Nascimento, CPF = cadastroFornecedor.CPF ?? "", RG = cadastroFornecedor.RG ?? "", DataCriacao = DateTime.Now, EnderecoPessoa = new Endereco { Rua = cadastroFornecedor.Rua ?? "", Numero = cadastroFornecedor.Numero, Bairro = cadastroFornecedor.Bairro ?? "", CEP = cadastroFornecedor.CEP ?? "", Complemento = cadastroFornecedor.Complemento ?? "", IdCidade = cadastroFornecedor.IdCidade, IdEstado = cadastroFornecedor.IdEstado } } }; db.Usuarios.Add(usuario); Task.Run(async() => { await db.SaveChangesAsync(); }).Wait(); Estacionamento estacionamento = new Estacionamento { NomeEstacionamento = cadastroFornecedor.NomeEstacionamento ?? "", CNPJ = cadastroFornecedor.CNPJ ?? "", InscricaoEstadual = cadastroFornecedor.InscricaoEstadual ?? "", IdEnderecoEstabelecimento = null, Deletado = false, IdPessoa = usuario.IdPessoa, ValorHora = cadastroFornecedor.Value }; db.Estacionamentos.Add(estacionamento); Task.Run(async() => { await db.SaveChangesAsync(); }).Wait(); ContaDeposito contaDeposito = new ContaDeposito { Agencia = cadastroFornecedor.Agencia, IdBanco = cadastroFornecedor.IdBanco, IdTipoConta = cadastroFornecedor.IdTipoConta, Conta = cadastroFornecedor.Conta, IdEstacionamento = estacionamento.Id }; db.ContaDepositos.Add(contaDeposito); Task.Run(async() => { await db.SaveChangesAsync(); }).Wait(); ResponseViewModel <Usuario> responseUser = new ResponseViewModel <Usuario> { Mensagem = "Registration Successful!", Serializado = true, Sucesso = true, Data = usuario }; return(responseUser); } catch (Exception e) { return(new ResponseViewModel <Usuario>() { Data = null, Serializado = true, Sucesso = false, Mensagem = "We were unable to fulfill your request: " + e.Message }); } }
public async Task <ResponseViewModel <Usuario> > CadastrarCliente(CadastroCliente cadastroCliente) { try { Usuario existente = new Usuario(); Pessoa existente1 = new Pessoa(); Task.Run(async() => { var valor = db.Usuarios.Where(x => x.Login == cadastroCliente.Email).FirstOrDefault(); existente = valor; var valor2 = db.Pessoas.Where(x => x.CPF == cadastroCliente.CPF).FirstOrDefault(); existente1 = valor2; }).Wait(); if (existente != null) { throw new Exception("Email already in use"); } if (existente1 != null) { throw new Exception("Individual Registration already in use"); } UsuariosController usuariosController = new UsuariosController(); string auxSenha = Helpers.GenerateRandomString(); Usuario usuario = new Usuario { Login = cadastroCliente.Email, AuxSenha = auxSenha, Senha = Helpers.CriarSenha(cadastroCliente.Senha, auxSenha), Level = 2, Nome = cadastroCliente.Nickname ?? "", Foto = cadastroCliente.Foto, Pessoa = new Cliente { Nome = cadastroCliente.Nome, Nascimento = cadastroCliente.Nascimento, CPF = cadastroCliente.CPF ?? "", RG = cadastroCliente.RG ?? "", Nickname = cadastroCliente.Nickname, DataCriacao = DateTime.Now, Saldo = 0, Deletado = false, EnderecoPessoa = new Endereco { Rua = cadastroCliente.Rua ?? "", Numero = cadastroCliente.Numero, Bairro = cadastroCliente.Bairro ?? "", CEP = cadastroCliente.CEP ?? "", Complemento = cadastroCliente.Complemento ?? "", IdCidade = cadastroCliente.IdCidade, IdEstado = cadastroCliente.IdEstado } } }; db.Usuarios.Add(usuario); Task.Run(async() => { await db.SaveChangesAsync(); }).Wait(); ResponseViewModel <Usuario> response = new ResponseViewModel <Usuario> { Data = usuario, Sucesso = true, Serializado = true, Mensagem = "Cadastro Realizado com Sucesso!" }; return(response); } catch (Exception e) { return(new ResponseViewModel <Usuario> { Data = null, Sucesso = false, Serializado = true, Mensagem = "We were unable to fulfill your request: " + e.Message }); } }
public async Task <ResponseViewModel <Usuario> > EditarFornecedor(DadosEstacionamento editarFornecedor) { try { DadosGeraisEstacionamento dados = new DadosGeraisEstacionamento(); Task.Run(async() => { DadosGeraisEstacionamento retorno = db.Usuarios.Join(db.Estacionamentos, a => a.IdPessoa, b => b.IdPessoa, (a, b) => new { a, b }). Join(db.Pessoas, a2 => a2.a.IdPessoa, c => c.Id, (a2, c) => new { a2, c }). Join(db.Enderecos, a3 => a3.c.IdEndereco, eP => eP.Id, (a3, eP) => new { a3, eP }). Join(db.ContaDepositos, a4 => a4.a3.a2.b.Id, cD => cD.IdEstacionamento, (a4, cD) => new { a4, cD }). Select((x) => new DadosGeraisEstacionamento { usuario = x.a4.a3.a2.a, enderecoUsuario = x.a4.eP, estacionamento = x.a4.a3.a2.b, pessoa = x.a4.a3.c, contaDeposito = x.cD }).FirstOrDefault(x => x.usuario.Login.Equals(editarFornecedor.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(); EstacionamentosController estacionamentosController = new EstacionamentosController(); Usuario usuario = dados.usuario; usuario.Nome = editarFornecedor.Nickname; Estacionamento estacionamento = dados.estacionamento; estacionamento.InscricaoEstadual = editarFornecedor.InscricaoEstadual; estacionamento.ValorHora = editarFornecedor.ValorHora; Endereco endereco = dados.enderecoUsuario; endereco.Bairro = editarFornecedor.Bairro; endereco.CEP = editarFornecedor.CEP; endereco.IdCidade = editarFornecedor.IdCidade; endereco.IdEstado = editarFornecedor.IdEstado; endereco.Rua = editarFornecedor.Rua; endereco.Numero = editarFornecedor.Numero; endereco.Complemento = editarFornecedor.Complemento; ContaDeposito contaDeposito = dados.contaDeposito; contaDeposito.Agencia = editarFornecedor.Agencia; contaDeposito.IdBanco = editarFornecedor.IdBanco; contaDeposito.IdTipoConta = editarFornecedor.IdTipoConta; contaDeposito.Agencia = editarFornecedor.Agencia; contaDeposito.Conta = editarFornecedor.Conta; Task.Run(async() => { db.Entry(dados.usuario).State = EntityState.Detached; db.Entry(dados.enderecoUsuario).State = EntityState.Detached; db.Entry(dados.estacionamento).State = EntityState.Detached; db.Entry(dados.contaDeposito).State = EntityState.Detached; db.Entry(usuario).State = EntityState.Modified; db.Entry(estacionamento).State = EntityState.Modified; db.Entry(endereco).State = EntityState.Modified; db.Entry(contaDeposito).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 }); } }
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 }); } }