コード例 #1
0
 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());
 }
コード例 #2
0
 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());
 }
コード例 #3
0
 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());
 }
コード例 #4
0
 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());
 }