public RegionBase(ServiceReference1.CreditOrgInfoSoapClient sc) { DataSet dsReg = sc.RegionsEnum(); //получение сокращенного списка регионов var rowsReg = dsReg.Tables[0].Rows; //создаем объект из строк decimal keyOne; Console.WriteLine("Дублирующиеся записи в перечне кодов регионов:"); for (int i = 0; i < rowsReg.Count; i++) { keyOne = Convert.ToDecimal(rowsReg[i]["RegCode"]); if (regCodes.ContainsKey(keyOne)) //если коды дублируются, то добавляем значение к старому, иначе записываем новое { Console.WriteLine(Convert.ToString(rowsReg[i]["RegCode"]) + " : " + Convert.ToString(rowsReg[i]["CNAME"])); //дополняем словарь string newvalue = regCodes[keyOne]; regCodes.Remove(keyOne); //старую запись зачищаем newvalue += (", " + Convert.ToString(rowsReg[i]["CNAME"])); regCodes.Add(Convert.ToDecimal(rowsReg[i]["RegCode"]), newvalue); //добавляем новую из двух } else { regCodes.Add(Convert.ToDecimal(rowsReg[i]["RegCode"]), Convert.ToString(rowsReg[i]["CNAME"]));//заполняем словарь } } }
public void LoadInitCodeData() { ServiceReference1.CreditOrgInfoSoapClient serviceClass = new ServiceReference1.CreditOrgInfoSoapClient();//экземпляр класса сервиса //вызываем заполнение справочника регионов RegionBase rb = new RegionBase(serviceClass); //*************************работа с перечнем внутренних идентификторов******************* DataSet ds = serviceClass.EnumBIC(); //получение сокращенного списка банков var rows = ds.Tables[0].Rows; //создаем объект из строк List <double> codes = new List <double>(); //создаем перечень для внесения ИД кодов for (int i = 0; i < rows.Count; i++) { codes.Add(Convert.ToDouble(rows[i]["IntCode"]));//заполняем перечень кодами } //******************работа с полными наборами характеристик банков********************* int k = 1; RenameOrg renameObj = new RenameOrg(); Console.WriteLine(); Console.Write("Заполнение данных по банкам"); foreach (double code in codes) //обрабатываем перечень кодов { DataSet fullDS = serviceClass.CreditInfoByIntCode(code); //по перечню кодов вызываем информацию по каждому банку var rowsFull = fullDS.Tables[0].Rows; //заполняем внутренние данные организации и сразу пишем в общий перечень bicBaseArray.Add(new Record { Number = k, BIC = Convert.ToInt32(rowsFull[0]["BIC"]), items = new Character { OrgName = Convert.ToString(rowsFull[0]["OrgName"]), OrgMiddleName = renameObj.RenameThis(Convert.ToString(rowsFull[0]["OrgName"]), Convert.ToString(rowsFull[0]["OrgFullName"])), OrgFullName = Convert.ToString(rowsFull[0]["OrgFullName"]), FactAdr = Convert.ToString(rowsFull[0]["FactAdr"]), OrgStatus = Convert.ToString(rowsFull[0]["OrgStatus"]), CNAME = rb.FindRegion(Convert.ToDecimal(rowsFull[0]["RegCode"])), Phones = Convert.ToString(rowsFull[0]["phones"]) } }); k++; if (k % 20 == 0) { Console.Write("."); } } Console.WriteLine(); //******************загоняем в json********************** Console.WriteLine("Заполнено {0} банков", k); try { var serializer = new JavaScriptSerializer(); var jsonBase = serializer.Serialize(bicBaseArray); using (StreamWriter streamWrite = new StreamWriter(filePath)) { streamWrite.Write(jsonBase); } } catch (Exception e) { Console.WriteLine(e); } Console.ReadLine(); }