/// <summary>
        /// Arma el objeto usuario
        /// </summary>
        /// <param name="esActualizacion"></param>
        /// <returns></returns>
        private sm_Usuario construirUsuario(bool esActualizacion)
        {
            sm_Usuario usuario = new sm_Usuario();

            usuario.idTipoIdentificacion = Convert.ToInt32(cboTipoIdentificacion.SelectedValue);
            usuario.numeroIdentificacion = txtNumeroIdentificacion.Text.Trim();
            usuario.usuario     = txtUsuario.Text.Trim();
            usuario.idEmpresa   = Convert.ToInt32(cboEmpresa.SelectedValue);
            usuario.contrasena  = txtContrasena.Text;
            usuario.createdBy   = Session["login"].ToString();
            usuario.createdDate = DateTime.Now;
            if (cboEstado.SelectedValue.Equals("1"))//Activo
            {
                usuario.estado = true;
            }
            else
            {
                usuario.estado = false;
            }
            if (esActualizacion)
            {
                usuario.idUsuario   = Convert.ToInt32(hdfIdUsuario.Value);
                usuario.createdBy   = hdfCreatedBy.Value;
                usuario.createdDate = Convert.ToDateTime(hdfCreatedDate.Value);
                usuario.updatedBy   = Session["login"].ToString();
                usuario.updatedDate = DateTime.Now;
            }
            return(usuario);
        }
 /// <summary>
 /// Guarda entidad usuario
 /// </summary>
 /// <param name="usuario"></param>
 /// <returns></returns>
 public bool GuardarUsuario(sm_Usuario usuario)
 {
     using (unitOfWork = new UnidadTrabajo())
     {
         unitOfWork.UsuarioRepository.Insert(usuario);
         unitOfWork.SaveChanges();
     }
     return(true);
 }
 /// <summary>
 /// Actualizar objeto persona, usuario
 /// </summary>
 /// <param name="programa"></param>
 /// <returns></returns>
 public bool ActualizarUsuario(sm_Persona persona, sm_Usuario usuario)
 {
     using (unitOfWork = new UnidadTrabajo())
     {
         unitOfWork.PersonaRepository.Update(persona);
         if (usuario.contrasena.Equals(string.Empty))
         {
             unitOfWork.UsuarioRepository.ActualizarUsuarioSinContrasena(usuario);
         }
         else
         {
             unitOfWork.UsuarioRepository.Update(usuario);
         }
         unitOfWork.SaveChanges();
     }
     return(true);
 }
        protected void btnAgregarUsuario_Click(object sender, EventArgs e)
        {
            try
            {
                string campos = verificarCampos();

                if (campos.Equals(string.Empty))
                {
                    adminNegocio = new AdministracionNegocio();
                    IList <Usuario> existeUsuario = adminNegocio.ListarUsuarios(Convert.ToInt32(cboTipoIdentificacion.SelectedValue),
                                                                                txtNumeroIdentificacion.Text.Trim(), 1);
                    if (existeUsuario.Count == 0)//No existe el usuario
                    {
                        sm_Persona persona = construirPersona(false);
                        sm_Usuario usuario = construirUsuario(false);
                        adminNegocio.GuardarPersona(persona);
                        if (chkMedicoTratante.Checked)//Si es medico tratante sin usuario del sistema no debe guardar opciones rol
                        {
                            sm_PersonalMedico medico = construirPersonalMedico();
                            adminNegocio.GuardarMedico(medico);
                        }
                        else//Si es un usuario del sistema
                        {
                            adminNegocio.GuardarUsuario(usuario);
                            int     tipoID              = (int)usuario.idTipoIdentificacion;
                            string  numID               = usuario.numeroIdentificacion;
                            Usuario nuevoUsuario        = adminNegocio.ListarUsuarios(tipoID, numID, 1).FirstOrDefault();
                            IList <sm_UsuarioRol> roles = construirUsuarioRol(nuevoUsuario.idUsuario);
                            foreach (sm_UsuarioRol ur in roles)
                            {
                                adminNegocio.GuardarRol(ur);
                            }
                            var coleccionRoles = cboRol.CheckedItems;
                            foreach (var item in coleccionRoles)//sE REVISA QUE DENTRO DE LOS ROLES SELECCIONADOS ESTE EL ROL MEDICO PARA AGREGARLO A MEDICOS
                            {
                                if (item.Text.ToUpper().Equals("MEDICO"))
                                {
                                    sm_PersonalMedico medico = construirPersonalMedico();
                                    adminNegocio.GuardarMedico(medico);
                                    break;
                                }
                            }
                        }
                        limpiarCampos();
                        RadGridUsuarios.Rebind();
                    }
                    else
                    {
                        MostrarMensaje("La persona ya existe", false);
                    }
                }
                else
                {
                    MostrarMensaje(campos, false);
                }
            }
            catch (Exception ex)
            {
                MostrarMensaje("Error: " + ex.Message, true);
            }
        }