Exemplo n.º 1
0
        // INSERT
        //------------------------------------------------------------------------------------------------------------
        public int InsertMensagem(objMensagem mensagem, object dbTran = null)
        {
            AcessoDados db = null;

            try
            {
                db = dbTran == null ? new AcessoDados() : (AcessoDados)dbTran;

                //--- clear Params
                db.LimparParametros();

                //--- define Params
                db.AdicionarParametros("@IDUsuarioDestino", mensagem.IDUsuarioDestino);
                db.AdicionarParametros("@IDUsuarioOrigem", mensagem.IDUsuarioOrigem);
                db.AdicionarParametros("@Suporte", mensagem.Suporte);
                db.AdicionarParametros("@IsResposta", mensagem.IsResposta);
                db.AdicionarParametros("@Mensagem", mensagem.Mensagem);
                db.AdicionarParametros("@MensagemData", mensagem.MensagemData);
                db.AdicionarParametros("@IDOrigem", mensagem.IDOrigem);

                //--- convert null parameters
                db.ConvertNullParams();

                //--- create query
                string query = db.CreateInsertSQL("tblUsuarioMensagem");

                //--- insert
                return((int)db.ExecutarInsertAndGetID(query));
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Exemplo n.º 2
0
        // UPDATE
        //------------------------------------------------------------------------------------------------------------
        public bool UpdateMensagem(objMensagem mensagem)
        {
            try
            {
                AcessoDados db = new AcessoDados();

                //--- clear Params
                db.LimparParametros();

                //--- define Params
                db.AdicionarParametros("@IDMensagem", mensagem.IDMensagem);
                db.AdicionarParametros("@IDUsuarioDestino", mensagem.IDUsuarioDestino);
                db.AdicionarParametros("@IDUsuarioOrigem", mensagem.IDUsuarioOrigem);
                db.AdicionarParametros("@Suporte", mensagem.Suporte);
                db.AdicionarParametros("@IsResposta", mensagem.IsResposta);
                db.AdicionarParametros("@Mensagem", mensagem.Mensagem);
                db.AdicionarParametros("@MensagemData", mensagem.MensagemData);
                db.AdicionarParametros("@Recebida", mensagem.Recebida);
                db.AdicionarParametros("@RecebidaData", mensagem.RecebidaData);

                //--- convert null parameters
                db.ConvertNullParams();

                ////--- create query
                string query = db.CreateUpdateSQL("tblUsuarioMensagem", "IDMensagem");

                //--- UPDATE
                db.ExecutarManipulacao(CommandType.Text, query);
                return(true);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Exemplo n.º 3
0
        // GET MESSAGES RELATED AND RETURN A LIST OF OBJ MENSAGEM
        //------------------------------------------------------------------------------------------------------------
        public List <objMensagem> GetListMensagensRelacionadas(int IDMensagem)
        {
            AcessoDados db = null;

            try
            {
                db = new AcessoDados();
                db.BeginTransaction();

                objMensagem mensagem = GetMensagemByID(IDMensagem, db);

                List <objMensagem> list = new List <objMensagem>();

                while (mensagem.MensagemOrigem != null)
                {
                    list.Add(mensagem.MensagemOrigem);

                    mensagem = mensagem.MensagemOrigem;
                }

                db.CommitTransaction();
                return(list);
            }
            catch (Exception ex)
            {
                db.RollBackTransaction();
                throw ex;
            }
        }
        // CONTROLA AS CORES DA LISTAGEM
        //------------------------------------------------------------------------------------------------------------
        private void dgvListagem_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
        {
            objMensagem mensagem = (objMensagem)dgvListagem.Rows[e.RowIndex].DataBoundItem;

            if (e.ColumnIndex == clnSituacao.Index)
            {
                if (mensagem.Recebida == false)
                {
                    e.Value = _Recebida ? "NOVA" : "NÃO LIDA";

                    dgvListagem.Rows[e.RowIndex].DefaultCellStyle.BackColor          = Color.MistyRose;
                    dgvListagem.Rows[e.RowIndex].DefaultCellStyle.SelectionBackColor = Color.Firebrick;
                    e.CellStyle.ForeColor          = Color.Red;
                    e.CellStyle.SelectionForeColor = Color.Yellow;
                }
                else
                {
                    e.Value = "LIDA";
                    if ((e.RowIndex + 1) % 2 != 0)                     // row ODD (impar)
                    {
                        dgvListagem.Rows[e.RowIndex].DefaultCellStyle.BackColor          = Color.OldLace;
                        dgvListagem.Rows[e.RowIndex].DefaultCellStyle.SelectionBackColor = SystemColors.Highlight;
                    }
                    else                     // row EVEN (par)
                    {
                        dgvListagem.Rows[e.RowIndex].DefaultCellStyle.BackColor          = Color.White;
                        dgvListagem.Rows[e.RowIndex].DefaultCellStyle.SelectionBackColor = SystemColors.Highlight;
                    }
                }
            }
        }
        // MARCAR COMO LIDA
        //------------------------------------------------------------------------------------------------------------
        private void MarcarComoLida()
        {
            if (dgvListagem.SelectedRows.Count == 0)
            {
                AbrirDialog("Selecione um registro para Marcar como Lida...", "Selecionar");
                return;
            }

            //--- get selected message
            objMensagem mensagem = (objMensagem)dgvListagem.SelectedRows[0].DataBoundItem;

            mensagem.Recebida     = true;
            mensagem.RecebidaData = DateTime.Today;

            try
            {
                // --- Ampulheta ON
                Cursor.Current = Cursors.WaitCursor;

                //--- update
                mBLL.UpdateMensagem(mensagem);
            }
            catch (Exception ex)
            {
                AbrirDialog("Uma exceção ocorreu ao Salvar Mensagem..." + "\n" +
                            ex.Message, "Exceção", DialogType.OK, DialogIcon.Exclamation);
            }
            finally
            {
                // --- Ampulheta OFF
                Cursor.Current = Cursors.Default;
            }
        }
Exemplo n.º 6
0
        // SEND MESSAGE TO ALL ACTIVE USERS
        //------------------------------------------------------------------------------------------------------------
        public int SendToAllActiveUsers(objMensagem mensagem)
        {
            AcessoDados db = null;

            try
            {
                db = new AcessoDados();
                db.BeginTransaction();

                //--- get users list
                List <objUsuario> listUser = new UsuarioBLL().GetListUsuario("", true);

                foreach (var user in listUser)
                {
                    //--- check if user is the sender user
                    if (user.IDUsuario == mensagem.IDUsuarioOrigem)
                    {
                        continue;
                    }

                    //--- crete new message
                    var newMensage = new objMensagem()
                    {
                        IDUsuarioDestino = (int)user.IDUsuario,
                        IDUsuarioOrigem  = mensagem.IDUsuarioOrigem,
                        IsResposta       = false,
                        IDMensagem       = null,
                        IDOrigem         = null,
                        Mensagem         = mensagem.Mensagem,
                        MensagemData     = mensagem.MensagemData,
                        MensagemOrigem   = null,
                        Recebida         = false,
                        RecebidaData     = null,
                        Suporte          = false,
                        UsuarioOrigem    = mensagem.UsuarioOrigem,
                        UsuarioDestino   = user.UsuarioApelido
                    };

                    //--- insert new message
                    InsertMensagem(newMensage);
                }

                //--- COMMIT
                db.CommitTransaction();

                //--- RETURN WITH NUMBER OF SENDED MESSAGES
                return(listUser.Count);
            }
            catch (Exception ex)
            {
                //--- ROOLBACK
                db.RollBackTransaction();
                throw ex;
            }
        }
        // ENVIAR MENSAGEM
        //------------------------------------------------------------------------------------------------------------
        private void EnviarMensagem(objMensagem mensagem)
        {
            try
            {
                // --- Ampulheta ON
                Cursor.Current = Cursors.WaitCursor;

                //---mensagem
                string texto = "";

                //--- check usuario destino
                if (mensagem.IDUsuarioDestino != -1)
                {
                    mBLL.InsertMensagem(mensagem);
                    texto = "Mensagem enviada com sucesso!";
                }
                else
                {
                    int total = mBLL.SendToAllActiveUsers(mensagem);

                    if (total > 1)
                    {
                        texto = $"Mensagens enviadas com sucesso para {total: D2} usuários.";
                    }
                    else
                    {
                        texto = $"Mensagem enviada com sucesso para 1 usuário.";
                    }
                }

                if (rbtEnviadas.Checked)
                {
                    ObterDados();
                }
                else
                {
                    rbtEnviadas.Checked = true;
                }

                AbrirDialog(texto, "Enviada");
            }
            catch (Exception ex)
            {
                AbrirDialog("Uma exceção ocorreu ao Enviar Mensagem..." + "\n" +
                            ex.Message, "Exceção", DialogType.OK, DialogIcon.Exclamation);
            }
            finally
            {
                // --- Ampulheta OFF
                Cursor.Current = Cursors.Default;
            }
        }
        public frmMensagemEditar(objMensagem mensagem, objUsuario DestinoUser, Form formOrigem)
        {
            InitializeComponent();

            _formOrigem     = formOrigem;
            _DestinoUser    = DestinoUser;
            _mensagem       = mensagem;
            bind.DataSource = _mensagem;
            BindingCreator();

            if (_mensagem.IDMensagem == null)
            {
                Sit = EnumFlagEstado.NovoRegistro;
            }
            else
            {
                Sit = EnumFlagEstado.RegistroSalvo;

                if (mensagem.IDUsuarioOrigem != Program.usuarioAtual.IDUsuario)
                {
                    txtUsuarioDestino.ReadOnly = true;
                    txtMensagem.ReadOnly       = true;
                    btnSetConta.Enabled        = false;
                    btnEnviar.Visible          = false;
                    btnCancelar.Text           = "&Fechar";
                }
            }

            // CHECK IF IS RESPOSTA
            if (_mensagem.IsResposta && mensagem.IDOrigem != null)
            {
                mBLL       = new MensagemBLL();
                lstAntigas = ObterAnteriores((int)mensagem.IDOrigem);

                if (lstAntigas != null && lstAntigas.Count > 0)
                {
                    PreencheControleAntigas();
                }
            }

            // CHECK FORM SIZE
            WithAnteriores();

            // ADD HANDLERS
            HandlerKeyDownControl(this);
        }
        // EDITAR MENSAGEM
        //------------------------------------------------------------------------------------------------------------
        private void EditarMensagem()
        {
            if (dgvListagem.SelectedRows.Count == 0)
            {
                AbrirDialog("Selecione um registro para editar...", "Selecionar");
                return;
            }

            //--- get selected message
            objMensagem mensagem = (objMensagem)dgvListagem.SelectedRows[0].DataBoundItem;

            //--- create destino user
            var user = new objUsuario(mensagem.IDUsuarioDestino)
            {
                UsuarioApelido = mensagem.UsuarioDestino
            };

            //--- open form mensagem
            var frmM = new frmMensagemEditar(mensagem, user, this);

            frmM.ShowDialog();

            if (frmM.DialogResult != DialogResult.OK)
            {
                return;
            }

            try
            {
                // --- Ampulheta ON
                Cursor.Current = Cursors.WaitCursor;

                //--- update
                mBLL.UpdateMensagem(mensagem);
            }
            catch (Exception ex)
            {
                AbrirDialog("Uma exceção ocorreu ao Salvar Mensagem..." + "\n" +
                            ex.Message, "Exceção", DialogType.OK, DialogIcon.Exclamation);
            }
            finally
            {
                // --- Ampulheta OFF
                Cursor.Current = Cursors.Default;
            }
        }
        // REMOVER MENSAGEM
        //------------------------------------------------------------------------------------------------------------
        private void RemoverMensagem()
        {
            if (dgvListagem.SelectedRows.Count == 0)
            {
                AbrirDialog("Selecione um registro para Remover...", "Selecionar");
                return;
            }

            //--- get selected message
            objMensagem mensagem = (objMensagem)dgvListagem.SelectedRows[0].DataBoundItem;

            //--- ask user
            var resp = AbrirDialog("Você deseja realmente REMOVER a mensagem selecionada para o usuário\n" +
                                   $"{mensagem.UsuarioDestino.ToUpper()}?", "Remover Mensagem",
                                   DialogType.SIM_NAO, DialogIcon.Question, DialogDefaultButton.Second);

            if (resp != DialogResult.Yes)
            {
                return;
            }

            try
            {
                // --- Ampulheta ON
                Cursor.Current = Cursors.WaitCursor;

                //--- remove
                mBLL.DeleteMensagem((int)mensagem.IDMensagem);

                //--- get dados
                bind.Remove(mensagem);
            }
            catch (Exception ex)
            {
                AbrirDialog("Uma exceção ocorreu ao Salvar Mensagem..." + "\n" +
                            ex.Message, "Exceção", DialogType.OK, DialogIcon.Exclamation);
            }
            finally
            {
                // --- Ampulheta OFF
                Cursor.Current = Cursors.Default;
            }
        }
Exemplo n.º 11
0
        // CONVERT ROW IN CLASS
        //------------------------------------------------------------------------------------------------------------
        public objMensagem ConvertRowInClass(DataRow row)
        {
            objMensagem mensagem = new objMensagem()
            {
                IDMensagem       = (int)row["IDMensagem"],
                IDUsuarioDestino = (int)row["IDUsuarioDestino"],
                UsuarioDestino   = (string)row["UsuarioDestino"],
                IDUsuarioOrigem  = (int)row["IDUsuarioOrigem"],
                UsuarioOrigem    = (string)row["UsuarioOrigem"],
                Recebida         = (bool)row["Recebida"],
                Suporte          = (bool)row["Suporte"],
                IsResposta       = (bool)row["IsResposta"],
                Mensagem         = (string)row["Mensagem"],
                MensagemData     = (DateTime)row["MensagemData"],
                RecebidaData     = row["RecebidaData"] == DBNull.Value ? null : (DateTime?)row["RecebidaData"],
                IDOrigem         = row["IDOrigem"] == DBNull.Value ? null : (int?)row["IDOrigem"],
            };

            return(mensagem);
        }
        // LISTAGEM AO CLICAR
        //------------------------------------------------------------------------------------------------------------
        private void dgvListagem_MouseDown(object sender, MouseEventArgs e)
        {
            // check button
            if (e.Button != MouseButtons.Right)
            {
                return;
            }

            Control c = (Control)sender;

            DataGridView.HitTestInfo hit = dgvListagem.HitTest(e.X, e.Y);
            dgvListagem.ClearSelection();

            if (hit.Type != DataGridViewHitTestType.Cell)
            {
                return;
            }

            // seleciona o ROW
            dgvListagem.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
            dgvListagem.CurrentCell   = dgvListagem.Rows[hit.RowIndex].Cells[2];
            dgvListagem.Rows[hit.RowIndex].Selected = true;

            // mostra o MENU ativar e desativar
            objMensagem item = (objMensagem)dgvListagem.Rows[hit.RowIndex].DataBoundItem;

            // revela menu
            if (_Recebida)
            {
                mnuRecebida.Enabled = !item.Recebida;
                mnuOperacoes.Show(c.PointToScreen(e.Location));
            }
            else
            {
                mnuEnviadas.Show(c.PointToScreen(e.Location));
            }
        }
Exemplo n.º 13
0
        // GET MENSAGEM BY ID RECURSIVE
        //------------------------------------------------------------------------------------------------------------
        public objMensagem GetMensagemByID(int IDMensagem, object dbTran)
        {
            try
            {
                AcessoDados db = (AcessoDados)dbTran;

                // define paramns
                db.LimparParametros();
                db.AdicionarParametros("@IDMensagem", IDMensagem);

                // define query
                string query = "SELECT * FROM qryUsuarioMensagem " +
                               "WHERE IDMensagem = @IDMensagem";

                var mensagem = new objMensagem();

                // execute query
                DataTable dt = db.ExecutarConsulta(CommandType.Text, query);

                if (dt.Rows.Count > 0)
                {
                    mensagem = ConvertRowInClass(dt.Rows[0]);

                    if (mensagem.IDOrigem != null)
                    {
                        mensagem.MensagemOrigem = GetMensagemByID((int)mensagem.IDOrigem, db);
                    }
                }

                return(mensagem);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        // RESPONDER MENSAGEM SELECIONADA
        //------------------------------------------------------------------------------------------------------------
        private void ResponderMensagem()
        {
            if (dgvListagem.SelectedRows.Count == 0)
            {
                AbrirDialog("Selecione uma mensagem para Responder...", "Selecionar");
                return;
            }

            //--- get selected message
            objMensagem mensagem = (objMensagem)dgvListagem.SelectedRows[0].DataBoundItem;

            //--- check if mensagem is RECEBIDA
            if (!mensagem.Recebida)
            {
                AbrirDialog("Para responder uma mensagem, a mesma deve estar marcada como mensagem LIDA..." +
                            "Favor marcar essa mensagem com LIDA.",
                            "Responder Mensagem", DialogType.OK, DialogIcon.Exclamation);
                return;
            }

            try
            {
                // --- Ampulheta ON
                Cursor.Current = Cursors.WaitCursor;

                //--- Define Destination User message
                objUsuario userDestino = new objUsuario(mensagem.IDUsuarioOrigem)
                {
                    UsuarioApelido = mensagem.UsuarioOrigem
                };

                //--- create new mensagem
                var novaMensagem = new objMensagem()
                {
                    IDMensagem       = null,
                    IDUsuarioDestino = (int)userDestino.IDUsuario,
                    IDUsuarioOrigem  = (int)Program.usuarioAtual.IDUsuario,
                    IsResposta       = true,
                    IDOrigem         = mensagem.IDMensagem,
                    Mensagem         = "",
                    MensagemData     = DateTime.Today,
                    MensagemOrigem   = mensagem,
                    Recebida         = false,
                    RecebidaData     = null,
                    Suporte          = false,
                    UsuarioOrigem    = Program.usuarioAtual.UsuarioApelido,
                    UsuarioDestino   = userDestino.UsuarioApelido
                };

                //--- open form mensagem
                var frmM = new frmMensagemEditar(novaMensagem, userDestino, this);

                frmM.ShowDialog();

                if (frmM.DialogResult != DialogResult.OK)
                {
                    return;
                }

                EnviarMensagem(novaMensagem);
            }
            catch (Exception ex)
            {
                AbrirDialog("Uma exceção ocorreu ao Enviar a Resposta da Mensagem..." + "\n" +
                            ex.Message, "Exceção", DialogType.OK, DialogIcon.Exclamation);
            }
            finally
            {
                // --- Ampulheta OFF
                Cursor.Current = Cursors.Default;
            }
        }
        // CREATE ENVIAR NOVA MENSAGEM
        //------------------------------------------------------------------------------------------------------------
        private void btnEnviarNova_Click(object sender, EventArgs e)
        {
            try
            {
                // --- Ampulheta ON
                Cursor.Current = Cursors.WaitCursor;

                //--- get destination user message
                var frm = new frmUsuarioProcura(this, null, true);
                frm.ShowDialog();

                if (frm.DialogResult != DialogResult.OK)
                {
                    return;
                }

                var user = frm.propEscolha;

                if (user.IDUsuario == (int)Program.usuarioAtual.IDUsuario)
                {
                    AbrirDialog("Não é possível enviar uma mensagem para o usuário atual:\n" +
                                $"{Program.usuarioAtual.UsuarioApelido}",
                                "Mensagem para Usuário", DialogType.OK, DialogIcon.Exclamation);
                    return;
                }

                //--- create new mensagem
                var novaMensagem = new objMensagem()
                {
                    IDUsuarioDestino = (int)user.IDUsuario,
                    IDUsuarioOrigem  = (int)Program.usuarioAtual.IDUsuario,
                    IsResposta       = false,
                    IDMensagem       = null,
                    IDOrigem         = null,
                    Mensagem         = "",
                    MensagemData     = DateTime.Today,
                    MensagemOrigem   = null,
                    Recebida         = false,
                    RecebidaData     = null,
                    Suporte          = false,
                    UsuarioOrigem    = Program.usuarioAtual.UsuarioApelido,
                    UsuarioDestino   = user.UsuarioApelido
                };

                //--- open form mensagem
                var frmM = new frmMensagemEditar(novaMensagem, user, this);

                frmM.ShowDialog();

                if (frmM.DialogResult != DialogResult.OK)
                {
                    return;
                }

                EnviarMensagem(novaMensagem);
            }
            catch (Exception ex)
            {
                AbrirDialog("Uma exceção ocorreu ao Enviar Nova Mensagem..." + "\n" +
                            ex.Message, "Exceção", DialogType.OK, DialogIcon.Exclamation);
            }
            finally
            {
                // --- Ampulheta OFF
                Cursor.Current = Cursors.Default;
            }
        }