public virtual void VerifyCredentialsAsync(SirenOfShameSettings settings, Action onSuccess, Action<string, Exception> onFail) { WebClientXml webClientXml = new WebClientXml(); AddSosOnlineCredentials(settings, webClientXml); webClientXml.UploadValuesAndReturnXmlAsync(SOS_URL + "/ApiV1/VerifyCredentials", doc => { string success = doc.Descendants("Success").First().Value; if (success == "true") { onSuccess(); } else { string errorMessage = doc.Descendants("ErrorMessage").First().Value; onFail(errorMessage, null); } }, OnConnectionFail(onFail), settings.GetSosOnlineProxy()); }
public virtual void BuildStatusChanged(SirenOfShameSettings settings, IList<BuildStatus> changedBuildStatuses) { WebClientXml webClientXml = new WebClientXml(); AddSosOnlineCredentials(settings, webClientXml); string json = JsonConvert.SerializeObject(changedBuildStatuses); webClientXml.Add("ChangedBuildStatuses", json); if (settings.SoftwareInstanceId.HasValue) webClientXml.Add("SoftwareInstanceId", settings.SoftwareInstanceId.Value.ToString(CultureInfo.InvariantCulture)); const string url = SOS_URL + "/ApiV1/BuildStatusChangedV1"; webClientXml.UploadValuesAndReturnXmlAsync(url, doc => { string success = doc.Descendants("Success").First().Value; if (success != "true") { string errorMessage = doc.Descendants("ErrorMessage").First().Value; _log.Error("Error publishing to: " + url + " error: " + errorMessage); } }, ex => _log.Error("Error publishing to: " + url, ex), settings.GetSosOnlineProxy()); }
public virtual void SendMessage(SirenOfShameSettings settings, string message) { WebClientXml webClientXml = new WebClientXml(); AddSosOnlineCredentials(settings, webClientXml); webClientXml.Add("Message", message); webClientXml.UploadValuesAndReturnXmlAsync(SOS_URL + "/ApiV1/AddMessage", doc => { string success = doc.Descendants("Success").First().Value; if (success == "true") { _log.Debug("Message successfully added"); } else { string errorMessage = doc.Descendants("ErrorMessage").First().Value; _log.Error("Failed to add message: " + errorMessage); } }, OnConnectionFail, settings.GetSosOnlineProxy()); }
public virtual void Synchronize(SirenOfShameSettings settings, string exportedBuilds, string exportedAchievements, Action<DateTime> onSuccess, Action<string, Exception> onFail) { WebClientXml webClientXml = new WebClientXml(); AddSosOnlineCredentials(settings, webClientXml); webClientXml.Add("Builds", exportedBuilds); webClientXml.Add("Achievements", exportedAchievements); if (settings.SoftwareInstanceId.HasValue) webClientXml.Add("SoftwareInstanceId", settings.SoftwareInstanceId.Value.ToString(CultureInfo.InvariantCulture)); webClientXml.UploadValuesAndReturnXmlAsync(SOS_URL + "/ApiV1/Synchronize", doc => { string success = doc.Descendants("Success").First().Value; if (success == "true") { string newHighWaterMarkStr = doc.Descendants("NewHighWaterMark").First().Value; DateTime newHighWaterMark = new DateTime(long.Parse(newHighWaterMarkStr)); onSuccess(newHighWaterMark); } else { string errorMessage = doc.Descendants("ErrorMessage").First().Value; onFail(errorMessage, null); } }, ex => onFail("Failed to connect to SoS Online", ex), settings.GetSosOnlineProxy()); }