public Boolean Post(ref string error, Usuario usuario, UsuarioDto usuarioCreador)
 {
     if (usuario == null)
     {
         error = "El usuario no puede ser vacio.";
         return(false);
     }
     if (this._contexto.Usuarios.Where(u => u.NombreUsuario.Equals(usuario.NombreUsuario)).Count() > 0)
     {
         error = "El nombre de usuario ya se utiliza.";
         return(false);
     }
     usuario.UsuarioCreadorId     = usuarioCreador.Id;
     usuario.UsuarioModificadorId = usuarioCreador.Id;
     usuario.UsuarioSistemaId     = usuarioCreador.UsuarioSistemaId;
     usuario.Avatar        = "default.png";
     usuario.Contra        = ServicioEncriptacion.Encrypt(usuario.Contra);
     usuario.Activo        = true;
     usuario.FechaCreacion = DateTime.Now;
     usuario.Plantilla     = 1;
     usuario.Tipo          = "Cliente";
     this._contexto.Usuarios.Add(usuario);
     try
     {
         this._contexto.SaveChanges();
         return(true);
     }
     catch (Exception e)
     {
         this._logger.EscribirError("", e.ToString());
         error = "Ocurrio un error al guardar usuario.";
         return(false);
     }
 }
        public LoginUsuario Login(ref string error, Usuario usuario)
        {
            var isValid = usuario == null ? false : true;

            if ((!isValid) && (string.IsNullOrEmpty(usuario.Contra)))
            {
                error = "Datos son incorrectos";
                return(null);
            }
            var _contra = ServicioEncriptacion.Encrypt(usuario.Contra);

            var usuarioLogger = this._contexto.Usuarios.Include(u => u.UsuarioSistema.Sucursales).Include(u => u.UsuarioSistema).Where(u => u.NombreUsuario.ToLower().Equals(usuario.NombreUsuario.ToLower()) && u.Contra == _contra).FirstOrDefault();

            if (usuarioLogger != null)
            {
                List <Sucursal> sucursales = null;
                if ((usuarioLogger.SucursalId != null) && (usuarioLogger.SucursalId > 0))
                {
                    sucursales = this._contexto.Sucursales.Where(s => s.UsuarioId == usuarioLogger.SucursalId).ToList();
                }
                else
                {
                    sucursales = usuarioLogger.UsuarioSistema.Sucursales.ToList();
                }
                return(new LoginUsuario()
                {
                    Token = ServicioEncriptacion.GeneraToken(usuarioLogger), Sucursales = sucursales
                });
            }
            else
            {
                error = "Datos son incorrectos";
                return(null);
            }
        }