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()); }
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(); } }
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()); }