protected void btnGuardar_OnClick(object sender, EventArgs e) { try { if (ddlTipoUsuario.SelectedIndex == BusinessVariables.ComboBoxCatalogo.Index) { throw new Exception("Seleccione un tipo de usuario.<br>"); } ValidaCapturaDatosGenerales(); //ucOrganizacion.ValidaCapturaOrganizacion(); //UcUbicacion.ValidaCapturaUbicacion(); ValidaCapturaRoles(); ValidaCapturaGrupos(); Usuario usuario = new Usuario { IdTipoUsuario = Convert.ToInt32(ddlTipoUsuario.SelectedValue), ApellidoPaterno = txtAp.Text.Trim(), ApellidoMaterno = txtAm.Text.Trim(), Nombre = txtNombre.Text.Trim(), DirectorioActivo = chkDirectoriActivo.Checked, IdPuesto = ddlPuesto.SelectedIndex == BusinessVariables.ComboBoxCatalogo.Index ? (int?)null : Convert.ToInt32(ddlPuesto.SelectedValue), Vip = chkVip.Checked, NombreUsuario = txtUserName.Text.Trim(), Password = ResolveUrl("~/ConfirmacionCuenta.aspx"), Habilitado = true }; List <ParametrosTelefonos> lstParamTelefonos = _servicioParametros.TelefonosObligatorios(Convert.ToInt32(ddlTipoUsuario.SelectedValue)); int telefonosObligatoriosCasa = lstParamTelefonos.Count(w => w.IdTipoTelefono == (int)BusinessVariables.EnumTipoTelefono.Casa); int telefonosObligatoriosCelular = lstParamTelefonos.Count(w => w.IdTipoTelefono == (int)BusinessVariables.EnumTipoTelefono.Celular); int telefonosObligatoriosOficina = lstParamTelefonos.Count(w => w.IdTipoTelefono == (int)BusinessVariables.EnumTipoTelefono.Oficina); int contadorCasa = 0; int contadorCelular = 0; int contadorOficina = 0; usuario.TelefonoUsuario = new List <TelefonoUsuario>(); foreach (RepeaterItem item in rptTelefonos.Items) { Label tipoTelefono = (Label)item.FindControl("lblTipotelefono"); TextBox numero = (TextBox)item.FindControl("txtNumero"); TextBox extension = (TextBox)item.FindControl("txtExtension"); bool obligatorio = false; if (tipoTelefono != null && numero != null && extension != null) { switch (Convert.ToInt32(tipoTelefono.Text.Trim())) { case (int)BusinessVariables.EnumTipoTelefono.Casa: if (contadorCasa < telefonosObligatoriosCasa) { obligatorio = true; contadorCasa++; } break; case (int)BusinessVariables.EnumTipoTelefono.Celular: if (contadorCelular < telefonosObligatoriosCelular) { obligatorio = true; contadorCelular++; } break; case (int)BusinessVariables.EnumTipoTelefono.Oficina: if (contadorOficina < telefonosObligatoriosOficina) { obligatorio = true; contadorOficina++; } break; } usuario.TelefonoUsuario.Add(new TelefonoUsuario { IdTipoTelefono = Convert.ToInt32(tipoTelefono.Text.Trim()), Numero = numero.Text.Trim(), Extension = extension.Text.Trim(), Obligatorio = obligatorio, Confirmado = false }); } } usuario.CorreoUsuario = new List <CorreoUsuario>(); foreach (TextBox correo in rptCorreos.Items.Cast <RepeaterItem>().Select(item => (TextBox)item.FindControl("txtCorreo")).Where(correo => correo != null & correo.Text.Trim() != string.Empty)) { usuario.CorreoUsuario.Add(new CorreoUsuario { Correo = correo.Text.Trim() }); } usuario.IdOrganizacion = UcConsultaOrganizacion.OrganizacionSeleccionada; usuario.IdUbicacion = UcConsultaUbicaciones.UbicacionSeleccionada; #region Rol usuario.UsuarioRol = new List <UsuarioRol>(); foreach (ListItem item in chklbxRoles.Items.Cast <ListItem>().Where(item => item.Selected)) { usuario.UsuarioRol.Add(new UsuarioRol { RolTipoUsuario = new RolTipoUsuario { IdRol = Convert.ToInt32(item.Value), IdTipoUsuario = Convert.ToInt32(ddlTipoUsuario.SelectedValue) } }); } #endregion Rol #region Grupo usuario.UsuarioGrupo = new List <UsuarioGrupo>(); foreach (RepeaterItem item in AsociarGrupoUsuario.GruposAsociados) { Label lblIdGrupoUsuario = (Label)item.FindControl("lblIdGrupoUsuario"); Label lblIdRol = (Label)item.FindControl("lblIdTipoSubGrupo"); Label lblIdSubGrupoUsuario = (Label)item.FindControl("lblIdSubGrupo"); if (lblIdGrupoUsuario != null && lblIdRol != null && lblIdSubGrupoUsuario != null) { usuario.UsuarioGrupo.Add(new UsuarioGrupo { IdUsuario = Alta ? 0 : IdUsuario, IdGrupoUsuario = Convert.ToInt32(lblIdGrupoUsuario.Text), IdRol = Convert.ToInt32(lblIdRol.Text), IdSubGrupoUsuario = lblIdSubGrupoUsuario.Text.Trim() == string.Empty ? (int?)null : Convert.ToInt32(lblIdSubGrupoUsuario.Text) }); } } #endregion Grupos if (Alta) { _servicioUsuarios.GuardarUsuario(usuario); } else { _servicioUsuarios.ActualizarUsuario(IdUsuario, usuario); } LimpiarPantalla(); if (OnAceptarModal != null) { OnAceptarModal(); } } catch (Exception ex) { if (_lstError == null) { _lstError = new List <string>(); } _lstError.Add(ex.Message); AlertaGeneral = _lstError; } }
protected void btnGuardar_OnClick(object sender, EventArgs e) { try { if (ddlTipoUsuario.SelectedIndex == BusinessVariables.ComboBoxCatalogo.Index) { throw new Exception("Seleccione un tipo de usuario.<br>"); } ValidaCapturaDatosGenerales(); ValidaCapturaRoles(); ValidaCapturaGrupos(); Usuario usuario = new Usuario { IdTipoUsuario = Convert.ToInt32(ddlTipoUsuario.SelectedValue), ApellidoPaterno = txtAp.Text.Trim(), ApellidoMaterno = txtAm.Text.Trim(), Nombre = txtNombre.Text.Trim(), DirectorioActivo = chkDirectoriActivo.Checked, IdPuesto = ddlPuesto.SelectedIndex == BusinessVariables.ComboBoxCatalogo.Index ? (int?)null : Convert.ToInt32(ddlPuesto.SelectedValue), Vip = chkVip.Checked, NombreUsuario = txtUserName.Text.Trim(), Password = ResolveUrl("~/ConfirmacionCuenta.aspx"), Habilitado = true }; usuario.TelefonoUsuario = new List <TelefonoUsuario>(); int contadorCelularesObligatorios = 0; int celularesObligatorios = _servicioParametros.TelefonosObligatorios(usuario.IdTipoUsuario).Count(w => w.IdTipoTelefono == (int)BusinessVariables.EnumTipoTelefono.Celular); foreach (RepeaterItem item in rptTelefonos.Items) { Label tipoTelefono = (Label)item.FindControl("lblTipotelefono"); TextBox numero = (TextBox)item.FindControl("txtNumero"); TextBox extension = (TextBox)item.FindControl("txtExtension"); if (tipoTelefono == null || numero == null || extension == null) { continue; } usuario.TelefonoUsuario.Add(new TelefonoUsuario { IdTipoTelefono = Convert.ToInt32(tipoTelefono.Text.Trim()), Numero = numero.Text.Trim(), Extension = extension.Text.Trim(), Obligatorio = celularesObligatorios > 0 && Convert.ToInt32(tipoTelefono.Text.Trim()) == (int)BusinessVariables.EnumTipoTelefono.Celular ? contadorCelularesObligatorios < celularesObligatorios : false, Confirmado = false }); if (Convert.ToInt32(tipoTelefono.Text.Trim()) == (int)BusinessVariables.EnumTipoTelefono.Celular) { contadorCelularesObligatorios++; } } usuario.CorreoUsuario = new List <CorreoUsuario>(); foreach (TextBox correo in rptCorreos.Items.Cast <RepeaterItem>().Select(item => (TextBox)item.FindControl("txtCorreo")).Where(correo => correo != null & correo.Text.Trim() != string.Empty)) { usuario.CorreoUsuario.Add(new CorreoUsuario { Correo = correo.Text.Trim() }); } usuario.IdOrganizacion = UcConsultaOrganizacion.OrganizacionSeleccionada; usuario.IdUbicacion = UcConsultaUbicaciones.UbicacionSeleccionada; #region Rol usuario.UsuarioRol = new List <UsuarioRol>(); foreach (ListItem item in chklbxRoles.Items.Cast <ListItem>().Where(item => item.Selected)) { usuario.UsuarioRol.Add(new UsuarioRol { RolTipoUsuario = new RolTipoUsuario { IdRol = Convert.ToInt32(item.Value), IdTipoUsuario = Convert.ToInt32(ddlTipoUsuario.SelectedValue) } }); } #endregion Rol #region Grupo usuario.UsuarioGrupo = new List <UsuarioGrupo>(); foreach (RepeaterItem item in AsociarGrupoUsuario.GruposAsociados) { Label lblIdGrupoUsuario = (Label)item.FindControl("lblIdGrupoUsuario"); Label lblIdRol = (Label)item.FindControl("lblIdTipoSubGrupo"); Label lblIdSubGrupoUsuario = (Label)item.FindControl("lblIdSubGrupo"); if (lblIdGrupoUsuario != null && lblIdRol != null && lblIdSubGrupoUsuario != null) { usuario.UsuarioGrupo.Add(new UsuarioGrupo { IdGrupoUsuario = Convert.ToInt32(lblIdGrupoUsuario.Text), IdRol = Convert.ToInt32(lblIdRol.Text), IdSubGrupoUsuario = lblIdSubGrupoUsuario.Text.Trim() == string.Empty ? (int?)null : Convert.ToInt32(lblIdSubGrupoUsuario.Text) }); } } #endregion Grupos _servicioUsuarios.GuardarUsuario(usuario); Response.Redirect("FrmUsuarios.aspx"); } catch (Exception ex) { if (_lstError == null) { _lstError = new List <string>(); } _lstError.Add(ex.Message); AlertaGeneral = _lstError; } }