예제 #1
0
        private void FlushBufferAndStart()
        {
            RemoteSettingsLogMessage result;

            lock (flushLock)
            {
                if (isStarted)
                {
                    return;
                }
                List <KeyValuePair <string, string> > mainIdentifiers = new List <KeyValuePair <string, string> >
                {
                    new KeyValuePair <string, string>("applicationName", filterProvider.GetApplicationName()),
                    new KeyValuePair <string, string>("applicationVersion", filterProvider.GetApplicationVersion()),
                    new KeyValuePair <string, string>("branchName", filterProvider.GetBranchBuildFrom())
                };
                settingsProvider.MainIdentifiers = mainIdentifiers;
                settingsProvider.Path            = Path.GetTempPath();
                settingsProvider.Folder          = "VSRemoteSettingsLog";
                logFile.Initialize(settingsProvider);
                while (Buffer.TryDequeue(out result))
                {
                    LogMessageNoBuffer(result);
                }
                isStarted = true;
            }
            while (Buffer.TryDequeue(out result))
            {
                LogMessageNoBuffer(result);
            }
        }
        private async Task <string> BuildRequestParametersAsync(IEnumerable <string> previouslyCachedRuleIds)
        {
            ActionRequestParameters actionRequestParameters = new ActionRequestParameters
            {
                MachineId = HandleGuidParameter(remoteSettingsFilterProvider.GetMachineId()),
                UserId    = HandleGuidParameter(remoteSettingsFilterProvider.GetUserId())
            };
            ActionRequestParameters actionRequestParameters2 = actionRequestParameters;

            actionRequestParameters2.VsoId = await remoteSettingsFilterProvider.GetVsIdAsync().ConfigureAwait(false);

            actionRequestParameters.Culture            = remoteSettingsFilterProvider.GetCulture();
            actionRequestParameters.Version            = remoteSettingsFilterProvider.GetApplicationVersion();
            actionRequestParameters.VsSku              = remoteSettingsFilterProvider.GetVsSku();
            actionRequestParameters.NotificationsCount = remoteSettingsFilterProvider.GetNotificationsCount();
            actionRequestParameters.AppIdPackage       = HandleGuidParameter(remoteSettingsFilterProvider.GetAppIdPackageGuid());
            actionRequestParameters.MacAddressHash     = remoteSettingsFilterProvider.GetMacAddressHash();
            actionRequestParameters.ChannelId          = remoteSettingsFilterProvider.GetChannelId();
            actionRequestParameters.ChannelManifestId  = remoteSettingsFilterProvider.GetChannelManifestId();
            actionRequestParameters.ManifestId         = remoteSettingsFilterProvider.GetManifestId();
            actionRequestParameters.OsType             = remoteSettingsFilterProvider.GetOsType();
            actionRequestParameters.OsVersion          = remoteSettingsFilterProvider.GetOsVersion();
            actionRequestParameters.ExeName            = remoteSettingsFilterProvider.GetApplicationName();
            actionRequestParameters.IsInternal         = HandleBoolParameter(remoteSettingsFilterProvider.GetIsUserInternal());
            actionRequestParameters.CachedRuleIds      = previouslyCachedRuleIds;
            actionRequestParameters.SessionId          = targetedNotificationsTelemetry.SessionId;
            return(JsonConvert.SerializeObject((object)actionRequestParameters));
        }
예제 #3
0
 public ExeNameScopeFilterProvider(RemoteSettingsFilterProvider filterProvider)
 {
     CodeContract.RequiresArgumentNotNull <RemoteSettingsFilterProvider>(filterProvider, "filterProvider");
     exeName = new Lazy <StringScopeValue>(delegate
     {
         string applicationName = filterProvider.GetApplicationName();
         return(new StringScopeValue(string.IsNullOrEmpty(applicationName) ? "Unknown" : applicationName));
     });
 }
예제 #4
0
        public IRemoteSettingsStorageHandler Build(ICollectionKeyValueStorage storage, bool usePrefix, RemoteSettingsFilterProvider filterProvider, IScopeParserFactory scopeParserFactory)
        {
            CodeContract.RequiresArgumentNotNull <RemoteSettingsFilterProvider>(filterProvider, "filterProvider");
            List <string> list = new List <string>();

            list.AddIfNotEmpty(filterProvider.GetApplicationName());
            list.AddIfNotEmpty(filterProvider.GetApplicationVersion());
            list.AddIfNotEmpty(filterProvider.GetBranchBuildFrom());
            string text = string.Join("\\", list);
            string collectionPathPrefix = (!usePrefix) ? text : string.Format("{0}\\{1}", "Software\\Coding4Fun\\VisualStudio\\RemoteSettings", text, CultureInfo.InvariantCulture);

            return(new RemoteSettingsStorageHandler(storage, collectionPathPrefix, scopeParserFactory, false, logger));
        }