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()); } }
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()); } }
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()); } }
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); }