private void btnClipBoard_Click(object sender, EventArgs e) { int cnt = 0; try { Cursor.Current = Cursors.WaitCursor; string[] cliparr = ActiveAudit.GetClipBoard("//my.dom.gosuslugi.ru/organization-cabinet/#!/agreements"); if (cliparr == null) { return; } int skip = 0; string[] z; //string[] data = cliparr.Skip(0).ToArray(); string[] data = cliparr.Where(s => !s.Contains("Срок действия договора истекает")).ToArray(); while ((z = data.Skip(skip).Take(13).ToArray()).Count() != 0) { skip += 13; cnt++; dogUpravlAdapter.Insert( ActiveAudit.ID, ActiveAudit.ID_Company, z[0], z[1].Split('\t')[1], //идент z[2].Split('\t')[1], // закл z[3].Split('\t')[1], // вступ z[4].Split('\t')[1], // срок z[5].Split('\t').Length == 2 ? z[5].Split('\t')[1] : "", //статус z[6].Split('\t')[1], //версия z[7].Split('\t')[1], //основание z[8].Split('\t')[1], // первая z[9].Split('\t')[1], //вторая z[12] ); } grdDogUpravl.DataSource = dogUpravlAdapter.GetDataByActiveAudit(ActiveAudit.ID, ActiveAudit.ID_Company); } catch (Exception ex) { MessageBox.Show(cnt.ToString() + " -- " + ex.Message); } finally { Cursor.Current = Cursors.Default; Clipboard.Clear(); ActiveAudit.CheckGrid(grdDogUpravl); } }
private void btnGetPomesch_Click(object sender, EventArgs e) { try { Cursor.Current = Cursors.WaitCursor; string[] clparr = ActiveAudit.GetClipBoard("//my.dom.gosuslugi.ru/organization-cabinet/#!/house/card?"); if (clparr == null) { return; } int selPorchId = (int)grdPorch.CurrentRow.Cells[0].Value; //временно на всякий случай string[] pdata = clparr.Where(s => !s.Contains("ПУ")).ToArray(); if (pdata.Count() % 7 != 0) { MessageBox.Show("Данные помещений скопированы некорректно."); return; } int skip = 0; string[] arr; while ((arr = pdata.Skip(skip).Take(7).ToArray()).Count() != 0) { skip += 7; pomeschAdapter.Insert( selPorchId, ActiveAudit.ID, ActiveAudit.ID_Company, arr[0].Split('№')[arr[0].Split('№').Length - 1], //Номер arr[1].Split('\t')[arr[1].Split('\t').Length - 1], //категория arr[2].Split('\t')[arr[2].Split('\t').Length - 1].Split(' ')[0], //Общая пл-дь arr[3].Split('\t')[arr[3].Split('\t').Length - 1].Split(' ')[0], //жилая пл-дь arr[4].Split('\t')[arr[1].Split('\t').Length - 1], //Кадастр arr[5].Split(':')[1], //хар-ка arr[6].Split('\t')[1] ); } grdPomesch.DataSource = pomeschAdapter.GetDataBySelectedPorch(selPorchId); } catch (Exception ex) { MessageBox.Show(ex.Message); } finally { Clipboard.Clear(); Cursor.Current = Cursors.Default; ActiveAudit.CheckGrid(grdPomesch); } }
private void btnGetSave_Click(object sender, EventArgs e) { int cnt = 0; try { Cursor.Current = Cursors.WaitCursor; string[] cliparr = ActiveAudit.GetClipBoard("//my.dom.gosuslugi.ru/organization-cabinet/#!/house/list"); if (cliparr == null) { return; } string[] data = cliparr.Where(o => !o.Contains("Информация об объекте") && !o.Contains("ОДПУ")).ToArray(); int skip = 0; string[] z; while ((z = data.Skip(skip).Take(12).ToArray()).Count() != 0) { skip += 12; cnt++; gfObjectsAdapter.Insert( ActiveAudit.ID, ActiveAudit.ID_Company, z[0], //адрес z[1].Split('\t')[1], //год постройки z[2].Split('\t')[1], //год ввода z[3].Split('\t')[1], //кадастр z[4].Split('\t')[1], //этажей z[5].Split('\t')[1], //состояние z[6].Split('\t')[1], //износ z[7].Split('\t')[1], //кол-во ЛС z[8].Split('\t')[1], //Кол_во помещений z[9].Split('\t')[1], // Тип z[10].Split('\t')[1], //Общая площадь z[11].Split('\t')[1]); //Общая полощ жил пом } grdGFObjects.DataSource = gfObjectsAdapter.GetDataByActiveAudit(ActiveAudit.ID, ActiveAudit.ID_Company); } catch (Exception ex) { MessageBox.Show(ex.Message); } finally { Clipboard.Clear(); Cursor.Current = Cursors.Default; ActiveAudit.CheckGrid(grdGFObjects); } }
private void btnPerech_Click(object sender, EventArgs e) {//перечень услуг try { Cursor.Current = Cursors.WaitCursor; string[] cliparr = ActiveAudit.GetClipBoard("//my.dom.gosuslugi.ru/organization-cabinet/#!/agreements/contract/"); if (cliparr == null) { return; } string[] data = cliparr.Where(s => !s.Contains("Вид коммунальных услуг") && !s.Contains("Дополнительные услуги") && !s.Contains("Услуги отсутствуют") && !s.Contains("Наименование")).ToArray(); if (data.Count() % 3 != 0) { MessageBox.Show("Похоже, данные скопированы некорректно"); return; } int skip = 0; string[] z; while ((z = data.Skip(skip).Take(3).ToArray()).Count() != 0) { skip += 3; dogUprUslAdapter.Insert(this.currDogID, ActiveAudit.ID, ActiveAudit.ID_Company, z[0], z[1].Split('\t')[0] + " - " + z[1].Split('\t')[1], z[2]); } grdUslugi.DataSource = dogUprUslAdapter.GetDataByDogovor(ActiveAudit.ID, ActiveAudit.ID_Company, this.currDogID); } catch (Exception ex) { Clipboard.Clear(); MessageBox.Show(ex.Message); } finally { Clipboard.Clear(); Cursor.Current = Cursors.Default; ActiveAudit.CheckGrid(grdUslugi); } }
private void btnNegilAdd_Click(object sender, EventArgs e) { Cursor.Current = Cursors.WaitCursor; try { string[] clparr = ActiveAudit.GetClipBoard("nonResidential=yes"); if (clparr == null) { return; } if (clparr.Count() % 7 != 0) { MessageBox.Show("Данные нежилых помещений скопированы некорректно."); return; } int skip = 0; string[] arr; while ((arr = clparr.Skip(skip).Take(7).ToArray()).Count() != 0) { skip += 7; neGiloeAdapter.Insert( this.currObjID, ActiveAudit.ID, ActiveAudit.ID_Company, arr[0], arr[1].Split('\t')[1], arr[2].Split('\t')[1], arr[3].Split('\t')[1], arr[4].Split('\t')[1], arr[6].Split('\t')[1] ); } grdNegil.DataSource = neGiloeAdapter.GetDataByActiveObject(this.currObjID); } catch (Exception ex) { MessageBox.Show(ex.Message); } finally { Cursor.Current = Cursors.Default; Clipboard.Clear(); ActiveAudit.CheckGrid(grdNegil); } }
private void btnGetPorch_Click(object sender, EventArgs e) {//данные подъездов try { Cursor.Current = Cursors.WaitCursor; string[] clparr = ActiveAudit.GetClipBoard("//my.dom.gosuslugi.ru/organization-cabinet/#!/house/card?houseCardGuid"); if (clparr == null) { return; } int skip = 0; string[] strarr; if (clparr.Count() % 4 != 0) { MessageBox.Show("Данные подъездов скопированы некорректно."); return; } while ((strarr = clparr.Skip(skip).Take(4).ToArray()).Count() != 0) { skip += 4; porchAdapter.Insert( this.currObjID, ActiveAudit.ID_Company, ActiveAudit.ID, strarr[0].Split(' ')[strarr[0].Split(' ').Length - 1], //Номер strarr[1].Split(' ')[strarr[1].Split(' ').Length - 1], //Количество ЛС strarr[2].Split(' ')[strarr[2].Split(' ').Length - 1], // Этажность strarr[3].Split(' ')[strarr[3].Split(' ').Length - 1] //Год постройки ); } grdPorch.DataSource = porchAdapter.GetDataBySelectObject(this.currObjID); } catch (Exception ex) { MessageBox.Show(ex.Message); } finally { Clipboard.Clear(); Cursor.Current = Cursors.Default; ActiveAudit.CheckGrid(grdPorch); } }
private void btnGetClipBoard_Click(object sender, EventArgs e) { Cursor.Current = Cursors.WaitCursor; try { string[] cliparr = ActiveAudit.GetClipBoard("my.dom.gosuslugi.ru/organization-cabinet/#!/agreements"); if (cliparr == null) { return; } if (cliparr.Count() % 7 != 0) { MessageBox.Show("Данные устава скопированы некорректно."); return; } ustavAdapter.Insert(ActiveAudit.ID, ActiveAudit.ID_Company, cliparr[0].Split('\t')[1], //идентификатор cliparr[5], //статус cliparr[1].Split('\t')[1], //сроки передачи показаний по приборам cliparr[2].Split('\t')[1], //Срок представления платежных документов cliparr[3].Split('\t')[1], //Срок внесения платы cliparr[6].Split('\t')[1] //Версия ); //?? ustavAdapter.FillByCurrentAudit(ds.Ustav, ActiveAudit.ID, ActiveAudit.ID_Company); grdUstav.DataSource = ustavAdapter.GetDataByCurrentAudit(ActiveAudit.ID, ActiveAudit.ID_Company); if (grdUstav.Rows.Count > 0) { grdUstav.Rows[grdUstav.Rows.Count - 1].Selected = true; } } catch (Exception ex) { MessageBox.Show(ex.Message); } finally { Clipboard.Clear(); Cursor.Current = Cursors.Default; ActiveAudit.CheckGrid(grdUstav); ActiveAudit.CheckGrid(grdHouse); ActiveAudit.CheckGrid(grdUslugi); } }
private void btnWorksServ_Click(object sender, EventArgs e) { try { Cursor.Current = Cursors.WaitCursor; string[] cliparr = ActiveAudit.GetClipBoard("//my.dom.gosuslugi.ru/organization-cabinet/#!/org-nsi/OrganizationWork"); if (cliparr == null) { return; } int skip = 0; string[] z; string[] data = cliparr.Skip(1).ToArray(); while ((z = data.Skip(skip).Take(2).ToArray()).Count() != 0) { skip += 2; string[] vals = z[1].Split('\t'); dictWorkServAdapter.Insert( ActiveAudit.ID, ActiveAudit.ID_Company, z[0], vals[0], vals.Count() == 2 ? vals[1] : "" ); } grdWorkServ.DataSource = dictWorkServAdapter.GetDataByActiveAudit(ActiveAudit.ID, ActiveAudit.ID_Company); } catch (Exception ex) { MessageBox.Show(ex.Message); } finally { Clipboard.Clear(); Cursor.Current = Cursors.Default; ActiveAudit.CheckGrid(grdWorkServ); } }
private void btnGetLicHouses_Click(object sender, EventArgs e) { try { string[] cliparr = ActiveAudit.GetClipBoard("//dom.gosuslugi.ru/#!/licenses/"); if (cliparr == null) { return; } string[] data = cliparr.Skip(3).ToArray(); int currLicID = (int)grdLicense.CurrentRow.Cells[0].Value; foreach (string str in data) { string[] vals = str.Split('\t'); licenseHousesAdapter.Insert( currLicID, ActiveAudit.ID, ActiveAudit.ID_Company, vals[0], //Адрес vals[1], //Начало vals[2], //Окончание vals[3], //реестр vals[4] //сведения ); } grdLicHouses.DataSource = licenseHousesAdapter.GetDataByCurrentLicense(currLicID, ActiveAudit.ID, ActiveAudit.ID_Company); } catch (Exception ex) { MessageBox.Show(ex.Message); } finally { Clipboard.Clear(); Cursor.Current = Cursors.Default; ActiveAudit.CheckGrid(grdLicHouses); } }
private void btnGetClipBoard_Click(object sender, EventArgs e) { Cursor.Current = Cursors.WaitCursor; try { string[] cliparr = ActiveAudit.GetClipBoard("//dom.gosuslugi.ru/#!/licenses"); if (cliparr == null) { return; } string[] data = cliparr.Where(l => !(l == "Информация о лицензиате")).ToArray(); licenseAdapter.Insert( ActiveAudit.ID, ActiveAudit.ID_Company, data[1], //вид data[3], // лицензия data[5], //документ data[7], //орган data[9], //адрес data[11], //дполнит-но data[13], //лицензиат data[14].Split(' ')[data[14].Split(' ').Length - 1], //ОГРН data[15].Split(' ')[data[14].Split(' ').Length - 1], //ИНН data[17] //место ); licenseAdapter.FillByActiveAudit(ds.License, ActiveAudit.ID, ActiveAudit.ID_Company); grdLicense.DataSource = licenseAdapter.GetDataByActiveAudit(ActiveAudit.ID, ActiveAudit.ID_Company); } catch (Exception ex) { MessageBox.Show(ex.Message); } finally { Clipboard.Clear(); Cursor.Current = Cursors.Default; ActiveAudit.CheckGrid(grdLicense); } }
private void btnGetClipBoard_Click(object sender, EventArgs e) { Cursor.Current = Cursors.WaitCursor; try { string[] cliparr = ActiveAudit.GetClipBoard("//my.dom.gosuslugi.ru/organization-cabinet/#!/payment/documents"); if (cliparr == null) { return; } string[] data = cliparr.Skip(10).ToArray(); if (cliparr.Any(s => s == "(UTC+3)")) //Item данных содержит 5 строк { if (cliparr.Count() % 5 != 0) { MessageBox.Show("Данные платежных документов скопированы некорректно."); return; } int skip = 0; string[] arr; //string[] data = cliparr.Skip(10).ToArray(); while ((arr = data.Skip(skip).Take(5).ToArray()).Count() != 0) { skip += 5; string[] vals = arr[0].Split('\t'); platDocsAdapter.Insert( ActiveAudit.ID, ActiveAudit.ID_Company, vals[0], //лицевой счет vals[1], //идентификатор vals[2], //статус vals[3], //дата статуса vals[4], //сумма vals[5], // c задолжн vals[6], //оплачено vals[7], //остаток arr[1] + " " + arr[2], arr[4] ); } } else //Данные содержат 1 строку { foreach (string d in data) { string[] vals = d.Split('\t'); platDocsAdapter.Insert( ActiveAudit.ID, ActiveAudit.ID_Company, vals[0], //лицевой счет vals[1], //идентификатор vals[2], //статус vals[3], //дата статуса vals[4], //сумма vals[5], // c задолжн vals[6], //оплачено vals[7], //остаток "", "" ); } } platDocsAdapter.FillByActiveAudit(ds.PlatDocs, ActiveAudit.ID, ActiveAudit.ID_Company); //?? grdPlatDocs.DataSource = platDocsAdapter.GetDataByActiveAudit(ActiveAudit.ID, ActiveAudit.ID_Company); } catch (Exception ex) { MessageBox.Show(ex.Message); } finally { Cursor.Current = Cursors.Default; Clipboard.Clear(); } }
private void btnFiles_Click(object sender, EventArgs e) { Cursor.Current = Cursors.WaitCursor; try { string[] cliparr = ActiveAudit.GetClipBoard("//my.dom.gosuslugi.ru/organization-cabinet/#!/agreements/contract/view/"); if (cliparr == null) { return; } //var beg = cliparr.Select((string str, int i) => new { data = str, idx = i }).Where(s => s.data == "Договор управления и приложения").FirstOrDefault(); int skip = 0; string[] z; cliparr = cliparr.Where( s => (!s.Contains("Прикрепленные файлы") & !s.Contains("Прикрепленные протоколы")) & ( s.ToLower().Contains(".pdf") | s.ToLower().Contains(".doc") | s.ToLower().Contains(".docx") | s.ToLower().Contains(".xls") | s.ToLower().Contains(".xlsx") | s.ToLower().Contains(".tif") | s.Contains("Прикреплен") ) ).ToArray(); if (cliparr.Count() % 2 != 0) { MessageBox.Show("Не удалось выделить список файлов"); return; } while ((z = cliparr.Skip(skip).Take(2).ToArray()).Count() != 0) { skip += 2; dogUprFilesAdapter.Insert( this.currDogID, ActiveAudit.ID, ActiveAudit.ID_Company, z[0], z[1].Split(' ')[1] ); } grdFiles.DataSource = dogUprFilesAdapter.GetDataByActiveDog(ActiveAudit.ID, ActiveAudit.ID_Company, this.currDogID); } catch (Exception ex) { MessageBox.Show(ex.Message); } finally { Cursor.Current = Cursors.Default; Clipboard.Clear(); ActiveAudit.CheckGrid(grdFiles); } }
private void btnGetClipBoard_Click(object sender, EventArgs e) { try { Cursor.Current = Cursors.WaitCursor; string[] cliparr = ActiveAudit.GetClipBoard("//my.dom.gosuslugi.ru/organization-cabinet/#!/passport/"); if (cliparr == null) { return; } elHouseAdapter.Insert(ActiveAudit.ID, ActiveAudit.ID_Company, (from s in cliparr where s.Contains("1. Дата формирования электронного паспорта") select HouseAtrValue(s)).First(), (from s in cliparr where s.Contains("2.1. Адрес многоквартирного дома") select HouseAtrValue(s)).First(), (from s in cliparr where s.Contains("2.2. Кадастровый номер") select HouseAtrValue(s)).First(), (from s in cliparr where s.Contains("2.3. Ранее присвоенный государственный") select HouseAtrValue(s)).First(), (from s in cliparr where s.Contains("2.4. Год ввода в эксплуатацию") select HouseAtrValue(s)).First(), (from s in cliparr where s.Contains("2.5. Год постройки") select HouseAtrValue(s)).First(), (from s in cliparr where s.Contains("2.6. Стадия жизненного цикла") select HouseAtrValue(s)).First(), (from s in cliparr where s.Contains("2.7. Год проведения реконструкции") select HouseAtrValue(s)).First(), (from s in cliparr where s.Contains("2.8. Серия, тип проекта здания") select HouseAtrValue(s)).First(), (from s in cliparr where s.Contains("2.9.1. Количество этажей") select HouseAtrValue(s)).First(), (from s in cliparr where s.Contains("2.9.2. Количество подземных этажей") select HouseAtrValue(s)).First(), (from s in cliparr where s.Contains("2.10. Количество подъездов") select HouseAtrValue(s)).First(), (from s in cliparr where s.Contains("2.11. Наличие приспособлений") select HouseAtrValue(s)).First(), (from s in cliparr where s.Contains("2.12. Количество лифтов") select HouseAtrValue(s)).First(), (from s in cliparr where s.Contains("2.13. Количество жилых помещений") select HouseAtrValue(s)).First(), (from s in cliparr where s.Contains("2.14. Количество нежилых помещений") select HouseAtrValue(s)).First(), (from s in cliparr where s.Contains("2.15. Площадь здания (многоквартирного дома)") select HouseAtrValue(s)).First(), (from s in cliparr where s.Contains("2.15.1. Общая площадь жилых") select HouseAtrValue(s)).First(), (from s in cliparr where s.Contains("2.15.2. Общая площадь нежилых помещений") select HouseAtrValue(s)).First(), (from s in cliparr where s.Contains("2.15.3. Общая площадь помещений общего") select HouseAtrValue(s)).First(), (from s in cliparr where s.Contains("2.16. Количество балконов") select HouseAtrValue(s)).First(), (from s in cliparr where s.Contains("2.17. Количество лоджий") select HouseAtrValue(s)).First(), (from s in cliparr where s.Contains("2.18. Наличие статуса объекта культурного") select HouseAtrValue(s)).First(), (from s in cliparr where s.Contains("2.19.1. Основание признания многоквартирного дома") select HouseAtrValue(s)).First(), (from s in cliparr where s.Contains("2.19.2. Дата документа, содержащего решение") select HouseAtrValue(s)).First(), (from s in cliparr where s.Contains("2.19.3. Номер документа, содержащего решение") select HouseAtrValue(s)).First(), (from s in cliparr where s.Contains("2.20. Класс энергетической эффективности") select HouseAtrValue(s)).First(), (from s in cliparr where s.Contains("2.21. Дата проведения энергетического") select HouseAtrValue(s)).First(), (from s in cliparr where s.Contains("2.22. Дата приватизации первого жилого") select HouseAtrValue(s)).First(), (from s in cliparr where s.Contains("2.23. Общий износ здания") select HouseAtrValue(s)).First(), (from s in cliparr where s.Contains("2.24. Дата, на которую установлен износ") select HouseAtrValue(s)).First() ); DataSet1.ElHouseDataTable elh = elHouseAdapter.GetDataByActiveAudit(ActiveAudit.ID, ActiveAudit.ID_Company); int lastID = ((DataSet1.ElHouseRow)elh.Rows[elh.Rows.Count - 1]).ID_ElHouse; grdElHouse.DataSource = elh; //ds.Tables[2].LoadDataRow(new object[44],true);// .Select("").Count() //параметры дома //string[] houseparams = cliparr.Where( s=> rgx1.IsMatch(s,0) || rgx1.IsMatch(s,1)).ToArray<string>() ; string[] houseparams = cliparr.Skip(35).Where(s => !(s.IndexOf("17.") == 0 || s.IndexOf("17.") == 1 || s.IndexOf("17.") == 2 || s.IndexOf("17.") == 3) && !(s.IndexOf("18.") == 0 || s.IndexOf("18.") == 1 || s.IndexOf("18.") == 2 || s.IndexOf("18.") == 3)).ToArray(); foreach (string par in houseparams) { elHouseParamAdapter.Insert( lastID, ActiveAudit.ID, ActiveAudit.ID_Company, ParVal(par)[0], ParVal(par)[1] ); } /// показать пераметры паспорта grdElHouse.ClearSelection();//If you want int nRows = grdElHouse.Rows.Count - 1; grdElHouse.Rows[nRows].Selected = true; //In case if you want to scroll down as well. grdElHouse.FirstDisplayedScrollingRowIndex = nRows; int currID = (int)grdElHouse.CurrentRow.Cells[0].Value; grdParams.DataSource = elHouseParamAdapter.GetDataByCurrentHouse(ActiveAudit.ID, ActiveAudit.ID_Company, currID); ///////// /* * //Flats * //string[] flats1 = cliparr.Where(a => System.Text.RegularExpressions.Regex.IsMatch(a, @"^(\t17)")).ToArray(); * * string[] flats = cliparr.Where(c => c.Trim('\t').IndexOf("17.") == 3 || * c.Trim('\t').IndexOf("17.") == 2).ToArray(); * * //System.Text.RegularExpressions.MatchCollection collection= System.Text.RegularExpressions.Regex.Matches(cliparr, @"17", System.Text.RegularExpressions.RegexOptions.Compiled) * * int skipf = 0; * string[] x; * while ((x = flats.Skip(skipf).Take(11).ToArray()).Count() != 0) * { * skipf += 11; * * elHouseFlatsAdapter.Insert( * lastID, * ActiveAudit.ID, * ActiveAudit.ID_Company, * x[0].Split('\t')[x[0].Split('\t').Count() - 1], * x[1].Split('\t')[x[1].Split('\t').Count() - 1], * x[2].Split('\t')[x[2].Split('\t').Count() - 1], * x[3].Split('\t')[x[3].Split('\t').Count() - 1], * x[4].Split('\t')[x[4].Split('\t').Count() - 1], * x[5].Split('\t')[x[5].Split('\t').Count() - 1], * x[6].Split('\t')[x[6].Split('\t').Count() - 1], * x[7].Split('\t')[x[7].Split('\t').Count() - 1], * x[8].Split('\t')[x[8].Split('\t').Count() - 1], * x[9].Split('\t')[x[9].Split('\t').Count() - 1], * x[10].Split('\t')[x[10].Split('\t').Count() - 1]); * } * * //string[] noflats = cliparr.Where(s => s.Contains("\t18.")).ToArray(); * * string[] noflats = cliparr.Where(c => c.Trim('\t').IndexOf("18.") == 3 || * c.Trim('\t').IndexOf("18.") == 2).ToArray(); * * * int skipn = 0; * string[] z; * while ((z = noflats.Skip(skipn).Take(5).ToArray()).Count() != 0) * { * skipn += 5; * elHouseNoflatsAdapter.Insert(lastID, * ActiveAudit.ID, * ActiveAudit.ID_Company, * NoflatVal(z[0]), * NoflatVal(z[1]), * NoflatVal(z[2]), * NoflatVal(z[3]), * NoflatVal(z[4]) * ); * } * Cursor.Current = Cursors.Default; */ // } } catch (Exception ex) { MessageBox.Show(ex.Message); } finally { Clipboard.Clear(); Cursor.Current = Cursors.Default; ActiveAudit.CheckGrid(grdElHouse); } }
private void btnUsl_Click(object sender, EventArgs e) { Cursor.Current = Cursors.WaitCursor; try { //сначала проверить устав string[] cliparr = ActiveAudit.GetClipBoard("my.dom.gosuslugi.ru/organization-cabinet/#!/charter/view/houses/"); if (cliparr == null) { return; } Dictionary <string, List <string> > GRItems = new Dictionary <string, List <string> >(); string[] data = cliparr.Where(s => !s.Contains("Наименование")) .Where(s => !(s == " ")) .Where(s => !s.Contains("Вид коммунальных услуг")) .Where(s => !s.Contains("Дополнительные услуги")) .Where(s => !s.Contains("Услуги отсутствуют")) .ToArray(); //Группируем по адресу (адрес->услуги[]) ^\d{6}\s|^\s{1,3}\d{6}\s Regex rgx = new Regex(@"^\d{6},\s|^\s{1,3}\d{6},\s"); foreach (string s in data) { if (!rgx.IsMatch(s)) { GRItems.Last().Value.Add(s); } else { GRItems.Add(s, new List <string>()); } } var res = data.GroupBy(x => rgx.IsMatch(x)).Select(grp => new { z = grp.Key, a = grp }); foreach (string k in GRItems.Keys) { string[] usldata = GRItems[k].ToArray(); string period = usldata.First <string>(); //период дожен находиться в 1-й позиции массива услуг int lastSpace = k.LastIndexOf(" "); string addr = k.Substring(0, lastSpace); string status = k.Substring(lastSpace); ustavHouseAdapter.Insert(this.currUstavId, ActiveAudit.ID, ActiveAudit.ID_Company, addr, status, period.Split(':')[1]); //получить id дома и вставить услуги ustavHouseAdapter.FillByCurrentUstav(ds.UstavHouse, this.currUstavId); DataSet1.UstavHouseRow[] houseArr = ds.UstavHouse.ToArray(); int id_house = houseArr.Last <DataSet1.UstavHouseRow>().ID_UstavHouse; Console.WriteLine(id_house); string[] uslugi = GRItems[k].Skip(1).ToArray(); //пропускаем период дома if (uslugi.Count() % 3 != 0) { MessageBox.Show("Пересень услуг сформирован некорректно"); return; } string[] z; int skip = 0; while ((z = uslugi.Skip(skip).Take(3).ToArray()).Count() != 0) { ustavUslugiAdapter.Insert(id_house, z[0], //Наименование услуги z[1].Split('\t')[0], //дата начала z[1].Split('\t')[1], //дата окончания z[2]); //устав skip += 3; } } grdHouse.DataSource = ustavHouseAdapter.GetDataByCurrentUstav(this.currUstavId); grdHouse.Rows[0].Selected = true; grdUslugi.DataSource = ustavUslugiAdapter.GetDataByCurrentHouse((int)grdHouse.Rows[0].Cells[0].Value); } catch (Exception ex) { MessageBox.Show(ex.Message); } finally { Clipboard.Clear(); Cursor.Current = Cursors.Default; ActiveAudit.CheckGrid(grdUstav); ActiveAudit.CheckGrid(grdHouse); ActiveAudit.CheckGrid(grdUslugi); } }