public async Task <string> Value()
    {
        if (value == null)
        {
            if (string.IsNullOrWhiteSpace(options.CacheBust))
            {
                var xtiPath = xtiPathAccessor.Value();
                if (hostEnvironment.IsDevOrTest())
                {
                    value = Guid.NewGuid().ToString("N");
                }
                else if (xtiPath.IsCurrentVersion())
                {
                    var app = await appContext.App();

                    var version = await app.Version(AppVersionKey.Current);

                    value = version.Key().DisplayText;
                }
            }
            else
            {
                value = options.CacheBust;
            }
        }
        return(value ?? "");
    }
    public async Task <string> Serialize()
    {
        CacheBust = await cacheBust.Value();

        var app = await appContext.App();

        AppTitle        = app.Title;
        EnvironmentName = hostEnvironment.EnvironmentName;
        var user = await userContext.User();

        if (user.UserName().Equals(AppUserName.Anon))
        {
            IsAuthenticated = false;
            UserName        = "";
        }
        else
        {
            IsAuthenticated = true;
            UserName        = user.UserName().Value;
        }
        WebAppDomains = await appClients.Domains();

        return(JsonSerializer.Serialize(this));
    }