示例#1
0
 protected void BtnAceptar_Click(object sender, EventArgs e)
 {
     if (Txtusuario.Text != "" && Txtpass.Text != "")
     {
         EntUsuario obj = NegUsuario.Login(Txtusuario.Text, Txtpass.Text);
         if (obj != null)
         {
             Session["usuario"] = obj;
             Session["perfil"]  = obj;
             Response.Redirect("FrmPrincipal.aspx");
         }
         else
         {
             LblError.Text    = "Usuario o Contraseña invalido";
             LblError.Visible = true;
         }
     }
     else
     {
         LblError.Text    = "Falta agregar datos";
         LblError.Visible = true;
     }
 }
        public int InsUpdUsuarios(EntUsuario Dobj, string opc, string tipo)
        {
            Respuesta <int> res = new Respuesta <int>();

            DBParameterCollection pcol = ParamConfiguracionADE.LLenaUsuarios(Dobj, opc, tipo);

            using (dr = db.ExecuteDataReader(Procedimientos.SpUsuarios, pcol, conm, tranm, CommandType.StoredProcedure))
            {
                while (dr.Read())
                {
                    res = ExisteError(dr);
                    if (!res.EsExitoso)
                    {
                        throw new Exception(res.MensajeUsuario);
                    }
                    else
                    {
                        return(res.TotalRegistros);
                    }
                }
            }
            return(0);
        }
示例#3
0
        public static DBParameterCollection LLenaUsuarios(EntUsuario obj, string opc, string tipo)
        {
            DBParameter p1  = new DBParameter("popc", opc, System.Data.DbType.String);
            DBParameter p2  = new DBParameter("poptipo", tipo);
            DBParameter p3  = new DBParameter("IdUsuario", obj.IdUsuario, System.Data.DbType.Int32);
            DBParameter p4  = new DBParameter("IdSistema", obj.IdSistema, System.Data.DbType.Int32);
            DBParameter p5  = new DBParameter("Usuario", obj.Usuario);
            DBParameter p6  = new DBParameter("nombre", obj.Nombre);
            DBParameter p7  = new DBParameter("clave", obj.Clave);
            DBParameter p8  = new DBParameter("origen", obj.Origen);
            DBParameter p9  = new DBParameter("Activo", obj.Activo, System.Data.DbType.Int32);
            DBParameter p10 = new DBParameter("IdUsuarioRegistro", obj.IdUsuarioRegistro, System.Data.DbType.Int32);
            DBParameter p11 = new DBParameter("IdUsuarioModifico", obj.IdUsuarioModifico, System.Data.DbType.Int32);
            DBParameter p12 = new DBParameter("IdPerfil", obj.IdPerfil, System.Data.DbType.Int32);
            DBParameter p13 = new DBParameter("IdArea", obj.IdArea, System.Data.DbType.Int32);
            DBParameter p14 = new DBParameter("CorreoElectronico", obj.CorreoElectronico);

            DBParameter[]         parms = new DBParameter[] { p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14 };
            DBParameterCollection pcol  = new DBParameterCollection();

            pcol.AddRange(parms);
            return(pcol);
        }
示例#4
0
        public IMDResponse <EntUsuario> CCreateUsuario([FromBody] EntUsuario entUsuario)
        {
            IMDResponse <EntUsuario> response = new IMDResponse <EntUsuario>();

            string metodo = nameof(this.CCreateModulo);

            logger.Info(IMDSerialize.Serialize(67823458338139, $"Inicia {metodo}([FromBody]EntUsuario entUsuario)", entUsuario));

            try
            {
                BusUsuario busUsuario = new BusUsuario();
                response = busUsuario.BSaveUsuario(entUsuario, true);
            }
            catch (Exception ex)
            {
                response.Code    = 67823458122133;
                response.Message = "Ocurrió un error inesperado en el servicio al guardar el usuario.";

                logger.Error(IMDSerialize.Serialize(67823458338139, $"Error en {metodo}([FromBody]EntUsuario entUsuario): {ex.Message}", entUsuario, ex, response));
            }

            return(response);
        }
示例#5
0
        /*********************
         * MÉTODO DE LIMPIEZA *
         **********************/

        protected void Limpiar()
        {
            EntUsuario.Text    = "";
            EntContrasena.Text = "";
            EntNombre.Text     = "";
            EntApellido.Text   = "";
            EntCedula.Text     = "";
            EntFechaIng.Text   = "";
            EntCodigoReg.Text  = "";
            EntEmail.Text      = "";
            EntPista.Text      = "";
            EntUsuario.ChildFocus(DirectionType.Up);
            EntCodigoReg.Text      = us.GetCodigo();
            EntFechaIng.Text       = DateTime.Now.ToString("dd/MM/yyyy");
            RbAdministrador.Active = true;
            cod.NuevoCod(EntCodigo, "A");
            ValidarBotones.Enabled    = true;
            BtnModificar.Sensitive    = false;
            BtnEliminar.Sensitive     = false;
            RbAdministrador.Sensitive = true;
            RbVendedor.Sensitive      = true;
            RbActualizador.Sensitive  = true;
        }
示例#6
0
        public List <EntUsuario> ObtenerTodos()
        {
            List <EntUsuario> Lista   = new List <EntUsuario>();
            EntUsuario        entidad = null;

            try
            {
                AbrirConexion();
                StringBuilder CadenaSql = new StringBuilder();
                var           sql       = "SELECT a.id_usuario, a.usuario, a.password, a.id_rol, b.desc_rol, a.activo FROM informix.usuarios a left join informix.roles b on a.id_rol=b.id_rol";
                IfxCommand    cmd       = new IfxCommand(sql, Conexion);
                using (var dr = cmd.ExecuteReader())
                {
                    while (dr.Read())
                    {
                        entidad            = new EntUsuario();
                        entidad.id_usuario = int.Parse(dr["id_usuario"].ToString());
                        entidad.usuario    = dr["usuario"].ToString();
                        entidad.password   = dr["password"].ToString();
                        entidad.id_rol     = int.Parse(dr["id_rol"].ToString());
                        entidad.desc_rol   = dr["desc_rol"].ToString();
                        entidad.activo     = bool.Parse(dr["activo"].ToString());
                        entidad.s_activo   = bool.Parse(dr["activo"].ToString()) ? "Activo" : "Inactivo";
                        Lista.Add(entidad);
                    }
                }
            }
            catch (Exception exc)
            {
                throw exc;
            }
            finally
            {
                CerrarConexion();
            }
            return(Lista);
        }
示例#7
0
        public EntUsuario Obtener(int id)
        {
            EntUsuario entidad = null;

            try
            {
                AbrirConexion();
                StringBuilder CadenaSql = new StringBuilder();

                IfxCommand cmd = new IfxCommand(string.Empty, Conexion);
                cmd.CommandText = "SELECT a.id_usuario, a.usuario, a.password, a.id_rol, b.desc_rol, a.activo FROM informix.usuarios a left join informix.roles b on a.id_rol=b.id_rol WHERE a.id_usuario=?";
                cmd.Parameters.Add(new IfxParameter()).Value = id;
                using (var dr = cmd.ExecuteReader())
                {
                    if (dr.Read())
                    {
                        entidad            = new EntUsuario();
                        entidad.id_usuario = int.Parse(dr["id_usuario"].ToString());
                        entidad.usuario    = dr["usuario"].ToString();
                        entidad.password   = dr["password"].ToString();
                        entidad.id_rol     = int.Parse(dr["id_rol"].ToString());
                        entidad.desc_rol   = dr["desc_rol"].ToString();
                        entidad.activo     = bool.Parse(dr["activo"].ToString());
                        entidad.s_activo   = bool.Parse(dr["activo"].ToString()) ? "Activo" : "Inactivo";
                    }
                }
            }
            catch (Exception exc)
            {
                throw exc;
            }
            finally
            {
                CerrarConexion();
            }
            return(entidad);
        }
示例#8
0
        public ActionResult getLogin(Usuarios model)
        {
            SrvLogin   oSrvLogin  = new SrvLogin();
            EntUsuario entSession = new EntUsuario();
            Usuarios   sesion     = oSrvLogin.IsLogin(model);

            if (sesion != null)
            {
                HttpCookie InicioSesion = new HttpCookie("InicioSesion");
                InicioSesion.Value = "1";
                System.Web.HttpContext.Current.Response.Cookies.Add(InicioSesion);
                if (sesion.usuario.ToLower() == model.usuario.ToLower() && sesion.contrasenia == model.contrasenia)
                {
                    if (IniciarSesion(entSession, sesion))
                    {
                        if (entSession == null)
                        {
                            return(RedirectToAction("Index", "Login"));
                        }
                        else
                        {
                            return(RedirectToAction("Index", "Administrador"));
                        }
                    }
                }
                else
                {
                    ViewBag.Msj = "No fue posible iniciar sesion por favor intente de nuevo";
                }
                return(View("Index"));
            }
            else
            {
                ViewBag.Msj = "No fue posible iniciar sesion por favor intente de nuevo";
                return(View("Index"));
            }
        }
示例#9
0
 public ActionResult Login(EntUsuario usuario)
 {
     try
     {
         if (comandoU.Entrar(usuario) == true)
         {
             int        id = comandoU.Obtener(usuario.NomUsuario);
             EntUsuario u  = new EntUsuario();
             u = comandoU.Obtener(id);
             Session["usuario"] = u;
             return(RedirectToAction("Datos"));
         }
         else
         {
             TempData["error"] = "Usuario o Contraseña Invalido";
             return(View());
         }
     }
     catch (Exception error)
     {
         TempData["error"] = error.Message;
         return(View());
     }
 }
示例#10
0
        public void LOGUEO_USUARIO(EntUsuario oEntUsuario)
        {
            try
            {
                using (SqlConnection conex = new SqlConnection(datConexion.cad_con))
                {
                    using (SqlCommand cmd = new SqlCommand("LOGUEO_USUARIO", conex))
                    {
                        conex.Open();
                        cmd.Parameters.Add("@usuario", SqlDbType.VarChar, 200).Value = oEntUsuario.Usuario;
                        cmd.Parameters.Add("@pass", SqlDbType.VarChar, 200).Value    = oEntUsuario.Password;

                        cmd.CommandType = CommandType.StoredProcedure;
                        cmd.ExecuteNonQuery();

                        conex.Close();
                    }
                }
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }
示例#11
0
 public void AlterarSenha(EntUsuario objUsuario, Int32 IdUsuario)
 {
     using (DbConnection connection = db.CreateConnection())
     {
         connection.Open();
         DbTransaction transaction = connection.BeginTransaction();
         try
         {
             dalUsuario.AlterarSenha(objUsuario, transaction, db);
             SaveLog(IdUsuario, EntLog.LOG_EDITAR, "Usuário", objUsuario.IdUsuario, objUsuario, transaction, db);
             transaction.Commit();
         }
         catch (Exception ex)
         {
             transaction.Rollback();
             SaveLog(IdUsuario, EntLog.LOG_ERRO, "Usuário", objUsuario.IdUsuario, objUsuario, ex.Message, db, connection);
             throw;
         }
         finally
         {
             connection.Close();
         }
     }
 }
示例#12
0
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                if (Request.QueryString["folio"] != null)
                {
                    string perfill = "";

                    EntUsuario objj   = (EntUsuario)Session["usuario"];
                    EntUsuario objsss = (EntUsuario)Session["perfil"];
                    if (objj != null)
                    {
                        perfill = objsss.perfil;
                    }

                    int           folio = Convert.ToInt32(Request.QueryString["folio"]);
                    EntIngenieros obj   = NegIngenieros.buscarreporte(folio);
                    TxtUsuario.Text = obj.reporta;

                    List <EntUbicacion> lista = NegUbicacion.listarubicacion();
                    foreach (EntUbicacion c in lista)
                    {
                        ListItem li = new ListItem(c.ubicacion, c.idubicacion.ToString());
                        Cmbubicacion.Items.Add(li);
                    }
                    Cmbubicacion.SelectedValue = obj.idubicacion.ToString();

                    string saberarea = Cmbubicacion.SelectedItem.Text;
                    if (saberarea != "CEDI" | saberarea != "Corporativo")
                    {
                        saberarea = "Sucursal";
                    }

                    List <EntUbicacion> lis = NegUbicacion.areastrabaall(saberarea);
                    foreach (EntUbicacion r in lis)
                    {
                        ListItem lii = new ListItem(r.area, r.idarea.ToString());
                        Cmbcentrotrabajo.Items.Add(lii);
                    }
                    Cmbcentrotrabajo.SelectedValue = obj.area;
                    Cmbnumero.Text = Convert.ToString(obj.numeromaquina);


                    List <EntAtienden> listar = NegIngenieros.buscarati();
                    foreach (EntAtienden c in listar)
                    {
                        ListItem li = new ListItem(c.nombre, c.idingenieros.ToString());
                        Cmbingenieros.Items.Add(li);
                    }
                    Cmbingenieros.SelectedValue = obj.idingenieros.ToString();

                    List <EntDispositivos> listaa = NegIngenieros.listardispositivos();
                    foreach (EntDispositivos c in listaa)
                    {
                        ListItem li = new ListItem(c.descripcion, c.iddispositivo.ToString());
                        Cmbdispositivo.Items.Add(li);
                    }
                    Cmbdispositivo.SelectedValue = obj.iddispositivo.ToString();

                    Txtinicial.Text       = Convert.ToString(obj.fechainicio);
                    TxtSolicitud.Text     = obj.solicitud;
                    Txtobservaciones.Text = obj.observaciones;
                    Txtingatendio.Text    = obj.atendioreporte;
                    Txtsolucion.Text      = obj.solucion;
                    Txtusuariocerro.Text  = obj.cerroreporte;
                    Txtfechaasignado.Text = Convert.ToString(obj.fechaasignado);
                    if (perfill != "SOPORTE")
                    {
                    }
                    else
                    {
                        Btnasignar.Enabled = false;
                    }
                }
                else
                {
                    Response.Redirect("FrmPrincipal.aspx");
                }
            }
        }
示例#13
0
 public static int agregarusuarios(EntUsuario obj)
 {
     return(DaoPerfiles.agregarusuarios(obj));
 }
示例#14
0
 public void LOGUEO_USUARIO(EntUsuario oEntUsuario)
 {
     objDatUsaurio.LOGUEO_USUARIO(oEntUsuario);
 }
示例#15
0
 public void INS_USUARIO(EntUsuario oEntUsuario, int opc)
 {
     objDatUsaurio.INS_USUARIO(oEntUsuario, opc);
 }
示例#16
0
 public bool Actualizar(EntUsuario Entidad)
 {
     return(PerUsuarios.Update(Entidad));
 }
示例#17
0
 public bool Insertar(EntUsuario Entidad)
 {
     return(PerUsuarios.Insert(Entidad));
 }
示例#18
0
        /// <summary>
        /// Iniciar sesión en el portal administrativo/Callcenter
        /// </summary>
        /// <param name="sUsuario"></param>
        /// <param name="sPassword"></param>
        /// <returns></returns>
        public IMDResponse <EntUsuario> BLogin(string sUsuario, string sPassword)
        {
            IMDResponse <EntUsuario> response = new IMDResponse <EntUsuario>();

            string metodo = nameof(this.BLogin);

            logger.Info(IMDSerialize.Serialize(67823458374658, $"Inicia {metodo}(string sUsuario, string sPassword)", sUsuario, sPassword));

            try
            {
                sPassword = BEncodePassword(sPassword);

                IMDResponse <DataTable> dtUsuario = datUsuario.DLogin(sUsuario, sPassword);

                if (dtUsuario.Code != 0)
                {
                    return(dtUsuario.GetResponse <EntUsuario>());
                }

                if (dtUsuario.Result.Rows.Count != 1)
                {
                    response.Code    = 78772637586;
                    response.Message = "Usuario o contraseña incorrecta.";
                    return(response);
                }

                EntUsuario entUsuario = new EntUsuario();

                foreach (DataRow item in dtUsuario.Result.Rows)
                {
                    IMDDataRow dr = new IMDDataRow(item);

                    entUsuario.iIdUsuario    = dr.ConvertTo <int>("iIdUsuario");
                    entUsuario.iIdTipoCuenta = dr.ConvertTo <int>("iIdTipoCuenta");
                    entUsuario.sTipoCuenta   = dr.ConvertTo <string>("sTipoCuenta");
                    entUsuario.iIdPerfil     = dr.ConvertTo <int>("iIdPerfil");
                    entUsuario.sPerfil       = dr.ConvertTo <string>("sPerfil");
                    entUsuario.sUsuario      = dr.ConvertTo <string>("sUsuario");
                    //entUsuario.sPassword = dr.ConvertTo<string>("sPassword");
                    entUsuario.sNombres          = dr.ConvertTo <string>("sNombres");
                    entUsuario.sApellidoPaterno  = dr.ConvertTo <string>("sApellidoPaterno");
                    entUsuario.sApellidoMaterno  = dr.ConvertTo <string>("sApellidoMaterno");
                    entUsuario.dtFechaNacimiento = dr.ConvertTo <DateTime>("dtFechaNacimiento");
                    entUsuario.sTelefono         = dr.ConvertTo <string>("sTelefono");
                    entUsuario.sCorreo           = dr.ConvertTo <string>("sCorreo");
                    entUsuario.sDomicilio        = dr.ConvertTo <string>("sDomicilio");
                    entUsuario.iIdUsuarioMod     = dr.ConvertTo <int>("iIdUsuarioMod");
                    entUsuario.bActivo           = dr.ConvertTo <bool>("bActivo");
                    entUsuario.bBaja             = dr.ConvertTo <bool>("bBaja");
                }

                response.Result  = entUsuario;
                response.Message = "Inicio de sesión existoso.";
            }
            catch (Exception ex)
            {
                response.Code    = 67823458375435;
                response.Message = "Ocurrió un error inesperado al iniciar sesión";

                logger.Error(IMDSerialize.Serialize(67823458375435, $"Error en {metodo}(string sUsuario, string sPassword): {ex.Message}", sUsuario, sPassword, ex, response));
            }
            return(response);
        }
示例#19
0
        /// <summary>
        /// Envía las credenciales al correo del usuario
        /// </summary>
        /// <param name="psCorreo"></param>
        /// <param name="enumEmail"></param>
        /// <param name="users"></param>
        /// <returns></returns>
        public IMDResponse <bool> BEnviarCredenciales(string psCorreo, EnumEmailActionPass enumEmail, List <string> users = null)
        {
            IMDResponse <bool> response = new IMDResponse <bool>();

            string metodo = nameof(this.BEnviarCredenciales);

            logger.Info(IMDSerialize.Serialize(67823458631845, $"Inicia {metodo}(string psCorreo)", psCorreo));

            try
            {
                if (string.IsNullOrWhiteSpace(psCorreo))
                {
                    response.Code    = -23746876326;
                    response.Message = "El correo electrónico es requerido.";
                    return(response);
                }

                //Obtener datos del usuario
                IMDResponse <List <EntUsuario> > resGetUser = this.BObtenerUsuario(psCorreo: psCorreo);
                if (resGetUser.Code != 0)
                {
                    return(resGetUser.GetResponse <bool>());
                }

                if (resGetUser.Result.Count < 1)
                {
                    response.Code    = -8767263467;
                    response.Message = "El correo electrónico no se encuentra registrado en el sistema";
                    return(response);
                }

                string            cuenta       = string.Empty;
                List <EntUsuario> currentUsers = resGetUser.Result;
                if (users != null)
                {
                    currentUsers = currentUsers.Where(x => users.Contains(x.sUsuario)).ToList();
                }

                //Armar la lista de usuarios enlazados al correo electrónico
                foreach (EntUsuario user in currentUsers)
                {
                    if (user.bAcceso == null || user.bAcceso == false || !user.bActivo || user.bBaja)
                    {
                        continue;
                    }
                    string pass = this.BDeCodePassWord(user.sPassword);
                    cuenta += $"<tr class=\"font-table bold small center table-border-b\"><td>{user.sTipoCuenta}</td><td>{user.sUsuario}</td><td>{pass}</td></tr>";
                }

                if (string.IsNullOrWhiteSpace(cuenta))
                {
                    response.Code    = -834787687623;
                    response.Message = "No se encontraron cuentas activas para el usuario.";
                    return(response);
                }

                EntUsuario entUsuario = resGetUser.Result.First();

                //Armar asunto y cupero del correo
                string asunto = string.Empty;
                string titulo = string.Empty;
                string header = string.Empty;
                string footer = string.Empty;
                switch (enumEmail)
                {
                case EnumEmailActionPass.Crear:
                    asunto = "Meditoc - Credenciales de acceso";
                    titulo = "Bienvenido a Meditoc Call Center";
                    header = "Se han creado las credenciales de acceso al portal de MeditocCallCenter:";
                    footer = "Le sugerimos cambiar la contraseña en su próximo ingreso al portal de MeditocCallCenter.";
                    break;

                case EnumEmailActionPass.Modificar:
                    asunto = "Meditoc - Cambio en las credenciales";
                    titulo = "Modificación en las credenciales de acceso";
                    header = "Se han modificado las credenciales de acceso al portal de MeditocCallCenter:";
                    footer = "Si no realizó esta acción, cambie sus credenciales en su próximo ingreso o contacte a su administrador.";
                    break;

                case EnumEmailActionPass.Recuperar:
                    asunto = "Meditoc - Recuperación de cuenta";
                    titulo = "Recuperación de la cuenta";
                    header = "Se ha solicitado la recuperación de las credenciales de acceso al portal de MeditocCallCenter:";
                    footer = "Le sugerimos cambiar la contraseña en su próximo ingreso al portal de MeditocCallCenter.";
                    break;

                default:
                    break;
                }

                //Preparar correo
                string plantillaBody = "<!DOCTYPE html><html><head><meta charset=\"utf-8;\" /><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\" /><link href=\"https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500&display=swap\" rel=\"stylesheet\" /><style>body {font-family: Roboto, \"Segoe UI\", Tahoma, Geneva, Verdana, sans-serif;margin: 0;}.center {text-align: center !important;}.light {font-weight: 300;}.normal {font-weight: normal;}.bold {font-weight: 500;}.small {font-size: 12px;}.large {font-size: 15px;}.font-default {color: #707070;}.font-secondary {color: #115c8a;}.font-unset {color: #ffffff;}.font-table {color: #878787;}.table {margin: auto;width: 100%;max-width: 800px;border: 1px solid #dddddd;border-spacing: 0px;border-collapse: 0px;}.table td {padding: 6px 0px;}.logo-head {background-color: #11b6ca;padding: 5px 0px;}.table-content {margin: auto;width: 90%;border-collapse: collapse;}.table-detail {margin: auto;width: 100%;border-collapse: collapse;}.table-detail td {padding: 8px;}.head-detail {background-color: #115c8a;}.divider {height: 1px;border: 0;background-color: #989898;}.link {text-decoration: none;}.link:hover {text-decoration: underline;}.link-none {text-decoration: none;}.table-border-b td {border-bottom: 1px solid #ccc;}</style></head><body><table class=\"table\"><tr><td class=\"logo-head center\"><img alt=\"logo-meditoc\" src=\"sLogoMeditoc\" height=\"50px\" /></td></tr><tr><td><table class=\"table-content\"><tr><td class=\"center\"><span class=\"font-default bold large\">data.titulo</span></td></tr><tr class=\"center\"><td><span class=\"font-default normal large\">data.header</span></td></tr><tr><td><table class=\"table-detail\"><tr class=\"head-detail font-unset bold small center\"><td colspan=\"3\">ACCESO</td></tr><tr><td><table class=\"table-detail\"><thead><tr class=\"font-table bold small font-secondary\"><th>Tipo de cuenta</th><th>Usuario</th><th>Contraseña</th></tr></thead><tbody>data.cuenta</tbody></table></td></tr></table></td></tr><tr class=\"center\"><td><p><span class=\"font-default normal large\">data.footer</span></p></td></tr><tr><td><hr class=\"divider\" /></td></tr><tr><td><span class=\"font-default light small\">De conformidad con la ley federal de protección de datos personales en posesión delos particulares, ponemos a su disposición nuestro&nbsp;<a href=\"sAvisoPrivacidad\" class=\"link font-secondary normal\"> Aviso de Privacidad </a>&nbsp;y&nbsp;<a href=\"sTerminosCondiciones\" class=\"link font-secondary normal\"> Términos y Condiciones. </a></span></td></tr></table></td></tr></table></body></html>";

                plantillaBody = plantillaBody.Replace("data.cuenta", cuenta);
                plantillaBody = plantillaBody.Replace("data.titulo", titulo);
                plantillaBody = plantillaBody.Replace("data.header", header);
                plantillaBody = plantillaBody.Replace("data.footer", footer);
                plantillaBody = plantillaBody.Replace("sLogoMeditoc", ConfigurationManager.AppSettings["sLogoMeditoc"]);
                plantillaBody = plantillaBody.Replace("sAvisoPrivacidad", ConfigurationManager.AppSettings["sAvisoDePrivacidad"]);
                plantillaBody = plantillaBody.Replace("sTerminosCondiciones", ConfigurationManager.AppSettings["sTerminosYCondiciones"]);

                //Enviar correo
                BusCorreo busCorreo = new BusCorreo();
                busCorreo.BEnviarEmail("", "", "", asunto, plantillaBody, entUsuario.sCorreo, "", "");

                response.Code    = 0;
                response.Result  = true;
                response.Message = "Las credenciales se han enviado al correo proporcionado.";
            }
            catch (Exception ex)
            {
                response.Code    = 67823458632622;
                response.Message = "Ocurrió un error inesperado al recuperar la contraseña. Intenta más tarde.";

                logger.Error(IMDSerialize.Serialize(67823458632622, $"Error en {metodo}(string psCorreo): {ex.Message}", psCorreo, ex, response));
            }
            return(response);
        }
示例#20
0
        /// <summary>
        /// Agrega/actualiza/elimina un usuario de la base
        /// </summary>
        /// <param name="entUsuario"></param>
        /// <param name="bEnviarCredenciales"></param>
        /// <returns></returns>
        public IMDResponse <EntUsuario> BSaveUsuario(EntUsuario entUsuario, bool bEnviarCredenciales = false)
        {
            IMDResponse <EntUsuario> response = new IMDResponse <EntUsuario>();

            string metodo = nameof(this.BSaveUsuario);

            logger.Info(IMDSerialize.Serialize(67823458344355, $"Inicia {metodo}(EntUsuario entUsuario)", entUsuario));

            try
            {
                if (entUsuario == null)
                {
                    response.Code    = 67823458345132;
                    response.Message = "No se ingresó información del usuario.";
                    return(response);
                }

                if (entUsuario.bActivo == true && entUsuario.bBaja == false)
                {
                    //Validar datos y encriptar contraseña sólo si se trata de un guardado o actualización
                    IMDResponse <bool> resValidaDatos = BValidaDatos(entUsuario);
                    if (!resValidaDatos.Result)
                    {
                        return(resValidaDatos.GetResponse <EntUsuario>());
                    }
                    if (!string.IsNullOrWhiteSpace(entUsuario.sPassword))
                    {
                        entUsuario.sPassword = BEncodePassword(entUsuario.sPassword);
                    }
                }

                IMDResponse <DataTable> resSaveUsuario = datUsuario.DSaveUsuario(entUsuario);
                if (resSaveUsuario.Code != 0)
                {
                    return(resSaveUsuario.GetResponse <EntUsuario>());
                }

                //Enviar credenciales por correo sólo si es un nuevo usuario, la contraseña ha sido actualizada, o se ha pasado de un estado SIN ACCESO a CON ACCESO
                if (bEnviarCredenciales && (entUsuario.iIdUsuario == 0 || !string.IsNullOrWhiteSpace(entUsuario.sPassword)))
                {
                    List <string> users = new List <string> {
                        entUsuario.sUsuario
                    };
                    IMDResponse <bool> resEnviarCredenciales = this.BEnviarCredenciales(entUsuario.sCorreo, entUsuario.iIdUsuario == 0 ? EnumEmailActionPass.Crear : EnumEmailActionPass.Modificar, users);
                }

                IMDDataRow dr = new IMDDataRow(resSaveUsuario.Result.Rows[0]);
                entUsuario.iIdUsuario = dr.ConvertTo <int>("iIdUsuario");

                response.Code    = 0;
                response.Message = entUsuario.iIdUsuario == 0 ? "El usuario ha sido guardado correctamente." : !entUsuario.bActivo ? "El usuario ha sido eliminado correctamente." : "El usuario ha sido actualizado correctamente.";
                response.Result  = entUsuario;
            }
            catch (Exception ex)
            {
                response.Code    = 67823458345132;
                response.Message = "Ocurrió un error inesperado al guardar los datos del usuario.";

                logger.Error(IMDSerialize.Serialize(67823458345132, $"Error en {metodo}(EntUsuario entUsuario): {ex.Message}", entUsuario, ex, response));
            }
            return(response);
        }
示例#21
0
        /// <summary>
        /// Valida los datos antes de guardar un usuario.
        /// </summary>
        /// <param name="entUsuario"></param>
        /// <returns></returns>
        public IMDResponse <bool> BValidaDatos(EntUsuario entUsuario)
        {
            IMDResponse <bool> response = new IMDResponse <bool>();

            string metodo = nameof(this.BValidaDatos);

            logger.Info(IMDSerialize.Serialize(67823458345132, $"Inicia {metodo}(EntUsuario entUsuario)", entUsuario));
            try
            {
                if (string.IsNullOrWhiteSpace(entUsuario.sNombres))
                {
                    response.Code    = 67823458345132;
                    response.Message = "El nombre del usuario no puede ser vacío";
                    response.Result  = false;

                    return(response);
                }

                if (entUsuario.iIdPerfil == 0)
                {
                    response.Code    = 67823458345132;
                    response.Message = "No se ha especificado un perfil para el usuario.";
                    response.Result  = false;

                    return(response);
                }

                if (entUsuario.bAcceso == true)
                {
                    //Validar usuario sólo si se dan permisos de acceso al sistema
                    if (string.IsNullOrWhiteSpace(entUsuario.sUsuario))
                    {
                        response.Code    = 67823458345132;
                        response.Message = "El nombre de usuario de acceso no puede ser vacío.";
                        response.Result  = false;

                        return(response);
                    }
                }


                if (entUsuario.iIdUsuario == 0 && entUsuario.bAcceso == true)
                {
                    //Validar usuario sólo si se trata de un nuevo registro con acceso al sistema
                    response = datUsuario.DValidaUsuarioYCorreo(entUsuario.sUsuario, "", true);
                    if (!response.Result)
                    {
                        response.Code    = 67823458345132;
                        response.Message = "Ya existe un usuario registrado con el nombre de usuario de acceso proporcionado.";
                        response.Result  = false;

                        return(response);
                    }
                }

                if (string.IsNullOrWhiteSpace(entUsuario.sPassword))
                {
                    if (entUsuario.iIdUsuario == 0 && entUsuario.bAcceso == true)
                    {
                        //Validar la contraseña sólo si es nuevo ingreso y la contraseña contiene valor
                        response.Code    = 67823458345132;
                        response.Message = "La contraseña del usuario no puede ser vacío.";
                        response.Result  = false;

                        return(response);
                    }
                }

                if (string.IsNullOrWhiteSpace(entUsuario.sApellidoPaterno))
                {
                    response.Code    = 67823458345132;
                    response.Message = "El apellido paterno del usuario no puede ser vacío.";
                    response.Result  = false;

                    return(response);
                }

                //if (entUsuario.sApellidoMaterno == "")
                //{
                //    response.Code = 67823458345132;
                //    response.Message = "El apellido materno del usuario no puede ser vacio.";
                //    response.Result = false;

                //    return response;
                //}

                if (string.IsNullOrWhiteSpace(entUsuario.sCorreo))
                {
                    response.Code    = 67823458345132;
                    response.Message = "El correo del usuario no puede ser vacío.";
                    response.Result  = false;

                    return(response);
                }

                if (entUsuario.iIdTipoCuenta == (int)EnumTipoCuenta.Titular)
                {
                    if (entUsuario.iIdUsuario == 0 && entUsuario.bAcceso == true)
                    {
                        //Validar correo sólo a usuarios titulares nuevos con acceso al sistema
                        response = datUsuario.DValidaUsuarioYCorreo("", entUsuario.sCorreo, false);
                        if (!response.Result)
                        {
                            response.Code    = 67823458345132;
                            response.Message = "Ya existe un usuario registrado con el correo electrónico proporcionado.";
                            response.Result  = false;

                            return(response);
                        }
                    }
                }

                response.Result = true;
            }
            catch (Exception ex)
            {
                response.Code    = 67823458342024;
                response.Message = "Ocurrió un error al intentar validar los datos del usuario.";

                logger.Error(IMDSerialize.Serialize(67823458341247, $"Error en {metodo}(EntUsuario entUsuario): {ex.Message}", entUsuario, ex, response));
            }
            return(response);
        }
示例#22
0
        /// <summary>
        /// Obtiene la lista de usuarios del sistema
        /// </summary>
        /// <param name="iIdUsuario"></param>
        /// <param name="iIdTipoCuenta"></param>
        /// <param name="iIdPerfil"></param>
        /// <param name="sUsuario"></param>
        /// <param name="sPassword"></param>
        /// <param name="bActivo"></param>
        /// <param name="bBaja"></param>
        /// <param name="psCorreo"></param>
        /// <returns></returns>
        public IMDResponse <List <EntUsuario> > BObtenerUsuario(int?iIdUsuario = null, int?iIdTipoCuenta = null, int?iIdPerfil = null, string sUsuario = null, string sPassword = null, bool?bActivo = null, bool?bBaja = null, string psCorreo = null)
        {
            IMDResponse <List <EntUsuario> > response = new IMDResponse <List <EntUsuario> >();

            string metodo = nameof(this.BObtenerUsuario);

            logger.Info(IMDSerialize.Serialize(67823458362226, $"Inicia {metodo}(int? iIdUsuario, int? iIdTipoCuenta, int? iIdPerfil, string sUsuario, string sPassword, bool bActivo, bool bBaja)", iIdUsuario, iIdTipoCuenta, iIdPerfil, sUsuario, sPassword, bActivo, bBaja));

            try
            {
                //Consultar usuarios
                IMDResponse <DataTable> dtUsuario = datUsuario.DObtenerUsuario(iIdUsuario, iIdTipoCuenta, iIdPerfil, sUsuario, sPassword, bActivo, bBaja, psCorreo);
                if (dtUsuario.Code != 0)
                {
                    return(dtUsuario.GetResponse <List <EntUsuario> >());
                }

                List <EntUsuario> lstUsuario = new List <EntUsuario>();
                foreach (DataRow item in dtUsuario.Result.Rows)
                {
                    IMDDataRow dr         = new IMDDataRow(item);
                    EntUsuario entUsuario = new EntUsuario();

                    entUsuario.iIdUsuario        = dr.ConvertTo <int>("iIdUsuario");
                    entUsuario.iIdTipoCuenta     = dr.ConvertTo <int>("iIdTipoCuenta");
                    entUsuario.sTipoCuenta       = dr.ConvertTo <string>("sTipoCuenta");
                    entUsuario.iIdPerfil         = dr.ConvertTo <int>("iIdPerfil");
                    entUsuario.sPerfil           = dr.ConvertTo <string>("sPerfil");
                    entUsuario.sUsuario          = dr.ConvertTo <string>("sUsuario");
                    entUsuario.sPassword         = dr.ConvertTo <string>("sPassword");
                    entUsuario.sNombres          = dr.ConvertTo <string>("sNombres");
                    entUsuario.sApellidoPaterno  = dr.ConvertTo <string>("sApellidoPaterno");
                    entUsuario.sApellidoMaterno  = dr.ConvertTo <string>("sApellidoMaterno");
                    entUsuario.dtFechaNacimiento = dr.ConvertTo <DateTime?>("dtFechaNacimiento");
                    entUsuario.sFechaNacimiento  = entUsuario.dtFechaNacimiento?.ToString("dd/MM/yyyy");
                    entUsuario.dtFechaCreacion   = dr.ConvertTo <DateTime>("dtFechaCreacion");
                    entUsuario.sFechaCreacion    = entUsuario.dtFechaCreacion.ToString("dd/MM/yyyy HH:mm");
                    entUsuario.sTelefono         = dr.ConvertTo <string>("sTelefono");
                    entUsuario.sCorreo           = dr.ConvertTo <string>("sCorreo");
                    entUsuario.sDomicilio        = dr.ConvertTo <string>("sDomicilio");
                    entUsuario.iIdUsuarioMod     = dr.ConvertTo <int>("iIdUsuarioMod");
                    entUsuario.bAcceso           = Convert.ToBoolean(dr.ConvertTo <int>("bAcceso"));
                    entUsuario.bActivo           = Convert.ToBoolean(dr.ConvertTo <int>("bActivo"));
                    entUsuario.bBaja             = Convert.ToBoolean(dr.ConvertTo <int>("bBaja"));

                    lstUsuario.Add(entUsuario);
                }


                response.Message = "Los usuarios del sistema han sido obtenidos.";
                response.Result  = lstUsuario;
            }
            catch (Exception ex)
            {
                response.Code    = 67823458363003;
                response.Message = "Ocurrió un error inesperado al consultar los usuarios del sistema.";

                logger.Error(IMDSerialize.Serialize(67823458363003, $"Error en {metodo}(int? iIdUsuario, int? iIdTipoCuenta, int? iIdPerfil, string sUsuario, string sPassword, bool bActivo, bool bBaja): {ex.Message}", iIdUsuario, iIdTipoCuenta, iIdPerfil, sUsuario, sPassword, bActivo, bBaja, ex, response));
            }
            return(response);
        }
示例#23
0
        /// <summary>
        /// Guarda un colaborador y sus respectivas cuentas en el CGU
        /// </summary>
        /// <param name="entCreateColaborador"></param>
        /// <returns></returns>
        public IMDResponse <bool> BSaveColaborador(EntCreateColaborador entCreateColaborador)
        {
            IMDResponse <bool> response = new IMDResponse <bool>();

            string metodo = nameof(this.BSaveColaborador);

            logger.Info(IMDSerialize.Serialize(67823458457797, $"Inicia {metodo}(EntCreateColaborador entCreateColaborador)", entCreateColaborador));

            try
            {
                if (entCreateColaborador == null)
                {
                    response.Code    = 76823456345;
                    response.Message = "No se ingresó información del colaborador.";
                    return(response);
                }

                if (entCreateColaborador.iIdTipoDoctor == (int)EnumTipoDoctor.MedicoCallCenter || entCreateColaborador.iIdTipoDoctor == (int)EnumTipoDoctor.MedicoAdministrativo)
                {
                    EntUsuario entUsuario = new EntUsuario
                    {
                        bActivo           = entCreateColaborador.bActivo,
                        bBaja             = entCreateColaborador.bBaja,
                        dtFechaNacimiento = entCreateColaborador.dtFechaNacimientoDoctor,
                        iIdPerfil         = entCreateColaborador.bAdministrador ? (int)EnumPerfilPrincipal.DoctorAdministrador : (int)EnumPerfilPrincipal.DoctorCallCenter,
                        iIdTipoCuenta     = (int)EnumTipoCuenta.Titular,
                        iIdUsuario        = entCreateColaborador.iIdUsuarioCGU,
                        iIdUsuarioMod     = entCreateColaborador.iIdUsuarioMod,
                        sApellidoMaterno  = entCreateColaborador.sApellidoMaternoDoctor,
                        sApellidoPaterno  = entCreateColaborador.sApellidoPaternoDoctor,
                        sCorreo           = entCreateColaborador.sCorreoDoctor,
                        sDomicilio        = entCreateColaborador.sDomicilioDoctor,
                        sNombres          = entCreateColaborador.sNombresDoctor,
                        sPassword         = entCreateColaborador.sPasswordTitular,
                        sTelefono         = entCreateColaborador.sTelefonoDoctor,
                        sUsuario          = entCreateColaborador.sUsuarioTitular,
                        bAcceso           = entCreateColaborador.bAcceso
                    };

                    //Doctores callcenter o administrativos, sólo guardar usuario y colaborador
                    IMDResponse <EntUsuario> respuestaGuardarUsuarioCGU = busUsuario.BSaveUsuario(entUsuario, true);
                    if (respuestaGuardarUsuarioCGU.Code != 0)
                    {
                        return(respuestaGuardarUsuarioCGU.GetResponse <bool>());
                    }

                    entCreateColaborador.iIdEspecialidad = (int)EnumEspecialidadPrincipal.MedicinaGeneral;
                    entCreateColaborador.iIdUsuarioCGU   = (int)respuestaGuardarUsuarioCGU.Result.iIdUsuario;
                    entCreateColaborador.iIdTipoCuenta   = (int)EnumTipoCuenta.Titular;
                    entCreateColaborador.iIdTipoDoctor   = entCreateColaborador.bAdministrador ? (int)EnumTipoDoctor.MedicoAdministrativo : entCreateColaborador.iIdTipoDoctor;

                    IMDResponse <bool> respuestaGuardarColaborador = datColaborador.DSaveColaborador(entCreateColaborador);
                    if (respuestaGuardarColaborador.Code != 0)
                    {
                        return(respuestaGuardarColaborador);
                    }
                }
                else if (entCreateColaborador.iIdTipoDoctor == (int)EnumTipoDoctor.MedicoEspecialista)
                {
                    if (entCreateColaborador.bActivo && !entCreateColaborador.bBaja)
                    {
                        if (entCreateColaborador.iIdEspecialidad == 0)
                        {
                            response.Code    = -876862348762374;
                            response.Message = "No se ha especificado la especialidad del médico colaborador.";
                            return(response);
                        }

                        if (string.IsNullOrWhiteSpace(entCreateColaborador.sUsuarioAdministrativo) && entCreateColaborador.bAcceso)
                        {
                            response.Code    = -7234869627782;
                            response.Message = "No se han especificado los datos de cuenta administrativa.";
                            return(response);
                        }

                        if (entCreateColaborador.iIdColaborador == 0 && string.IsNullOrWhiteSpace(entCreateColaborador.sPasswordAdministrativo) && entCreateColaborador.bAcceso)
                        {
                            response.Code    = -324778287623;
                            response.Message = "No se han especificado los datos de cuenta administrativa.";
                            return(response);
                        }
                    }

                    //Generar usuario titular y administrativo
                    EntUsuario entUsuarioTitular = new EntUsuario
                    {
                        bActivo           = entCreateColaborador.bActivo,
                        bBaja             = entCreateColaborador.bBaja,
                        dtFechaNacimiento = entCreateColaborador.dtFechaNacimientoDoctor,
                        iIdPerfil         = (int)EnumPerfilPrincipal.DoctorEspecialista,
                        iIdTipoCuenta     = (int)EnumTipoCuenta.Titular,
                        iIdUsuario        = entCreateColaborador.iIdUsuarioCGU,
                        iIdUsuarioMod     = entCreateColaborador.iIdUsuarioMod,
                        sApellidoMaterno  = entCreateColaborador.sApellidoMaternoDoctor,
                        sApellidoPaterno  = entCreateColaborador.sApellidoPaternoDoctor,
                        sCorreo           = entCreateColaborador.sCorreoDoctor,
                        sDomicilio        = entCreateColaborador.sDomicilioDoctor,
                        sNombres          = entCreateColaborador.sNombresDoctor,
                        sPassword         = entCreateColaborador.sPasswordTitular,
                        sTelefono         = entCreateColaborador.sTelefonoDoctor,
                        sUsuario          = entCreateColaborador.sUsuarioTitular,
                        bAcceso           = entCreateColaborador.bAcceso
                    };

                    EntUsuario entUsuarioAdministrativo = new EntUsuario
                    {
                        bActivo           = entCreateColaborador.bActivo,
                        bBaja             = entCreateColaborador.bBaja,
                        dtFechaNacimiento = entCreateColaborador.dtFechaNacimientoDoctor,
                        iIdPerfil         = (int)EnumPerfilPrincipal.AdministradorEspecialista,
                        iIdTipoCuenta     = (int)EnumTipoCuenta.Administrativa,
                        iIdUsuario        = entCreateColaborador.iIdUsuarioCGU,
                        iIdUsuarioMod     = entCreateColaborador.iIdUsuarioMod,
                        sApellidoMaterno  = entCreateColaborador.sApellidoMaternoDoctor,
                        sApellidoPaterno  = entCreateColaborador.sApellidoPaternoDoctor,
                        sCorreo           = entCreateColaborador.sCorreoDoctor,
                        sDomicilio        = entCreateColaborador.sDomicilioDoctor,
                        sNombres          = entCreateColaborador.sNombresDoctor,
                        sPassword         = entCreateColaborador.sPasswordAdministrativo,
                        sTelefono         = entCreateColaborador.sTelefonoDoctor,
                        sUsuario          = entCreateColaborador.sUsuarioAdministrativo,
                        bAcceso           = entCreateColaborador.bAcceso
                    };

                    if (entUsuarioTitular.sUsuario == entUsuarioAdministrativo.sUsuario && !string.IsNullOrWhiteSpace(entUsuarioTitular.sUsuario) && !string.IsNullOrWhiteSpace(entUsuarioAdministrativo.sUsuario))
                    {
                        response.Code    = -2345674657;
                        response.Message = "El usuario titular no puede ser el mismo que el usuario administrativo.";
                        return(response);
                    }

                    //Validar que los datos y disponibilidad de nombre de usuario de ambas cuentas antes de guardar
                    if (entCreateColaborador.bActivo && !entCreateColaborador.bBaja)
                    {
                        IMDResponse <bool> resValidacionTitular = busUsuario.BValidaDatos(entUsuarioTitular);
                        if (resValidacionTitular.Code != 0)
                        {
                            return(resValidacionTitular);
                        }

                        IMDResponse <bool> resValidacionAdministrativo = busUsuario.BValidaDatos(entUsuarioAdministrativo);
                        if (resValidacionAdministrativo.Code != 0)
                        {
                            return(resValidacionAdministrativo);
                        }
                    }

                    //Verificar si hay que enviar las credenciales por correo de ambas cuentas
                    bool activacionUsuario = false;
                    if (entCreateColaborador.bAcceso)
                    {
                        if (entCreateColaborador.iIdColaborador != 0)
                        {
                            IMDResponse <List <EntColaborador> > resGetColaborador = this.BGetColaborador(entCreateColaborador.iIdColaborador);
                            if (resGetColaborador.Code == 0)
                            {
                                if (resGetColaborador.Result.Count == 1)
                                {
                                    EntColaborador colaborador = resGetColaborador.Result.First();
                                    if (!colaborador.bAcceso)
                                    {
                                        activacionUsuario = true;
                                    }
                                }
                            }
                        }
                    }

                    //Guardar para obtener el id de usuario de ambas cuentas en el CGU
                    IMDResponse <EntUsuario> respuestaGuardarUsuarioCGU = busUsuario.BSaveUsuario(entUsuarioTitular);
                    if (respuestaGuardarUsuarioCGU.Code != 0)
                    {
                        return(respuestaGuardarUsuarioCGU.GetResponse <bool>());
                    }

                    entCreateColaborador.iIdUsuarioCGU = (int)respuestaGuardarUsuarioCGU.Result.iIdUsuario;
                    entCreateColaborador.iIdTipoCuenta = (int)EnumTipoCuenta.Titular;

                    entUsuarioAdministrativo.iIdUsuario = respuestaGuardarUsuarioCGU.Result.iIdUsuario;

                    respuestaGuardarUsuarioCGU = busUsuario.BSaveUsuario(entUsuarioAdministrativo);
                    if (respuestaGuardarUsuarioCGU.Code != 0)
                    {
                        return(respuestaGuardarUsuarioCGU.GetResponse <bool>());
                    }

                    //Guardar la cueta de colaborador
                    IMDResponse <bool> respuestaGuardarColaborador = datColaborador.DSaveColaborador(entCreateColaborador);
                    if (respuestaGuardarColaborador.Code != 0)
                    {
                        return(respuestaGuardarColaborador);
                    }
                    if (entCreateColaborador.bAcceso)
                    {
                        if ((entCreateColaborador.bActivo && !entCreateColaborador.bBaja && (!string.IsNullOrWhiteSpace(entCreateColaborador.sPasswordTitular) || !string.IsNullOrWhiteSpace(entCreateColaborador.sPasswordAdministrativo))) || activacionUsuario)
                        {
                            List <string> users = new List <string> {
                                entCreateColaborador.sUsuarioTitular, entCreateColaborador.sUsuarioAdministrativo
                            };
                            IMDResponse <bool> resEnviarCredenciales = busUsuario.BEnviarCredenciales(entCreateColaborador.sCorreoDoctor, entCreateColaborador.iIdColaborador == 0 || activacionUsuario ? EnumEmailActionPass.Crear : EnumEmailActionPass.Modificar, users);
                        }
                    }
                }
                else
                {
                    response.Code    = -72348767232323;
                    response.Message = "No se ha especificado el tipo de médico colaborador.";
                    return(response);
                }

                response.Code    = 0;
                response.Message = "El colaborador ha sido guardado correctamente.";
                response.Result  = true;
            }
            catch (Exception ex)
            {
                response.Code    = 67823458458574;
                response.Message = "Ocurrió un error inesperado al guardar el colaborador.";

                logger.Error(IMDSerialize.Serialize(67823458458574, $"Error en {metodo}(EntCreateColaborador entCreateColaborador): {ex.Message}", entCreateColaborador, ex, response));
            }
            return(response);
        }
        //guarda y actualiza
        public void Guarda()
        {
            EntUsuario      entUser = new EntUsuario();
            BrConfiguracion ped     = new BrConfiguracion();

            try
            {
                totRequeridos = 3;
                //contabilizaYValidaRequerido(TxtUsuario);
                contabilizaYValidaRequerido(TxtNombre);
                contabilizaYValidaRequerido(TxtCorreo);
                contabilizaYValidaRequerido(CmbArea);
                //contabilizaYValidaRequerido(CmbPerfil);

                if (totRequeridos > 0)
                {
                    messageBox = new avisosis(totRequeridos == 1 ? (string.Format("¡El campo {0} es obligatorio!", ControlInvalido)) : "Los campos son obligatorios", this.Title, MessageBoxButton.OK, MessageBoxImage.Warning);
                    messageBox.ShowDialog();
                    return;
                }

                //if (!ValidaBusqOpcionalConMensaje(TxtEmpOri, LblEmpresaOrigen))
                //    return;

                //enttrM.Aviavii = Convert.ToInt32(TxtAviso.Text);

                if (ActIns == Comunes.AGREGA)
                {
                    entUser.IdUsuarioRegistro = App.IdUsuario;
                    entUser.ActivoTexto       = "Si";
                }
                else
                {
                    entUser.FechaModifico     = Convert.ToString(DateTime.Today);
                    entUser.IdUsuarioModifico = App.IdUsuario;
                    entUser.IdUsuario         = EntUser.IdUsuario;
                    entUser.ActivoTexto       = EntUser.ActivoTexto;
                }
                entUser.Usuario           = TxtUsuario.Text;
                entUser.Nombre            = TxtNombre.Text;
                entUser.Clave             = BREncripcion.encript2(txtContrasena.Password);
                entUser.Origen            = area.Abreviatura;
                entUser.IdArea            = area.IdArea;
                entUser.Area              = area.Area;
                entUser.CorreoElectronico = TxtCorreo.Text;
                //entUser.IdPerfil = perf.IdPerfil;
                entUser.IdPerfil = IdPerfil;
                Respuesta <int> res = ped.InsUpdUsuarios(entUser, ActIns, "A");
                if (bandera == 1)
                {
                    if (res.EsExitoso)
                    {
                        //Actualizacion del Grid Generico
                        Editando   = false;
                        messageBox = new avisosis("Se ha " + (ActIns == Comunes.AGREGA ? " agregado " : ActIns == Comunes.CAMBIA ? " actualizado " : " eliminado ") + " correctamente el usuario", this.Title, MessageBoxButton.OK, MessageBoxImage.None); messageBox.ShowDialog();
                        frmCatologoGenerico.AcutualizaGrid <EntUsuario>(entUser);
                        if (!cerrando)
                        {
                            this.Close();
                        }
                    }
                    else
                    {
                        messageBox = new avisosis("Error al " + (ActIns == Comunes.AGREGA ? " agregar " : ActIns == Comunes.CAMBIA ? " actualizar " : " eliminar ") + res.Error, this.Title, MessageBoxButton.OK, MessageBoxImage.Error); messageBox.ShowDialog();
                    }
                }
            }
            catch (Exception ex)
            {
                messageBox = new avisosis(ex, this.Title, MessageBoxButton.OK, MessageBoxImage.Error); messageBox.ShowDialog();
            }
        }