public JsonResult ReprovarSolicitacao(string id)
        {
            try
            {
                int          valor   = int.Parse(id);
                Solicitantes retorno = new Solicitantes();
                var          task    = Task.Run(async() => {
                    using (BaseController <Solicitantes> bUsuario = new BaseController <Solicitantes>())
                    {
                        var valorRetorno = await bUsuario.PostWithToken("", "Solicitacao/ReprovarSolicitacao?IdSolicitacao=" + valor, await GetToken());
                        retorno          = valorRetorno.Data;
                    }
                });
                task.Wait();

                return(Json(retorno, JsonRequestBehavior.AllowGet));
            }
            catch (Exception e)
            {
                ResponseViewModel <EnderecoEstacionamento> responseViewModel = new ResponseViewModel <EnderecoEstacionamento>
                {
                    Data        = null,
                    Mensagem    = "There was an error processing your request." + e.Message,
                    Serializado = true,
                    Sucesso     = false
                };
                return(Json(responseViewModel, JsonRequestBehavior.AllowGet));
            }
        }
Exemple #2
0
        public async Task <ResponseViewModel <List <Solicitantes> > > GetSolicitacoesEmAberto(string idUsuario)
        {
            try
            {
                int valor = int.Parse(idUsuario);
                List <Solicitantes> solicitacao = new List <Solicitantes>();
                solicitacao = await db.Solicitacoes.Include("Cliente").Include("Estacionamento").Include("Estacionamento.Proprietario")
                              .Where(x => x.Estacionamento.IdPessoa.Equals(valor) && x.Status.Equals(2))
                              .Select(cl => new Solicitantes
                {
                    InsereAlerta  = !cl.Estacionamento.TemEstacionamento,
                    Nickname      = cl.Estacionamento.Proprietario.Nome,
                    NomeCliente   = cl.Cliente.Nome,
                    IdCliente     = cl.IdCliente,
                    IdSolicitacao = cl.Id,
                    Status        = cl.Status,
                    PeriodoDe     = null,
                    PeriodoAte    = null
                }).ToListAsync();

                foreach (var item in solicitacao)
                {
                    Carro carro = CarroCliente(item.IdCliente);
                    item.Carro      = carro.Modelo;
                    item.PlacaCarro = carro.Placa;
                }

                if (solicitacao.Count == 0)
                {
                    Estacionamento estacionamento = db.Estacionamentos.Include("Proprietario").FirstOrDefault(x => x.IdPessoa == valor);
                    Solicitantes   solicitantes   = new Solicitantes
                    {
                        InsereAlerta = !estacionamento.TemEstacionamento,
                        Nickname     = estacionamento.Proprietario.Nome
                    };
                    solicitacao.Add(solicitantes);
                }

                ResponseViewModel <List <Solicitantes> > response = new ResponseViewModel <List <Solicitantes> >
                {
                    Data        = solicitacao,
                    Mensagem    = "Dados retornados com sucesso!",
                    Serializado = true,
                    Sucesso     = true
                };

                return(response);
            }
            catch (Exception e)
            {
                return(new ResponseViewModel <List <Solicitantes> >()
                {
                    Data = null,
                    Serializado = true,
                    Sucesso = false,
                    Mensagem = "Não foi possivel atender a sua solicitação: " + e.Message
                });
            }
        }
Exemple #3
0
        public async Task <ResponseViewModel <Solicitantes> > AprovarSolicitacao(int IdSolicitacao)
        {
            try
            {
                Solicitacao solicitacao = db.Solicitacoes.Include("Estacionamento").Include("Estacionamento.Proprietario").FirstOrDefault(x => x.Id == IdSolicitacao);

                solicitacao.Status      = 0;
                solicitacao.DataEntrada = DateTime.Now;

                db.Entry <Solicitacao>(solicitacao).State = EntityState.Modified;
                db.SaveChanges();

                Solicitantes solicitantes = new Solicitantes
                {
                    Nickname     = solicitacao.Estacionamento.Proprietario.Nome,
                    InsereAlerta = !solicitacao.Estacionamento.TemEstacionamento
                };

                ResponseViewModel <Solicitantes> response = new ResponseViewModel <Solicitantes>
                {
                    Data        = solicitantes,
                    Mensagem    = "Dados retornados com sucesso!",
                    Serializado = true,
                    Sucesso     = true
                };

                return(response);
            }
            catch (Exception e)
            {
                return(new ResponseViewModel <Solicitantes>()
                {
                    Data = null,
                    Serializado = true,
                    Sucesso = false,
                    Mensagem = "Não foi possivel atender a sua solicitação: " + e.Message
                });
            }
        }
Exemple #4
0
        public async Task <ResponseViewModel <Solicitantes> > FinalizarSolicitacao(int IdSolicitacao)
        {
            try
            {
                Solicitacao solicitacao = db.Solicitacoes.Include("Cliente").Include("Estacionamento").Include("Estacionamento.Proprietario").FirstOrDefault(x => x.Id == IdSolicitacao);
                Cliente     cliente     = solicitacao.Cliente;

                string tempo = "";
                solicitacao.Status    = 1;
                solicitacao.DataSaida = DateTime.Now;
                var diferenca     = (Convert.ToDateTime(solicitacao.DataSaida) - Convert.ToDateTime(solicitacao.DataEntrada));
                var minutosTotais = Convert.ToInt32((int)diferenca.TotalMinutes);
                var valorMinuto   = solicitacao.Estacionamento.ValorHora / 60.0;
                solicitacao.ValorTotal = valorMinuto * minutosTotais;
                solicitacao.ValorTotalEstacionamento = valorMinuto * minutosTotais * 0.9;
                solicitacao.ValorGanho = valorMinuto * minutosTotais * 0.1;
                cliente.Saldo         -= solicitacao.ValorTotal;

                db.Entry <Cliente>(cliente).State = EntityState.Modified;
                db.SaveChanges();

                var dias     = diferenca.Days;
                var horas    = diferenca.Hours;
                var minutos  = diferenca.Minutes;
                var segundos = diferenca.Seconds;
                if (dias > 0)
                {
                    tempo = dias + " dia(s), ";
                }
                if (horas > 0)
                {
                    tempo += horas + " hora(s), ";
                }

                tempo += minutos + " minuto(s) e " + segundos + " segundo(s)";
                solicitacao.TempoEstacionamento = tempo;

                db.Entry <Solicitacao>(solicitacao).State = EntityState.Modified;
                db.SaveChanges();

                Solicitantes solicitantes = new Solicitantes
                {
                    Nickname     = solicitacao.Estacionamento.Proprietario.Nome,
                    InsereAlerta = !solicitacao.Estacionamento.TemEstacionamento
                };

                ResponseViewModel <Solicitantes> response = new ResponseViewModel <Solicitantes>
                {
                    Data        = solicitantes,
                    Mensagem    = "Dados retornados com sucesso!",
                    Serializado = true,
                    Sucesso     = true
                };

                return(response);
            }
            catch (Exception e)
            {
                return(new ResponseViewModel <Solicitantes>()
                {
                    Data = null,
                    Serializado = true,
                    Sucesso = false,
                    Mensagem = "Não foi possivel atender a sua solicitação: " + e.Message
                });
            }
        }