private Isir.getIsirWsCuzkDataResponse MakeWsRequest(Isir.IsirWsCuzkPortTypeClient wsClient, string ico, string rc)
 {
     return(wsClient.getIsirWsCuzkDataAsync(string.IsNullOrEmpty(ico)
                                         ? new Isir.getIsirWsCuzkDataRequest {
         rc = rc, filtrAktualniRizeni = Isir.priznakType.F, maxPocetVysledku = 50, maxRelevanceVysledku = 1
     }
                                         : new Isir.getIsirWsCuzkDataRequest {
         ic = ico, filtrAktualniRizeni = Isir.priznakType.F, maxPocetVysledku = 50, maxRelevanceVysledku = 2
     }).Result);
 }
        private void RequestsToWs()
        {
            var client = new Isir.IsirWsCuzkPortTypeClient();

            while (TaskSearch.Status == TaskStatus.Running || !ForDetailRequest.IsEmpty)
            {
                Rizeni rizeni;
                if (ForDetailRequest.TryDequeue(out rizeni))
                {
                    Isir.getIsirWsCuzkDataResponse response;
                    // retrying until get correct answer :)
                    while (true)
                    {
                        try
                        {
                            response = MakeWsRequest(client, rizeni.ICO, rizeni.Rc);
                            break;
                        }
                        catch (Exception e)
                        {
                            AddError("WS", e);
                        }
                    }

                    foreach (var item in response.data)
                    {
                        if (item.cisloSenatu != rizeni.SpisovaZnacka.SoudniOddeleni || item.bcVec != rizeni.SpisovaZnacka.Cislo || item.rocnik != rizeni.SpisovaZnacka.Rocnik)
                        {
                            Interlocked.Increment(ref InvalidFileNumber);
                        }
                        else
                        {
                            rizeni.AktualniStav = item.druhStavKonkursu;
                            rizeni.Url          = item.urlDetailRizeni;
                            break;
                        }
                    }

                    if (string.IsNullOrEmpty(rizeni.Url))
                    {
                        Interlocked.Increment(ref Disabled);
                    }

                    ForStore.Enqueue(rizeni);
                }
                else
                {
                    Thread.Sleep(100);
                }
            }

            Thread.Sleep(1000);
        }