示例#1
0
        //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;
                    }
                }
            }
        }
示例#2
0
        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();
            }
        }