Exemplo n.º 1
0
        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;
            }
        }
Exemplo n.º 2
0
        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;
            }
        }