public bool Excluir(Compromisso horario) { try { AntesExcluir(); BeginTran(); Sessao.Delete(horario); Sessao.Flush(); //Deleta Agenda caso a mesma não tenha compromissos Agenda agenda = new Agenda().Selecionar(horario.Agenda.Codigo); if (agenda.Compromissos != null && agenda.Compromissos.Count == 0) { Sessao.Delete(agenda); Sessao.Flush(); } Commit(); return(true); } catch (HibernateException h) { Rollback(); Type aux = typeof(MySqlException); if (h.InnerException.GetType().Equals(aux)) { GepexException.EBancoDados gex = new GepexException.EBancoDados(); gex.Numero = ((MySqlException)h.InnerException).Number; throw gex; } else { throw h; } } catch (Exception e) { Rollback(); throw e; } }
public bool TrocarHorario(Compromisso pOrigem, Compromisso pDestino, string pMotivo) { try { this.BeginTran(); // delete o registro na tabela para nao dar problemas com os Index na tabela de compromisso Sessao.Delete(pOrigem); Sessao.Flush(); Sessao.Delete(pDestino); Sessao.Flush(); Compromisso CompDestino = new Compromisso(); Compromisso CompOrigem = new Compromisso(); //copia do destino para a origem CompOrigem.Aluno = pOrigem.Aluno; CompOrigem.Profissao = pDestino.Profissao; CompOrigem.Data = pDestino.Data; CompOrigem.Agenda = pDestino.Agenda; CompOrigem.HorarioInicial = pDestino.HorarioInicial; CompOrigem.HorarioFinal = pDestino.HorarioFinal; CompOrigem.Situacao = pDestino.Situacao; CompOrigem.Motivo = pMotivo; //copia da origem para destino CompDestino.Aluno = pDestino.Aluno; CompDestino.Profissao = pOrigem.Profissao; CompDestino.Data = pOrigem.Data; CompDestino.Agenda = pOrigem.Agenda; CompDestino.HorarioInicial = pOrigem.HorarioInicial; CompDestino.HorarioFinal = pOrigem.HorarioFinal; CompDestino.Situacao = pOrigem.Situacao; CompDestino.Motivo = pMotivo; //insere CompDestino.Validar(); Sessao.Save(CompDestino); Sessao.Flush(); CompOrigem.Validar(); Sessao.Save(CompOrigem); Sessao.Flush(); this.Commit(); return(true); } catch (HibernateException h) { this.Rollback(); Type aux = typeof(MySqlException); if (h.InnerException.GetType().Equals(aux)) { GepexException.EBancoDados gex = new GepexException.EBancoDados(); gex.Numero = ((MySqlException)h.InnerException).Number; throw gex; } else { throw h; } } catch (Model.Base.GepexException.ERegraNegocio ex) { throw ex; } catch (Exception e) { this.Rollback(); throw e; } }