コード例 #1
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.UploadValuesAndReturnStringAsync(url,
                                                resultsStr =>
                                                {
                                                    var result = JsonConvert.DeserializeObject<ApiResultBase>(resultsStr);
                                                    if (!result.Success)
                                                    {
                                                        string errorMessage = result.Message;
                                                        _log.Error("Error publishing to: " + url + " error: " + errorMessage);
                                                    }
                                                }, ex => _log.Error("Error publishing to: " + url, ex), settings.GetSosOnlineProxy());
 }
コード例 #2
0
 public virtual void BuildStatusChanged(SirenOfShameSettings settings, IList<BuildStatus> changedBuildStatuses, List<InstanceUserDto> changedUsers)
 {
     WebClientXml webClientXml = new WebClientXml();
     AddSosOnlineCredentials(settings, webClientXml);
     webClientXml.Add("ChangedBuildStatuses", JsonConvert.SerializeObject(changedBuildStatuses));
     webClientXml.Add("ChangedUsers", JsonConvert.SerializeObject(changedUsers));
     if (settings.SoftwareInstanceId.HasValue)
         webClientXml.Add("SoftwareInstanceId", settings.SoftwareInstanceId.Value.ToString(CultureInfo.InvariantCulture));
     string url = SOS_URL + "/ApiV1/BuildStatusChangedV1";
     webClientXml.UploadValuesAndReturnStringAsync(url, ReadResult, ex => _log.Error("Error publishing to: " + url, ex), settings.GetSosOnlineProxy());
 }
コード例 #3
0
        private void SendNewCustomImages(SirenOfShameSettings settings, List<InstanceUserDto> changedUsers)
        {
            var changedPeople = changedUsers
                .Select(changedUser => settings.FindPersonByRawName(changedUser.RawName))
                .Where(person => person != null);

            var changedPeopleWithUnUploadedCustomImages = changedPeople
                .Where(i => !string.IsNullOrEmpty(i.AvatarImageName) && !i.AvatarImageUploaded);

            foreach (var person in changedPeopleWithUnUploadedCustomImages)
            {
                var webClientXml = new WebClientXml();
                AddSosOnlineCredentials(settings, webClientXml);
                webClientXml.Add("AvatarImageName", person.AvatarImageName);
                var avatarImagePath = SirenOfShameSettings.GetAvatarImagePath(person.AvatarImageName);
                var imageAsBytes = File.ReadAllBytes(avatarImagePath);
                var imageAsString = Convert.ToBase64String(imageAsBytes);
                webClientXml.Add("AvatarImage", imageAsString);
                string url = SOS_URL + "/ApiV1/AddImage";
                var person1 = person;
                webClientXml.UploadValuesAndReturnStringAsync(url, s => _log.Debug("Uploaded " + person1.AvatarImageName), ex => _log.Error("Error uploading image for " + person1.AvatarImageName), settings.GetSosOnlineProxy());
                person.AvatarImageUploaded = true;
                settings.Save();
            }
        }