Пример #1
0
        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);
            }
        }
Пример #2
0
        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);
            }
        }
Пример #3
0
        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);
            }
        }
Пример #4
0
        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);
            }
        }
Пример #5
0
        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);
            }
        }
Пример #6
0
        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);
            }
        }
Пример #7
0
        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);
            }
        }
Пример #8
0
        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);
            }
        }
Пример #9
0
        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);
            }
        }
Пример #10
0
        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);
            }
        }
Пример #11
0
        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();
            }
        }
Пример #12
0
        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);
            }
        }
Пример #13
0
        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);
            }
        }
Пример #14
0
        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);
            }
        }