public Task PingAsync(double progress, bool sendDuration = true, bool sendOccuredAt = true) { if (!this.isOpen) throw new InvalidOperationException("Session Closed."); Ping ping = new Ping(); ping.SessionId = this.sessionId; ping.Progress = progress; DateTime current = DateTime.Now; if (sendDuration) ping.Duration = (current - lastPingTime).Seconds; if (sendOccuredAt) ping.OccuredAt = XmlConvert.ToString(lastPingTime = current); return this.client.PostReadingPingAsync(this.accessToken, this.readingId, ping); }
public Task<string> PostReadingPingAsync(string accessToken, string readingId, Ping ping) { IDictionary<string, string> parameters = GetInitializedParameterCollection(); parameters.Add(ReadmillConstants.AccessToken, accessToken); parameters.Add(ReadingsClient.ReadingId, readingId); var pingUrl = readingsUriTemplates[ReadingsUriTemplateType.ReadingPing].BindByName(this.readmillBaseUri, parameters); var wrappedPing = new WrappedPing(); wrappedPing.Ping = ping; return PostAsync<WrappedPing>(wrappedPing, pingUrl); }