コード例 #1
0
        public virtual void Synchronize(SirenOfShameSettings settings, string exportedBuilds, string exportedAchievements, Action <DateTime> onSuccess, Action <string, ServerUnavailableException> 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);
                }
            }, OnConnectionFail(onFail), settings.GetSosOnlineProxy());
        }
コード例 #2
0
        public virtual void VerifyCredentialsAsync(SirenOfShameSettings settings, Action onSuccess, Action <string, ServerUnavailableException> 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());
        }
コード例 #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());
        }