/// <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; }
/// <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); }