public Task ReportAppUsage(ClientInfo app, CancellationToken cancellationToken) { if (string.IsNullOrWhiteSpace(app.DeviceId)) { throw new ArgumentException("Client info must have a device Id"); } _logger.Info("App Activity: app: {0}, version: {1}, deviceId: {2}, deviceName: {3}", app.AppName ?? "Unknown App", app.AppVersion ?? "Unknown", app.DeviceId, app.DeviceName ?? "Unknown"); cancellationToken.ThrowIfCancellationRequested(); var data = new Dictionary<string, string> { { "feature", app.AppName ?? "Unknown App" }, { "serverid", _applicationHost.SystemId }, { "deviceid", app.DeviceId }, { "mac", app.DeviceId }, { "ver", app.AppVersion ?? "Unknown" }, { "platform", app.DeviceName }, }; return _httpClient.Post(MbAdminUrl + "service/registration/ping", data, cancellationToken); }
private async void ReportNewSession(ClientInfo client) { try { await new UsageReporter(_applicationHost, _httpClient, _userManager, _logger) .ReportAppUsage(client, CancellationToken.None) .ConfigureAwait(false); } catch (Exception ex) { _logger.ErrorException("Error sending anonymous usage statistics.", ex); } }
public async Task ReportAppUsage(ClientInfo app, CancellationToken cancellationToken) { if (string.IsNullOrWhiteSpace(app.DeviceId)) { throw new ArgumentException("Client info must have a device Id"); } _logger.Info("App Activity: app: {0}, version: {1}, deviceId: {2}, deviceName: {3}", app.AppName ?? "Unknown App", app.AppVersion ?? "Unknown", app.DeviceId, app.DeviceName ?? "Unknown"); cancellationToken.ThrowIfCancellationRequested(); var data = new Dictionary<string, string> { { "feature", app.AppName ?? "Unknown App" }, { "serverid", _applicationHost.SystemId }, { "deviceid", app.DeviceId }, { "mac", app.DeviceId }, { "ver", app.AppVersion ?? "Unknown" }, { "platform", app.DeviceName }, }; var logErrors = false; #if DEBUG logErrors = true; #endif var options = new HttpRequestOptions { Url = MbAdminUrl + "service/registration/ping", CancellationToken = cancellationToken, // Seeing block length errors EnableHttpCompression = false, LogRequest = false, LogErrors = logErrors, BufferContent = false }; options.SetPostData(data); using (var response = await _httpClient.SendAsync(options, "POST").ConfigureAwait(false)) { } }
private ClientInfo GetNewClientInfo(SessionInfo session) { var info = new ClientInfo { AppName = session.Client, AppVersion = session.ApplicationVersion, DeviceName = session.DeviceName, DeviceId = session.DeviceId }; // Report usage to remote server, except for web client, since we already have data on that if (!string.Equals(info.AppName, "Dashboard", StringComparison.OrdinalIgnoreCase)) { ReportNewSession(info); } return info; }
private ClientInfo GetNewClientInfo(SessionInfo session) { var info = new ClientInfo { AppName = session.Client, AppVersion = session.ApplicationVersion, DeviceName = session.DeviceName, DeviceId = session.DeviceId }; ReportNewSession(info); return info; }