public static bool GuardarImportadora(string empresa, bool snComer, out string msg)
        {
            bool error = false;

            try
            {
                ctrlConexion conexion = llenaCtrlConexion(Obtener(empresa));
                conexion.SNComercializadora = false;
                conexion.SNImportadora      = true;
                using (var ctx = new LBInventoryEntities())
                {
                    ctx.Configuration.ValidateOnSaveEnabled = false;
                    var eComer = ctx.Entry(conexion).State = System.Data.Entity.EntityState.Modified;
                    ctx.SaveChanges();
                }

                msg   = "";
                error = true;
            }
            catch (Exception e)
            {
                msg = e.Message;
            }
            return(error);
        }
        public ResponseModel QuitarPerfil(int idUsuario, int idPerfil)
        {
            ResponseModel    rm = new ResponseModel();
            relUsuarioPerfil relUsuarioPerfil = new relUsuarioPerfil();

            try
            {
                using (var ctx = new LBInventoryEntities())
                {
                    relUsuarioPerfil = ctx.relUsuarioPerfil.Where(x => x.PerfilId == idPerfil && x.UsuarioId == idUsuario).SingleOrDefault();
                    ctx.Entry(relUsuarioPerfil).State = EntityState.Deleted;
                    ctx.SaveChanges();
                }
                rm.SetResponse(true, "Perfil desasignado correctamente");
            }
            catch (Exception ex)
            {
                rm.SetResponse(false, "Error al intentar desasignar el perfil" + ex.Message);
            }
            return(rm);
        }
        public ResponseModel AsignarPerfil(int idUsuario, int idPerfil)
        {
            ResponseModel    rm = new ResponseModel();
            relUsuarioPerfil relUsuarioPerfil = new relUsuarioPerfil();

            try
            {
                relUsuarioPerfil.PerfilId  = idPerfil;
                relUsuarioPerfil.UsuarioId = idUsuario;
                using (var ctx = new LBInventoryEntities())
                {
                    ctx.Entry(relUsuarioPerfil).State = EntityState.Added;
                    ctx.SaveChanges();
                }
                rm.SetResponse(true, "Perfil asignado correctamente");
                rm.function   = "CargarPerfiles";
                rm.funcParams = idUsuario.ToString();
            }
            catch (Exception ex)
            {
                rm.SetResponse(false, "Error al intentar asignar el perfil" + ex.Message);
            }
            return(rm);
        }
        public ResponseModel Guardar()
        {
            ctrlUsuario ctrlUsuario = new ctrlUsuario();
            var         rm          = new ResponseModel();

            try
            {
                ctrlUsuario = llenarCtrlUsuario(this);
                using (var ctx = new LBInventoryEntities())
                {
                    ctx.Configuration.ValidateOnSaveEnabled = false;
                    var eUsuario = ctx.Entry(ctrlUsuario);
                    if (ctrlUsuario.Id == 0)
                    {
                        //verificamos si el nombre de usuario ya esta en uso
                        if (ctx.ctrlUsuario.Where(x => x.Usuario == this.Usuario).Count() > 0)
                        {
                            rm.SetResponse(false, "Nombre de Usuario existente, favor de usar otro");
                            return(rm);
                        }
                        eUsuario.State = EntityState.Added;
                    }
                    else
                    {
                        eUsuario.State = EntityState.Modified;
                        eUsuario.Property(x => x.Usuario).IsModified = false;
                    }
                    //Verifica si el password viene en nulo
                    if (ctrlUsuario.Password == null || ctrlUsuario.Password == "")
                    {
                        eUsuario.Property(x => x.Password).IsModified = false;
                    }
                    else
                    {
                        var passMD5 = Encriptacion.Encrypt(ctrlUsuario.Password, true);
                        ctrlUsuario.Password = passMD5;
                    }
                    if (catPerfil != null && catPerfil.Count > 0)
                    {
                        var perfiles = ctx.relUsuarioPerfil.Where(x => x.UsuarioId == eUsuario.Entity.Id).ToList();
                        foreach (var per in perfiles)
                        {
                            if (per.UsuarioId == Id)
                            {
                                QuitarPerfil(Id, per.PerfilId);
                            }
                        }
                        foreach (var per in catPerfil)
                        {
                            relUsuarioPerfil relUsuarioPerfil = new relUsuarioPerfil();
                            relUsuarioPerfil.PerfilId  = per.Id;
                            relUsuarioPerfil.UsuarioId = eUsuario.Entity.Id;
                            eUsuario.Entity.relUsuarioPerfil.Add(relUsuarioPerfil);
                        }
                    }
                    ctx.SaveChanges();
                    rm.SetResponse(true, "Usuario Guardado con exito!");
                    rm.function   = "Obtener";
                    rm.funcParams = ctrlUsuario.Id.ToString();
                }
            }
            catch (DbEntityValidationException ex)
            {
                rm.SetResponse(false, "Error al guardar el Usuario " + ex.Message);
            }
            catch (Exception ex)
            {
                rm.SetResponse(false, "Error al guardar el Usuario " + ex.Message);
            }
            return(rm);
        }