/// <summary>
        /// Objetivo: mostrar o balão
        /// </summary>
        /// <param name="agendamentoAtual">a ser mostrado no balão</param>
        private void DespertarBalão(Agendamento agendamentoAtual)
        {
            DespertadorBalão balão = new DespertadorBalão(agendamentoAtual);

            // Colocar evento para fechar
            balão.Closed += new EventHandler(AoFecharBalão);
            balão.AlterarAgendamento += new DespertadorBalão.DAgendamento(AbrirAlterar);
            balão.ShowDialog();
        }
		public DespertadorBalão(Agendamento agendamentoParaMostrar)
		{
			InitializeComponent();

			if (this.DesignMode == true)
				return;

			borda.Text = "Compromisso para " + agendamentoParaMostrar.Data.ToLongDateString() + " " + agendamentoParaMostrar.Data.ToString("HH:mm");
			txtInfo.Text = agendamentoParaMostrar.Descrição;
			txtHoraDespertar.Text = agendamentoParaMostrar.Alarme.ToString("HH:mm");

			this.agendamento = agendamentoParaMostrar;
		}
Esempio n. 3
0
        /// <summary>
        /// Obtém agendamentos despertados.
        /// </summary>
        /// <returns>Lista de agendamentos despertados.</returns>
        public static IList<Agendamento> ObterAgendamentosDespertados()
        {
            IDbConnection conexão;
            List<Agendamento> agendamentos;
            ulong? func = ObterFuncionárioAtual();

            agendamentos = new List<Agendamento>();

            conexão = Conexão;

            lock (conexão)
                using (IDbCommand cmd = conexão.CreateCommand())
                {
                    IDataReader leitor = null;

                    cmd.CommandText =
                        @"SELECT codigo,descricao,data,alarme FROM agendamento WHERE" +
                        " alarme < NOW()" +
                        (func.HasValue ? " AND funcionario = " + DbTransformar(func.Value) : " AND funcionario is null") +
                        " ORDER BY alarme";

                    try
                    {
                        Usuários.UsuárioAtual.GerenciadorConexões.RemoverConexão(conexão);


                        using (leitor = cmd.ExecuteReader())
                        {

                            while (leitor.Read())
                            {
                                Agendamento agendamento = new Agendamento();

                                agendamento.codigo = leitor.GetInt64(0);
                                agendamento.descricao = leitor.GetString(1);
                                agendamento.data = leitor.GetDateTime(2);
                                agendamento.alarme = leitor.GetDateTime(3);

                                agendamentos.Add(agendamento);
                            }
                        }
                    }
                    finally
                    {
                        if (leitor != null)
                            leitor.Close();

                        Usuários.UsuárioAtual.GerenciadorConexões.AdicionarConexão(conexão);
                    }
                }

            return agendamentos;
        }
        /// <summary>
        /// Altera um agendamento. 
        /// Para isso, abre a janela para usuário fazer alterações
        /// </summary>
        private void AbrirAlterar(Agendamento agendamentoAtual)
        {
            try
            {
                using (InserirAgendamento dlg = new InserirAgendamento())
                {
                    dlg.Descrição = agendamentoAtual.Descrição;
                    dlg.Alarme = agendamentoAtual.Alarme;
                    dlg.HoraEvento = agendamentoAtual.Data;

                    dlg.ShowDialog();

                    if (dlg.AtualizaçãoBemSucedida)
                    {
                        agendamentoAtual.Data = dlg.HoraEvento;
                        agendamentoAtual.Descrição = dlg.Descrição;
                        if (dlg.Despertar)
                            agendamentoAtual.Alarme = dlg.Alarme;
                        else
                            agendamentoAtual.Alarme = DateTime.MinValue;

                        if (!agendamentoAtual.Cadastrado)
                            agendamentoAtual.Cadastrar();
                        else
                            agendamentoAtual.Atualizar();
                    }
                }
            }
            catch (Exception e)
            {
                Acesso.Comum.Usuários.UsuárioAtual.RegistrarErro(e);
            }
        }
		/// <summary>
		/// Ocorre ao clicar em novo agendamento.
		/// </summary>
		private void opçãoNovoAgendamento_Click(object sender, System.EventArgs e)
		{
			Agendamento novoAgendamento;

			using (InserirAgendamento dlg = new InserirAgendamento())
			{
				if (dlg.ShowDialog() == DialogResult.OK)
				{
					novoAgendamento      = new Agendamento();
					novoAgendamento.Data = dlg.HoraEvento;

					if (dlg.Despertar)
						novoAgendamento.Alarme = dlg.Alarme;

					novoAgendamento.Descrição = dlg.Descrição;
					novoAgendamento.Código    = -1;

					novoAgendamento.Cadastrar();
					
					CarregarListView(calendário.SelectionStart);
				}
			}		
		}
		/// <summary>
		/// Altera um agendamento. 
		/// Para isso, abre a janela para usuário fazer alterações
		/// 
		/// Função usada em 2 lugares:
		///		- no balão, o usr pede mudança de horário
		///		- no evento OpçõesAgendamentos1 (Alterar)
		/// </summary>
		private void AbrirAlterar(Agendamento agendamentoAtual) 
		{
            using (InserirAgendamento dlg = new InserirAgendamento())
            {
                dlg.Descrição = agendamentoAtual.Descrição;
                dlg.Alarme = agendamentoAtual.Alarme;
                dlg.HoraEvento = agendamentoAtual.Data;

                dlg.ShowDialog();

                if (dlg.AtualizaçãoBemSucedida)
                {
                    agendamentoAtual.Data = dlg.HoraEvento;
                    agendamentoAtual.Descrição = dlg.Descrição;
                    if (dlg.Despertar)
                        agendamentoAtual.Alarme = dlg.Alarme;
                    else
                        agendamentoAtual.Alarme = DateTime.MinValue;

                    if (!agendamentoAtual.Cadastrado)
                        agendamentoAtual.Cadastrar();
                    else
                        agendamentoAtual.Atualizar();

                }
            }		

			CarregarListView(calendário.SelectionStart);
		}