Beispiel #1
0
        /// <summary>
        /// Método que solicita a lista de locações do veiculo com código passado como parâmetro na referência do Web Service, recebe a String de resposta e transforma em uma estrutura de dados de melhor compreensão para o resto do programa
        /// </summary>
        /// <param name="idVeiculo">Código do veiculos do qual se deseja consultar as locações</param>
        /// <returns>List com objetos da classe Locação do Veiculo de Parâmetro</returns>
        public List <Locacao> RecuperarLocacoesPorVeiculo(int idVeiculo)
        {
            WebServiceReferencia.wsLocadoraClient proxy = new WebServiceReferencia.wsLocadoraClient();
            String resultado = proxy.ConsultarLocacoesVeiculo(idVeiculo).ToString();

            String[]       mensagem     = resultado.Split('~');
            int            tamanhoArray = Convert.ToInt32(mensagem[0]);
            List <Locacao> locacoes     = new List <Locacao>();

            if (tamanhoArray > 0)
            {
                String[] locacoesString = mensagem[1].Split('@');
                foreach (String s in locacoesString)
                {
                    String[] dadosLocacao = s.Split('#');
                    Locacao  l            = new Locacao();
                    l.setLocalDevolucao(dadosLocacao[0]);
                    l.setLocalRetirada(dadosLocacao[1]);
                    DateTime dtDevolucao       = Convert.ToDateTime(dadosLocacao[2]);
                    DateTime dtRetirada        = Convert.ToDateTime(dadosLocacao[3]);
                    String   horaDevolucao     = dadosLocacao[4];
                    String   horaRetirada      = dadosLocacao[5];
                    String[] devolucaoQuebrado = horaDevolucao.Split(':');
                    String[] retiradaQuebrado  = horaRetirada.Split(':');
                    TimeSpan tsDevolucao       = new TimeSpan(Convert.ToInt32(devolucaoQuebrado[0]), Convert.ToInt32(devolucaoQuebrado[1]), 0);
                    TimeSpan tsRetirada        = new TimeSpan(Convert.ToInt32(retiradaQuebrado[0]), Convert.ToInt32(retiradaQuebrado[1]), 0);
                    dtDevolucao = dtDevolucao.Date + tsDevolucao;
                    dtRetirada  = dtRetirada.Date + tsRetirada;
                    l.setDataHoraDevolucao(dtDevolucao);
                    l.setDataHoraRetirada(dtRetirada);
                    locacoes.Add(l);
                }
            }
            return(locacoes);
        }
Beispiel #2
0
        /// <summary>
        /// Método que recolhe os dados preenchidos pelo usuário, valida as datas para não estarem inválidas e após isso, envia a requisição de locação para o servidor através da interface de Web Service
        /// </summary>
        private void botaoConfirmar_Click(object sender, EventArgs e)
        {
            Locacao  loc            = new Locacao();
            DateTime retirada       = dateDataRetirada.Value.Date;
            int      retiradaHora   = dateHoraRetirada.Value.Hour;
            int      retiradaMinuto = dateHoraRetirada.Value.Minute;
            TimeSpan tsRetirada     = new TimeSpan(retiradaHora, retiradaMinuto, 0);

            retirada = retirada.Date + tsRetirada;
            DateTime devolucao       = dateDataDevolucao.Value.Date;
            int      devolucaoHora   = dateHoraDevolucao.Value.Hour;
            int      devolucaoMinuto = dateHoraDevolucao.Value.Minute;
            TimeSpan tsDevolucao     = new TimeSpan(devolucaoHora, devolucaoMinuto, 0);

            devolucao = devolucao.Date + tsDevolucao;
            loc.setDataHoraRetirada(retirada);
            loc.setDataHoraDevolucao(devolucao);
            loc.setIdadeCondutor(Convert.ToInt32(spinnerIdadeCondutor.Text));
            loc.setLocalDevolucao(boxLocalDevolucao.Text);
            loc.setLocalRetirada(boxLocalRetirada.Text);
            loc.setNomeCondutor(boxNomeMotorista.Text);
            loc.setNumeroCartao(boxNumeroCartao.Text);
            loc.setParcelasCartao(Convert.ToInt32(spinnerNumeroParcelas.Text));
            loc.setIdVeiculoReferencia(selecionado.getIdVeiculo());
            int comparacao = devolucao.CompareTo(retirada);

            if (comparacao <= 0)
            {
                MessageBox.Show("A devolução está sendo agendada para antes da data de retirada.", "Incorreto!", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            else
            {
                DateTime hoje = DateTime.Today;
                comparacao = hoje.CompareTo(retirada);
                if (comparacao >= 1)
                {
                    MessageBox.Show("A retirada está sendo marcada para antes de agora.", "Incorreto!", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                else
                {
                    WebServiceCliente wsc = new WebServiceCliente();
                    bool sucesso          = wsc.EfetuarLocacao(loc);
                    if (sucesso)
                    {
                        MessageBox.Show("Locação efetuada com sucesso.", "Finalizado!", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        this.Dispose();
                    }
                    else
                    {
                        MessageBox.Show("Locação não realizada. Na data e horário solicitados já há uma reserva.", "Tente novamete", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    }
                }
            }
        }