예제 #1
0
        public override void Salvar()
        {
            try
            {
                cpc_DadosGerais.Controls.Validate();

                var grupoUsuarios = new List <E_COMUNICADO_X_GRUPOUSUARIO>();
                var usuarios      = new List <E_COMUNICADO_X_USUARIO>();

                clbc_GruposUsuariosCadastrados.Items.Cast <CComboBoxEditValue>().Select(a => a.ID).ToList().ForEach(a => grupoUsuarios.Add(new E_COMUNICADO_X_GRUPOUSUARIO {
                    ID_GRUPOUSUARIO = a.ToInt()
                }));
                clbc_UsuariosCadastrados.Items.Cast <CComboBoxEditValue>().Select(a => a.ID).ToList().ForEach(a => usuarios.Add(new E_COMUNICADO_X_USUARIO {
                    LOGIN = a
                }));

                comunicado = new E_COMUNICADO
                {
                    OPERACAO          = Operacao,
                    DS_COMUNICADO     = cme_Descricao.Text.Treat(),
                    LOGIN_COMUNICADOR = Parametros.Usuario,
                    ST_REGISTRO       = "A",
                    ANEXOS            = bs_Anexos.List.Cast <E_ANEXO>().ToList(),
                    USUARIOS          = usuarios,
                    GRUPOUSUARIOS     = grupoUsuarios
                };

                var transacao = 0;

                if (C_COMUNICADO.Salvar(comunicado, ref transacao))
                {
                    Finalizar();
                }
            }
            catch (Exception excessao)
            {
                Mensagens.Alerta(excessao.Tratar());
            }
        }
예제 #2
0
        public override void Adicionar()
        {
            try
            {
                base.Adicionar();

                using (var forma = new FComunicado_Lancamento {
                    Operacao = Operacao.Cadastrar
                })
                {
                    if (forma.ShowDialog() == DialogResult.OK)
                    {
                        comunicado = forma.comunicado;
                        Buscar();
                    }
                }
            }
            catch (Exception excessao)
            {
                Mensagens.Alerta(excessao.Tratar());
            }
        }
예제 #3
0
        public override void Buscar()
        {
            try
            {
                base.Buscar();

                var comunicados = from a in Conexao.Banco.TB_DIV_COMUNICADOs
                                  where
                                  a.ID_COMUNICADO == (comunicado.ID_COMUNICADO > 0 ? comunicado.ID_COMUNICADO : a.ID_COMUNICADO)
                                  select a;

                if (!Parametros.IsAdministrator())
                {
                    comunicados = from a in comunicados
                                  where
                                  Conexao.Banco.TB_DIV_COMUNICADO_X_USUARIOs.Where(b => b.ID_COMUNICADO == a.ID_COMUNICADO).Select(b => b.LOGIN).ToList().Contains(Parametros.Usuario) ||
                                  (from c in Conexao.Banco.TB_DIV_COMUNICADO_X_GRUPOUSUARIOs.Where(b => b.ID_COMUNICADO == a.ID_COMUNICADO).Select(b => b.ID_GRUPOUSUARIO)
                                   join d in Conexao.Banco.TB_DIV_USUARIO_X_GRUPOs.Where(b => b.LOGIN == Parametros.Usuario).Select(b => b.ID_GRUPOUSUARIO) on new { ID_GRUPOUSUARIO = c } equals new { ID_GRUPOUSUARIO = d }
                                   select new { }).Count() > 0
                                  select a;
                }

                if (Quantidade > 0)
                {
                    comunicados = comunicados.Take(Quantidade);
                }

                gc_Comunicado.DataSource = comunicados.Select(a => new E_COMUNICADO(a)).ToList();
                gv_Comunicado.BestFitColumns();

                comunicado = new E_COMUNICADO();
            }
            catch (Exception excessao)
            {
                Mensagens.Alerta(excessao.Tratar());
            }
        }
예제 #4
0
        public static bool Salvar(E_COMUNICADO comunicado, ref int transacao)
        {
            try
            {
                Conexao.Iniciar(ref transacao);

                var id_comunicado     = (int?)comunicado.ID_COMUNICADO;
                var login_comunicador = comunicado.LOGIN_COMUNICADOR.GetValue();

                Conexao.Banco.CAD_DIV_COMUNICADO(comunicado.OPERACAO.Value(),
                                                 ref id_comunicado,
                                                 login_comunicador.Treat().Length > 0 ? login_comunicador : null,
                                                 comunicado.DS_COMUNICADO,
                                                 comunicado.ST_REGISTRO);
                Conexao.Enviar();

                comunicado.ID_COMUNICADO = (int)id_comunicado;

                if (comunicado.OPERACAO == Operacao.Cadastrar)
                {
                    foreach (var usuario in comunicado.USUARIOS)
                    {
                        Conexao.Banco.CAD_DIV_COMUNICADO_X_USUARIO(Operacao.Cadastrar.Value(),
                                                                   comunicado.ID_COMUNICADO,
                                                                   usuario.LOGIN);

                        Conexao.Enviar();
                    }

                    foreach (var grupoUsuario in comunicado.GRUPOUSUARIOS)
                    {
                        Conexao.Banco.CAD_DIV_COMUNICADO_X_GRUPOUSUARIO(Operacao.Cadastrar.Value(),
                                                                        comunicado.ID_COMUNICADO,
                                                                        grupoUsuario.ID_GRUPOUSUARIO);

                        Conexao.Enviar();
                    }

                    foreach (var anexo in comunicado.ANEXOS)
                    {
                        var id_anexo = (int?)0;

                        Conexao.Banco.CAD_DIV_ANEXO(Operacao.Cadastrar.Value(),
                                                    ref id_anexo,
                                                    anexo.ANEXO,
                                                    anexo.NM_ANEXO,
                                                    anexo.EXTENSAO);

                        Conexao.Enviar();

                        Conexao.Banco.CAD_DIV_COMUNICADO_X_ANEXO(Operacao.Cadastrar.Value(),
                                                                 comunicado.ID_COMUNICADO,
                                                                 id_anexo);

                        Conexao.Enviar();
                    }
                }
            }
            catch (Exception excessao)
            {
                Conexao.Voltar(ref transacao);
                throw excessao;
            }

            Conexao.Finalizar(ref transacao);

            return(true);
        }