//INSERE UM NOVO REGISTRO public void Insert(PCMSO ObjPCMSO) { Database db = DatabaseFactory.CreateDatabase(); using (DbConnection connection = db.CreateConnection()) { connection.Open(); DbTransaction transaction = connection.BeginTransaction(); try { int idPCMSO = 0; if (ObjPCMSO.id == 0) { DbCommand command = db.GetStoredProcCommand("PCMSOInsert"); db.AddInParameter(command, "@idCliente", DbType.String, ObjPCMSO.idCliente); if (ObjPCMSO.id == 0) { //Parametros de OutPut db.AddOutParameter(command, "@id", DbType.Int32, 8); } //Executa a procedure db.ExecuteNonQuery(command, transaction); idPCMSO = Convert.ToInt32(db.GetParameterValue(command, "@id")); } else { idPCMSO = ObjPCMSO.id; } //Delete os registros para que sejam cadastrados novamente DeleteSetor(idPCMSO, ObjPCMSO.RefObjPCMSOXSetor.idSetor, ObjPCMSO.RefObjPCMSOXSetor.idCargo); DeleteRiscos(idPCMSO, ObjPCMSO.RefObjPCMSOXSetor.idCargo); DeleteExames(idPCMSO, ObjPCMSO.RefObjPCMSOXSetor.idCargo); //Inserts //Chama o DAL que vai fazer insert da tabela PCMSOXSetor PCMSOXSetorDAL ObjPCMSOXSetorDAL = new PCMSOXSetorDAL(); ObjPCMSOXSetorDAL.Insert(transaction, ObjPCMSO.RefObjPCMSOXSetor, idPCMSO); //Chama o DAL que vai fazer insert da tabela PCMSOXRiscosOcupacionais PCMSOXRiscosOcupacionaisDAL ObjPCMSOXRiscosOcupacionaisDAL = new PCMSOXRiscosOcupacionaisDAL(); ObjPCMSOXRiscosOcupacionaisDAL.Insert(transaction, ObjPCMSO.RefPCMSOXRiscosOcupacionais, idPCMSO); //Chama o DAL que vai fazer insert da tabela PCMSOXExamesComplementares PCMSOXExamesComplementaresDAL ObjPCMSOXExamesComplementaresDAL = new PCMSOXExamesComplementaresDAL(); ObjPCMSOXExamesComplementaresDAL.Insert(transaction, ObjPCMSO.RefPCMSOXExamesComplementares, idPCMSO); //Commit na transação transaction.Commit(); } catch (Exception ex) { // Roll back na transação transaction.Rollback(); throw ex; } connection.Close(); } }