// GET: MeusDados
        public ActionResult MeusDados()
        {
            ViewBag.Cidade = Helpers.GetSelectList("Cidades", null) as SelectList;
            ViewBag.Estado = Helpers.GetSelectList("Estados", null) as SelectList;

            Cliente retorno = new Cliente();
            var     task    = Task.Run(async() => {
                using (BaseController <Cliente> bUsuario = new BaseController <Cliente>())
                {
                    var valorRetorno = await bUsuario.GetObjectAsyncWithToken("Clientes/BuscarCliente/" + GetIdPessoa(), await GetToken());
                    retorno          = valorRetorno.Data;
                }
            });

            task.Wait();
            DadosCliente dadosCliente = new DadosCliente {
                Nome        = retorno.Nome,
                Bairro      = retorno.EnderecoPessoa.Bairro,
                CEP         = retorno.EnderecoPessoa.CEP,
                Complemento = retorno.EnderecoPessoa.Complemento,
                CPF         = retorno.CPF,
                Email       = this.GetEmail(),
                IdCidade    = retorno.EnderecoPessoa.IdCidade,
                IdEstado    = retorno.EnderecoPessoa.IdEstado,
                Nascimento  = retorno.Nascimento,
                Nickname    = retorno.Nickname,
                Numero      = retorno.EnderecoPessoa.Numero,
                RG          = retorno.RG,
                Rua         = retorno.EnderecoPessoa.Rua
            };

            ViewBag.Cadastrar     = "Você precisa cadastrar um carro. clique aqui.";
            ViewBag.Nickname      = retorno.Nome;
            ViewBag.InsereAlerta  = !retorno.TemCarro;
            ViewBag.InsereAlerta2 = false;
            ViewBag.InsereAlerta3 = false;
            ViewBag.Level         = 2;

            return(View(dadosCliente));
        }
        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
                });
            }
        }
Ejemplo n.º 3
0
        public void EnviaBoletos()
        {
            ThreadPool.QueueUserWorkItem(x =>
            {
                while (true)
                {
                    try
                    {
                        // Busca os clientes que devem enviar boletos.
                        var clientesEnvioBoleto = this.DbUtils.GetClientesParaEnvio();

                        foreach (var cliente in clientesEnvioBoleto)
                        {
                            // Se o boleto já foi enviado no dia atual, não deve ser enviado novamente.
                            if (cliente.DtHrUltimoEnvio != null && cliente.DtHrUltimoEnvio.Value.Date.Equals(DateTime.Now.Date))
                            {
                                continue;
                            }

                            // Verifica se a data de envio já passou e verifica se o boleto não foi enviado no mês atual.
                            if ((cliente.DiaEnvio <= DateTime.Now.Day) && (cliente.DtHrUltimoEnvio == null || cliente.DtHrUltimoEnvio.Value.Month != DateTime.Now.Month))
                            {
                                // Gera o boleto.
                                using (var cmd = new KingHostCommands())
                                {
                                    var dadosCliente = new DadosCliente()
                                    {
                                        IdCliente = cliente.CodigoCliente
                                    };
                                    var dadosDominio = new DadosDominio()
                                    {
                                        Id = cliente.CodigoDominio
                                    };

                                    var resultBoleto = cmd.CreateNewBoleto(
                                        dadosCliente,
                                        dadosDominio,
                                        DateTime.Now.AddDays(7),
                                        cliente.Valor,
                                        "Instrução de teste",
                                        "Descrição de teste");

                                    // Espera o boleto ser gerado.
                                    resultBoleto.Wait();

                                    if (!resultBoleto.Result.Success)
                                    {
                                        throw new Exception("Algum problema aconteceu ao gerar o boleto.");
                                    }

                                    // Envia o e-mail.
                                    {
                                        string subject = string.Format(
                                            "Boleto para pagamento da hospedagem do domínio: {0}",
                                            cliente.Dominio);

                                        string body = string.Format(@"
                                            Prezado(a) {0},
                                            <br><br>
                                            Seguem os dados para pagamento de sua fatura. Boleto bancário disponível para impressão em:<br>
                                            <a href='{1}'>{1}</a>
                                            <br><br>
                                            VALOR A PAGAR: R$ {2}<br>
                                            DOMÍNIO: {3}
                                            <br><br>
                                            Atenciosamente,<br>
                                            Financeiro Agência WD7
                                            <br><br>
                                            [email protected]<br>
                                            www.agenciawd7.com.br", cliente.Nome, resultBoleto.Result.Body.Url, cliente.Valor, cliente.Dominio);

                                        string to = string.Format("{0}; [email protected]", cliente.Email);

                                        Email.Send(to, subject, body);
                                    }

                                    // Atualiza a data de envio.
                                    this.DbUtils.AtualizaDataEnvio(cliente.IdBoleto);

                                    // Salva no histórico que o boleto foi enviado.
                                    this.DbUtils.InsereHistorico(cliente.IdBoleto, resultBoleto.Result.Body);
                                }
                            }
                        }

                        Thread.Sleep(600000);
                    }
                    catch (Exception ex)
                    {
                        this.SaveError(ex);
                        Thread.Sleep(600000);
                    }
                }
            });
        }
Ejemplo n.º 4
0
 public void Create(DadosCliente model)
 {
     model.Iddadoscliente = List.Count + 1;
     List.Add(model);
 }
Ejemplo n.º 5
0
 private void prvInsertClientes(DadosCliente cliente)
 {
     syncCliente = new SyncCliente();
     syncCliente.puvInsertCliente(cliente);
 }