frmAccesoMenus.cs
1 using System;
2 using System.Collections.Generic;
3 using System.ComponentModel;
4 using System.Data;
5 using System.Drawing;
6 using System.Linq;
7 using System.Text;
8 using System.Windows.Forms;
9 using sage.ew.formul.Forms;
10 using sage.ew.global;
11 using sage.ew.formul;
12 using System.Collections;
13 using sage.ew.images.Properties;
14 
15 namespace sage.ew.usuario.Forms
16 {
17  public partial class frmAccesoMenus : FormDialog
18  {
19  private Usuario _oUser = new Usuario();
20  private DataTable _dtUsuarios;
21  private String _cMenu;
22 
23  private Boolean _llLoading = false;
24 
28  public String _Menu
29  {
30  get
31  {
32  return _cMenu;
33  }
34  set
35  {
36  _cMenu = value;
37  }
38  }
39 
43  public frmAccesoMenus()
44  {
45  InitializeComponent();
46 
47  this._MenuOpcionesBoton = false; //PE-92436 Ni permisos ni favoritos
48  }
49 
50 
51  private void frmAccesoMenus_Load(object sender, EventArgs e)
52  {
53  DataTable ldtMenus;
54  Boolean llHera = Convert.ToBoolean(EW_GLOBAL._GetVariable("wl_hera"));
55 
56 
57  //btDarAcceso.BackColor = Color.FromArgb(198, 245, 198);
58  btDarAcceso.Image = Resources.led_green_16;
59  btDarAcceso.TextImageRelation = TextImageRelation.ImageBeforeText;
60  btDarAcceso.TextAlign = ContentAlignment.MiddleRight;
61 
62  //btQuitarAcceso.BackColor = Color.FromArgb(245, 155, 155);
63  btQuitarAcceso.Image = Resources.led_red_16;
64  btQuitarAcceso.TextImageRelation = TextImageRelation.ImageBeforeText;
65  btQuitarAcceso.TextAlign = ContentAlignment.MiddleRight;
66 
67  _llLoading = true;
68 
69  ldtMenus = _oUser._GetMenus();
70  _dtUsuarios = _oUser._GetUsuariosByMenu();
71 
72  cmbMenu.ValueMember = "NOMBRE";
73  cmbMenu.DisplayMember = "NOMBREUPPER";
74  cmbMenu.DataSource = ldtMenus;
75  cmbMenu.SelectedIndex = 0;
76 
77  _RefrescarAcceso(Convert.ToString(cmbMenu.SelectedValue).Trim());
78 
79  _llLoading = false;
80 
81  }
82 
83  private void _RefrescarAcceso(String tcMenu)
84  {
85  DataTable ldtUsuarios;
86  IEnumerable<DataRow> loUsuarios = null;
87 
88  switch(ewradiobuttonGroup1._SelectedItemIndex)
89  {
90  case 2:
91 
92  loUsuarios = (from row in _dtUsuarios.AsEnumerable()
93  where row.Field<Int32>("ACCESO") == Convert.ToInt32(_TiposAccesosMenu.Completo) && Convert.ToString(row.Field<string>("MODULO")).Trim() == tcMenu
94  select row).OrderBy(r => r.Field<String>("USUARIO"));
95  break;
96  case 3:
97 
98  loUsuarios = (from row in _dtUsuarios.AsEnumerable()
99  where row.Field<Int32>("ACCESO") == Convert.ToInt32(_TiposAccesosMenu.Denegado) && Convert.ToString(row.Field<string>("MODULO")).Trim() == tcMenu
100  select row).OrderBy(r => r.Field<String>("USUARIO"));
101  break;
102  default:
103 
104  loUsuarios = (from row in _dtUsuarios.AsEnumerable()
105  where Convert.ToString(row.Field<string>("MODULO")).Trim() == tcMenu
106  select row).OrderBy(r=>r.Field<String>("USUARIO"));
107  break;
108  }
109 
110 
111  ldtUsuarios = (loUsuarios.Count() > 0) ? loUsuarios.CopyToDataTable() : new DataTable();
112  ewgridMenus.AutoGenerateColumns = false;
113  ewgridMenus.DataSource = ldtUsuarios;
114 
115  }
116 
117  private void ewradiobutton1_CheckedChanged(object sender, EventArgs e)
118  {
119  if (!_llLoading) _RefrescarAcceso(Convert.ToString(cmbMenu.SelectedValue).Trim());
120  }
121 
122  private void cmbMenu_SelectedIndexChanged(object sender, EventArgs e)
123  {
124  if (!_llLoading) _RefrescarAcceso(Convert.ToString(cmbMenu.SelectedValue).Trim());
125  }
126 
127  private void btDarAcceso_Click(object sender, EventArgs e)
128  {
129  if (!_llLoading) _EstablecerAcceso(true, Convert.ToString(cmbMenu.SelectedValue).Trim());
130  }
131 
132  private void btQuitarAcceso_Click(object sender, EventArgs e)
133  {
134  if (!_llLoading) _EstablecerAcceso(false, Convert.ToString(cmbMenu.SelectedValue).Trim());
135  }
136 
137  private void _EstablecerAcceso(Boolean tlAcceso, String tcMenu)
138  {
139  for (int i = 0; i < ewgridMenus.Rows.Count; i++)
140  {
141  if (Convert.ToBoolean(ewgridMenus.Rows[i].Cells[1].Value))
142  {
143  DataRow[] ldrows = _dtUsuarios.Select(String.Format("USUARIO = '{0}' AND MODULO = '{1}' ", ewgridMenus.Rows[i].Cells[0].Value, tcMenu));
144  if (ldrows.Length > 0)
145  {
146  foreach(DataRow ldrow in ldrows)
147  {
148  ldrow["ACCESO"] = tlAcceso;
149  }
150  }
151  }
152  }
153 
154  _RefrescarAcceso(tcMenu);
155  }
156 
157  private void btDocAceptar1_Click(object sender, EventArgs e)
158  {
159 
160  Usuario loUser;
161  DataRow[] ldRows = _dtUsuarios.Select("ACCESO <> ACCESOINI ");
162 
163  foreach (DataRow ldrow in ldRows)
164  {
165  loUser = new Usuario(Convert.ToString(ldrow["USUARIO"]));
166  loUser._Acceso_Menu(Convert.ToString(ldrow["MODULO"]), Convert.ToBoolean(ldrow["ACCESO"]) ? _TiposAccesosMenu.Completo : _TiposAccesosMenu.Denegado);
167  }
168  }
169 
170 
171  }
172 }
static System.Drawing.Bitmap led_red_16
Busca un recurso adaptado de tipo System.Drawing.Bitmap.
DataTable _GetMenus()
Obtener menus
Definition: clsUsuario.cs:6579
DataTable _GetUsuariosByMenu(string menu="")
Metodo que retorna un DataTable con todas los menus por cada usuario
Definition: clsUsuario.cs:6530
Clase de recurso fuertemente tipado, para buscar cadenas traducidas, etc.
frmAccesoMenus()
Constructor de la cla clase frmAccesoMenus
Clase FormDialog basada en FormBase
Definition: FormDialog.cs:17
_TiposAccesosMenu
Tipos de acceso a menus
Definition: clsFormul.cs:361
static System.Drawing.Bitmap led_green_16
Busca un recurso adaptado de tipo System.Drawing.Bitmap.
DefiniciĆ³n de la clase Usuario
Definition: clsUsuario.cs:113