BrowserStack.BrowserStack.Browsers C# (CSharp) Method

Browsers() public method

public Browsers ( ) : IEnumerable
return IEnumerable
    public IEnumerable<Browser> Browsers()
    {
      using (var client = new WebClient())
      {
        client.Headers.Add("authorization", authToken);

        var data = client.DownloadString(Url + "/browsers?flat=true");
        var browsers = (JArray)JsonConvert.DeserializeObject(data);

        return browsers.Select(browser => new Browser
                                          {
                                            Device = ((JObject)browser)["device"].Value<string>(),
                                            OsName = ((JObject)browser)["os"].Value<string>(),
                                            OsVersion = ((JObject)browser)["os_version"].Value<string>(),
                                            BrowserName = ((JObject)browser)["browser"].Value<string>(),
                                            BrowserVersion = ((JObject)browser)["browser_version"].Value<string>()
                                          });
      }
    }

Usage Example

        public async void started(long obj)
        {
            var client = new HttpClient();
            Task<JobClientsNeeded> result =
                await
                client.GetAsync(_testSwarmUrl + @"Api/neededclients/index")
                      .ContinueWith(t => t.Result.Content.ReadAsAsync<JobClientsNeeded>());

            var bs = new BrowserStack.BrowserStack(_username, _password);
            List<Useragent> agentsNeeded =
                bs.Browsers()
                  .Select(b => new Useragent {Browser = b.BrowserName, Version = b.BrowserVersion})
                  .Intersect(result.Result.UserAgents)
                  .ToList();

            foreach (Useragent b in agentsNeeded)
            {
                Console.WriteLine("{0} {1}", b.Browser, b.Version);
                Browser browser =
                    bs.Browsers()
                      .First(f => f.BrowserName == b.Browser && f.BrowserVersion == b.Version && f.OsName == "windows");
                _workers.Add(bs.CreateWorker(browser, result.Result.ClientUrl));
            }
        }