public async Task <ResponseViewModel <ContaDeposito> > GetContaDepositoPorPessoa(int IdPessoa) { try { ContaDeposito entidade = db.ContaDepositos.Include("Estacionamento").Where(x => x.Estacionamento.IdPessoa.Equals(IdPessoa)).FirstOrDefault(); return(new ResponseViewModel <ContaDeposito>() { Data = entidade, Serializado = true, Sucesso = true, Mensagem = "Busca realizada com sucesso" }); } catch (Exception e) { return(new ResponseViewModel <ContaDeposito>() { Data = null, Serializado = true, Sucesso = false, Mensagem = "Não foi possivel atender a sua solicitação: " + e.Message }); } }
public ActionResult MeusDados() { Estacionamento retorno = new Estacionamento(); Usuario usuario = new Usuario(); List <Solicitantes> solicitacoes = new List <Solicitantes>(); List <Solicitantes> solicitacoes2 = new List <Solicitantes>(); ContaDeposito contaDeposito = new ContaDeposito(); var task = Task.Run(async() => { using (BaseController <Estacionamento> bUsuario = new BaseController <Estacionamento>()) { var valorRetorno = await bUsuario.GetObjectAsyncWithToken("Estacionamentos/EstacionamentoPorPessoa?IdPessoa=" + GetIdPessoa(), await GetToken()); retorno = valorRetorno.Data; } using (BaseController <Usuario> bUsuario = new BaseController <Usuario>()) { var valorRetorno = await bUsuario.GetObjectAsyncWithToken("Usuarios/Detalhes/" + GetIdUsuario(), await GetToken()); usuario = valorRetorno.Data; } using (BaseController <List <Solicitantes> > bUsuario = new BaseController <List <Solicitantes> >()) { var valorRetorno = await bUsuario.GetObjectAsyncWithToken("Solicitacao/GetSolicitacoesEmAberto?idUsuario=" + GetIdPessoa(), await GetToken()); solicitacoes = valorRetorno.Data; } using (BaseController <List <Solicitantes> > bUsuario = new BaseController <List <Solicitantes> >()) { var valorRetorno = await bUsuario.GetObjectAsyncWithToken("Solicitacao/GetSolicitacoesParaFinalizar?idUsuario=" + GetIdPessoa(), await GetToken()); solicitacoes2 = valorRetorno.Data; } using (BaseController <ContaDeposito> bUsuario = new BaseController <ContaDeposito>()) { var valorRetorno = await bUsuario.GetObjectAsyncWithToken("Estacionamentos/GetContaDepositoPorPessoa?IdPessoa=" + GetIdPessoa(), await GetToken()); contaDeposito = valorRetorno.Data; } }); task.Wait(); if (null == retorno.EnderecoEstacionamento) { retorno.EnderecoEstacionamento = new Endereco(); } DadosEstacionamento dadosEstacionamento = new DadosEstacionamento { CNPJ = retorno.CNPJ, CPF = retorno.Proprietario.CPF, Email = GetEmail(), InscricaoEstadual = retorno.InscricaoEstadual, Nascimento = retorno.Proprietario.Nascimento, Nickname = usuario.Nome, NomeEstacionamento = retorno.NomeEstacionamento, NomeProprietario = retorno.Proprietario.Nome, RG = retorno.Proprietario.RG, ValorHora = retorno.ValorHora, Agencia = contaDeposito.Agencia, Conta = contaDeposito.Conta, IdBanco = contaDeposito.IdBanco, IdTipoConta = contaDeposito.IdTipoConta, CEPEstacionamento = retorno.EnderecoEstacionamento.CEP, RuaEstacionamento = retorno.EnderecoEstacionamento.Rua, NumeroEstacionamento = retorno.EnderecoEstacionamento.Numero, BairroEstacionamento = retorno.EnderecoEstacionamento.Bairro, ComplementoEstacionamento = retorno.EnderecoEstacionamento.Complemento, IdCidadeEstacionamento = retorno.EnderecoEstacionamento.IdCidade, IdEstadoEstacionamento = retorno.EnderecoEstacionamento.IdEstado, CEP = retorno.Proprietario.EnderecoPessoa.CEP, Bairro = retorno.Proprietario.EnderecoPessoa.Bairro, Complemento = retorno.Proprietario.EnderecoPessoa.Complemento, IdCidade = retorno.Proprietario.EnderecoPessoa.IdCidade, IdEstado = retorno.Proprietario.EnderecoPessoa.IdEstado, Numero = retorno.Proprietario.EnderecoPessoa.Numero, Rua = retorno.Proprietario.EnderecoPessoa.Rua }; ViewBag.InsereAlerta = !retorno.TemEstacionamento; ViewBag.InsereAlerta2 = solicitacoes.Count > 0 && solicitacoes.First().NomeCliente != null ? true : false; ViewBag.InsereAlerta3 = solicitacoes2.Count > 0 && solicitacoes2.First().NomeCliente != null ? true : false; ViewBag.Nickname = retorno.Proprietario.Nome; ViewBag.Cidade = Helpers.GetSelectList("Cidades") as SelectList; ViewBag.Estado = Helpers.GetSelectList("Estados") as SelectList; ViewBag.Banco = Helpers.GetSelectList("Banco", null) as SelectList; ViewBag.TipoConta = Helpers.GetSelectList("TipoConta", null) as SelectList; ViewBag.Level = GetLevel(); ViewBag.Cadastrar = "You need to register an address for your parking. click here."; ViewData["foto"] = usuario.Foto; return(View(dadosEstacionamento)); }
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> > 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 <List <TotalEstacionamentosMensais> > > GetValoresMensais(int mes, int ano) { try { if (mes > 0 && ano > 0) { List <TotalEstacionamentosMensais> totalEstacionamentos = new List <TotalEstacionamentosMensais>(); DateTime primeiroDiaDoMes = new DateTime(ano, mes, 1); DateTime ultimoDiaDoMes = new DateTime(ano, mes, DateTime.DaysInMonth(ano, mes)); List <RecebimentoTotalizador> totais = db.Solicitacoes.Include("Estacionamento"). Where(x => x.Status.Equals(1) && x.DataSaida >= primeiroDiaDoMes && x.DataSaida <= ultimoDiaDoMes) .GroupBy(l => l.IdEstacionamento) .Select(cl => new RecebimentoTotalizador { IdEstacionamento = cl.Key, ValorAPagar = cl.Sum(c => c.ValorTotalEstacionamento) }).ToList(); foreach (var item in totais) { ContaDeposito conta = db.ContaDepositos.Include("Banco").Include("TipoConta").FirstOrDefault(x => x.IdEstacionamento == item.IdEstacionamento); TotalEstacionamentosMensais total = new TotalEstacionamentosMensais(); total.IdEstacionamento = item.IdEstacionamento; total.ValorAPagar = item.ValorAPagar; total.NomeEstacionamento = (db.Estacionamentos.Find(item.IdEstacionamento)).NomeEstacionamento; total.TipoConta = conta != null ? conta.TipoConta.Nome : ""; total.ContaParaPagar = conta != null ? conta.Conta : ""; total.AgenciaParaPagar = conta != null ? conta.Agencia: ""; total.Banco = conta != null ? conta.Banco.Nome : ""; totalEstacionamentos.Add(total); } return(new ResponseViewModel <List <TotalEstacionamentosMensais> > { Data = totalEstacionamentos, Mensagem = "Dados retornados com sucesso!", Serializado = true, Sucesso = true }); } else { return(new ResponseViewModel <List <TotalEstacionamentosMensais> > { Data = null, Mensagem = "Ano e Mês devem ser preenchidos e maiores que 0!", Serializado = true, Sucesso = false }); } } catch (Exception e) { return(new ResponseViewModel <List <TotalEstacionamentosMensais> > { Data = null, Mensagem = "Ocorreu um erro ao processar sua solicitação!" + e.Message, Serializado = true, Sucesso = false }); } }