private void FrmInsertUpdateRol_Load(object sender, EventArgs e) { this.Text = (insertMode) ? string.Format("{0} - {1}", "FrbaCommerce", "Nuevo rol") : string.Format("{0} - {1}", "FrbaCommerce", "Modificar rol"); //Obtengo todas las funcionalidades de la base de datos LstFuncionalidades.DataSource = FuncionalidadPersistance.GetAll(); LstFuncionalidades.ValueMember = "ID"; LstFuncionalidades.DisplayMember = "Descripcion"; ChkActivo.Checked = true; if (!insertMode) { //Esta trabajando en modo modificación TxtRol.Text = CurrentRole.Descripcion; ChkActivo.Checked = CurrentRole.Activo; //Obtengo la lista de funcionalidades a partir del rol recibido por parametro var featuresRol = FuncionalidadPersistance.GetByRole(CurrentRole); //Marco como chequeados unicamente las funcionalidades del rol for (int j = 0; j < LstFuncionalidades.Items.Count; j++) { var checkboxListItem = (Funcionalidad)LstFuncionalidades.Items[j]; if (featuresRol.Any(p => p.Descripcion == checkboxListItem.Descripcion)) { LstFuncionalidades.SetItemChecked(j, true); } else { LstFuncionalidades.SetItemChecked(j, false); } } } }
private void LblGrabar_Click(object sender, EventArgs e) { try { #region Validaciones var exceptionMessage = string.Empty; if (string.IsNullOrEmpty(TxtUsuario.Text)) { throw new Exception("El usuario no puede ser vacío."); } if (string.IsNullOrEmpty(TxtContrasena.Text)) { throw new Exception("La contraseña no puede ser vacía."); } if (UsuarioPersistance.GetByUsername(TxtUsuario.Text) != null) { exceptionMessage += Environment.NewLine + "Ya existe un usuario con el nombre ingresado."; } if (!string.IsNullOrEmpty(exceptionMessage)) { throw new Exception(exceptionMessage); } #endregion #region Inserto el nuevo usuario var user = new Usuario(); user.Username = TxtUsuario.Text; user.Password = SHA256Helper.Encode(TxtContrasena.Text); var dialogAnswer = MessageBox.Show("Esta seguro que quiere insertar el nuevo usuario?", "Atencion", MessageBoxButtons.YesNo); if (dialogAnswer == DialogResult.Yes) { using (var transaction = DataBaseManager.Instance().Connection.BeginTransaction(IsolationLevel.Serializable)) { if (_abmEmpresa || _abmCliente) { user = UsuarioPersistance.InsertUserTemporal(user, transaction); } else { user = UsuarioPersistance.InsertUser(user, transaction); } Rol selectedRol = (Rol)CboRoles.SelectedItem; RolPersistance.InsertUserRole(user, selectedRol, transaction); if (!_abmEmpresa && !_abmCliente) { //Cargo los datos en sesion SessionManager.CurrentUser = user; SessionManager.CurrentRol = selectedRol; SessionManager.CurrentRol.Funcionalidades = FuncionalidadPersistance.GetByRole(SessionManager.CurrentRol, transaction); } switch (selectedRol.Descripcion) { case "Cliente": this.Hide(); var frmABMInsertUpdateCliente = new FrmABMInsertUpdateCliente(transaction, _abmCliente, user); frmABMInsertUpdateCliente.ShowDialog(); break; case "Empresa": this.Hide(); var frmABMInsertUpdateEmpresa = new FrmABMInsertUpdateEmpresa(transaction, _abmEmpresa, user); frmABMInsertUpdateEmpresa.ShowDialog(); break; default: transaction.Commit(); this.Hide(); var frmHome = new FrmHome(); frmHome.ShowDialog(); break; } } } #endregion } catch (Exception ex) { MessageBox.Show(ex.Message, "Atención"); } }