//Interface do usuário public static void Main(string[] args) { //Cria a conexão com o Banco de dados using (DbConnection cnn = ConnectionFactory.CreateConnection()) { //ou //SqlConnection cnn = new SqlConnection(ConfigurationManager.ConnectionStrings["CNN"].ConnectionString); using (TransactionScope transaction = new TransactionScope()) { using (var fachada = new FacadeMensagem(cnn)) { for (int i = 0; i < 50; i++) { //Necessário ler as propriedades da tela do usuário var cliente = new MensagemCriacaoDTO(); cliente.Descricao = "MensagemTeste_" + i.ToString("00"); cliente.Destinatarios.Add("User1"); cliente.Destinatarios.Add("User2"); fachada.SalvarMensagem(cliente, "ADM"); } var result = fachada.RecuperarMensagens("User1"); return; } } } }
public void SalvarMensagem(MensagemCriacaoDTO obj, string UsuarioCriacao) { try { //garante que se alguma das operações falharem, será feito rollback das operações using (TransactionScope transaction = new TransactionScope()) { if (cnn.State == System.Data.ConnectionState.Closed) { cnn.Open(); } Mensagem objMensagem = new Mensagem(); objMensagem.Descricao = obj.Descricao; objMensagem.DtCriacao = DateTime.Now; mensagemDAL.Inserir(objMensagem); foreach (var item in obj.Destinatarios) { MensagemUsuario mu = new MensagemUsuario(); mu.Destinatario = item; mu.UsuarioCriacao = UsuarioCriacao; mu.DtCriacao = DateTime.Now; //MensagemID será atribuído pelo DAL mu.MensagemID = objMensagem.MensagemID; mensagemUsuarioDAL.Inserir(mu); } //faz o commit transaction.Complete(); } } catch (Exception) { throw; } finally { //sempre fecha a conexão como banco de dados cnn.Close(); } }