private HttpClient SetupHttpClient(Jive settings)
        {
            var client      = new HttpClient();
            var credentials = Convert.ToBase64String(Encoding.ASCII.GetBytes($"{settings.Username}:{settings.Password}"));

            client.DefaultRequestHeaders.Add("Authorization", "Basic " + credentials);
            return(client);
        }
        private async Task <SearchResponse> SearchForFile(Jive settings, string name, HttpClient client)
        {
            var url =
                $"{settings.Url}{ApiPath}search/contents/?filter=place(/places/{settings.PlaceId})&filter=search(\"{name}\")";
            var searchResponse = await client.GetAsync(url);

            var searchResponseContent = await searchResponse.Content.ReadAsStringAsync();

            var searchResult = JsonConvert.DeserializeObject <SearchResponse>(searchResponseContent);

            return(searchResult);
        }
        private MultipartFormDataContent PrepareMultipartContent(Jive settings, FileInfo fileInfo, string name)
        {
            var data = new
            {
                subject    = name,
                type       = "file",
                parent     = $"{settings.Url}{ApiPath}places/{settings.PlaceId}",
                categories = new[] { "Release Notes" },
                tags       = CreateTags(_releaseName)
            };
            var requestContent = new MultipartFormDataContent();

            var json          = JsonConvert.SerializeObject(data, Formatting.Indented);
            var stringContent = new StringContent(json, Encoding.UTF8, "application/json");

            requestContent.Add(stringContent, "json");

            var fileBytes         = File.ReadAllBytes(fileInfo.FullName);
            var staticFileContent = new ByteArrayContent(fileBytes);

            requestContent.Add(staticFileContent, fileInfo.Name);
            return(requestContent);
        }
 public JiveUpload(Jive settings, string location, string releaseName)
 {
     _settings    = settings;
     _location    = location;
     _releaseName = releaseName;
 }