public void AddEventWithPhoto() { bool s = false; dynamic ev; var Wc = new WebClient(); Wc.Headers.Add("Content-Type", "application/x-www-form-urlencoded"); var firstdata = "grant_type=password&username="******"TestUserName" + "&password="******"TestPassword361"; var result1 = Wc.UploadString(SiteUrl + TokenUrl, firstdata); JObject o1 = JObject.Parse(result1); var token = o1["access_token"].Value<string>(); Wc = new WebClient(); Wc.Encoding = Encoding.UTF8; Wc.Headers.Add("Content-Type", "application/json"); Wc.Headers.Add("Authorization", "Bearer " + token); string sdata; var photoIds = new string[0]; var url = new WebClient().DownloadString(new Uri(SiteUrl + "api/Endpoints/GetUploadUrl/AddEvent")); url = url.Trim(new char[] { '\"' }); url = url.TrimStart(new char[] { '/' }); using (var client = new HttpClient()) { MultipartFormDataContent form = new MultipartFormDataContent(); client.DefaultRequestHeaders.TryAddWithoutValidation("Authorization", "Bearer " + token); var fs = new FileStream("C:\\Users\\Александр\\Desktop\\kompot.jpg", FileMode.Open); form.Add(new StreamContent(fs), "file", "file.jpg"); fs = new FileStream("C:\\Users\\Александр\\Desktop\\qRISsLk7j3E.jpg", FileMode.Open); form.Add(new StreamContent(fs), "file", "file.jpg"); var response = client.PostAsync(SiteUrl + url, form).Result; sdata = response.Content.ReadAsStringAsync().Result; } using (var client = new HttpClient()) { client.DefaultRequestHeaders.TryAddWithoutValidation("Authorization", "Bearer " + token); var content = new StringContent(sdata, Encoding.UTF8, "application/json"); var response = client.PostAsync(SiteUrl + "api/Endpoints/SaveUploadedFile/AddEvent", content).Result; sdata = response.Content.ReadAsStringAsync().Result; photoIds = JArray.Parse(sdata).Select(tok => (tok as JObject)["Id"].Value<string>()).ToArray(); } try { var time = System.DateTime.Now.ToString("u"); var data = JsonConvert.SerializeObject(new { Latitude = 76, Longitude = 92, Description = "TestEvent", EventDate = time, PhotoIds = photoIds }); var result = Wc.UploadString(SiteUrl + AddEventUrl, data); } catch(WebException we) { Assert.Fail(we.Message); } }