Exemplo n.º 1
0
 public ThuaInfo(IWorkspace wsp)
 {
     if (wsp != null)
     {
         _fcName = new TnFeatureClassName(wsp);
         _tableName = new TnTableName(wsp);
     }
 }
Exemplo n.º 2
0
 public Evaluation(string expr)
 {
     this._expr = expr;
     _conn = new SdeConnection();
     _sdeConn = (ISdeConnectionInfo)_conn;
     _conf = CurrentConfig.CallMe();
     _fcName = new TnFeatureClassName(_sdeConn.Workspace);
     _tblName = new TnTableName(_sdeConn.Workspace);
     _dicParams = new Dictionary<string, object>();
 }
Exemplo n.º 3
0
        public TnThuaInfo(string nam, string chusohuu, string diachi, string loaidat, string giadat,
            string soto, string sothua, string somattien,string somathem, string socachtinh)
        {
            //*************
            //Lay connection info hien tai
            //SdeUserInfo va SqlUserInfo la static
            SdeConnection conn = new SdeConnection();
            ISdeConnectionInfo sdeConn = conn as ISdeConnectionInfo;
            _tableName = new TnTableName(sdeConn.Workspace);
            _fcName = new TnFeatureClassName(sdeConn.Workspace);

            _nam = nam;
            _chuSoHuu = chusohuu;
            _diaChi = diachi;
            _loaiDat = loaidat;
            _giaDat = giadat;
            _soTo = soto;
            _soThua = sothua;
            _soMatTien = somattien;
            _soMatHem = somathem;
            _soCachTinh = socachtinh;
        }
Exemplo n.º 4
0
        void _bwk_DoWork(object sender, DoWorkEventArgs e)
        {
            SdeConnection conn = new SdeConnection();
            ISdeConnectionInfo sdeConn = conn as ISdeConnectionInfo;
            //ISqlConnectionInfo sqlConn = (ISqlConnectionInfo)sdeConn;
            ISdeUserInfo sdeUser = sdeConn.GetSdeUserInfo();
            _fcName = new TnFeatureClassName(sdeConn.Workspace);
            _tblName = new TnTableName(sdeConn.Workspace);
            _sqlUser = sdeUser.GetSqlUserInfo();

            SqlDataReader reader = null;
            SqlDataAdapter adapter = null;
            DataSet dataSet = new DataSet();
            QueryEventArg qrEvt = new QueryEventArg();

            _nameOfThua = String.Format("{0}_{1}", DataNameTemplate.Thua, _config.NamApDung);
            if (_sqlTable.IsClosed())
            {
                _sqlTable.SetUserInfo(_sqlUser.GetConnectionStringAsArray());
                _sqlTable.OpenConnection();
            }
            int t = 0;
            bool rs = int.TryParse(_type.ToString(), out t);
            if (!rs)
            {
                t = 0;
            }
            IInfoForQuerySql infoSql = (IInfoForQuerySql)_info;
            string selectSql = string.Format("select * from {0} where ",_nameOfThua);
            string whereClause = "";
            List<string> lstSql = new List<string>();
            string maxa = "0";
            int c = 0;
            switch (t)
            {
                //truy van uniq, so to,so thua,dia chi,ten chu
                case 0:
                    #region Tim uniq
                    //kiem tra 1 trong cac gia tri sau
                    //xa,chusohuu,dia chi,soto,sothua
                    //neu ="" thi bo qua, neu ko thi them vao sql and
                    qrEvt.Data = "Đang tìm ...";
                    onQuerying(qrEvt);
                    if (_info.Xa != "")
                    {
                        //tim trong bang xa, lay ma xa theo ten xa

                        #region tim ma xa
                        string sqlxa = "";
                        sqlxa = string.Format("select maxa from {0} where {1}",DataNameTemplate.Ranh_Xa_Poly, infoSql.XaSql);

                        //adapter = new SqlDataAdapter(_sqlTable.GetSqlCommand(sqlxa));
                        //adapter.Fill(dataSet);
                        reader = _sqlTable.GetSqlCommand(sqlxa).ExecuteReader();
                        if (reader != null)
                        {
                            if (reader.HasRows)
                            {
                                //lay 1 ma xa
                                if (reader.Read())
                                {

                                    maxa = reader.GetValue(0).ToString();
                                    //MessageBox.Show(String.Format("line 119 QueryThua {0}", maxa));
                                }
                            }
                        }
                        else
                        {
                            maxa = "0";
                        }
                        reader.Close();
                        #endregion

                        //tim cac thua

                        lstSql.Add(string.Format("{0}='{1}'", _fcName.FC_THUA.MA_XA, maxa));
                    }
                    if (_info.ChuSoHuu != "")
                    {
                        lstSql.Add(string.Format(infoSql.ChuSoHuuSql));
                    }
                    if (_info.DiaChi != "")
                    {
                        lstSql.Add(string.Format(infoSql.DiaChiSql));
                    }
                    if (_info.SoTo != "")
                    {
                        lstSql.Add(string.Format(infoSql.SoToSql));
                    }
                    if (_info.SoThua != "")
                    {
                        lstSql.Add(string.Format(infoSql.SoThuaSql));
                    }
                    if (_info.MaThua != "")
                    {
                        lstSql.Add(string.Format(infoSql.MaThuaSql));
                    }
                    //ghep cac sql
                    //c = lstSql.Count;
                    //if (c > 0)
                    //{
                    //    whereClause += string.Format("{0}", lstSql[0]);
                    //    for (int i = 1; i < c; i++)
                    //    {
                    //        whereClause += string.Format(" and {0}", lstSql[i]);
                    //    }
                    //    selectSql = selectSql + whereClause;
                    //    adapter = new SqlDataAdapter(_sqlTable.GetSqlCommand(selectSql));
                    //    adapter.Fill(dataSet);
                    //    //MessageBox.Show(selectSql);
                    //    //reader = _sqlTable.GetSqlCommand(whereClause).ExecuteReader();
                    //    //if (reader.HasRows)
                    //    //{
                    //    foreach (IQueryThuaView v in _views)
                    //    {
                    //        v.GetResult(dataSet);
                    //    }
                    //    //}
                    //    //reader.Close();
                    //}
                    //qrEvt.Data = "Đã tìm xong";
                    //onFinished(qrEvt);
                    break;
                    #endregion

                //tim theo loai dat,so mat tien,..
                case 1:
                    #region tim theo loai dat,...
                    //xet loai dat de biet xet trong bang gia dat nao
                    if (_info.LoaiDat != "")
                    {
                        lstSql.Add(string.Format(infoSql.LoaiDatSql));
                    }
                    if (_info.SoMatTien != "")
                    {
                        lstSql.Add(string.Format(infoSql.SoMatTienSql));
                    }
                    if (_info.SoTo != "")
                    {
                        lstSql.Add(string.Format(infoSql.SoToSql));
                    }
                    if (_info.SoThua != "")
                    {
                        lstSql.Add(string.Format(infoSql.SoThuaSql));
                    }
                    #endregion
                    break;
                case 2:
                    //tim theo vi tri
                    #region tim theo vi tri

                    #endregion
                    break;
                case 3:
                    //tim theo dien tich
                    #region tim theo dien tich
                    if (_info.DienTich != "")
                    {
                        lstSql.Add(string.Format(infoSql.DienTichSql));
                    }
                    #endregion
                    break;
                default:
                    break;
            }
            c = lstSql.Count;
            if (c > 0)
            {
                whereClause += string.Format("{0}", lstSql[0]);
                for (int i = 1; i < c; i++)
                {
                    whereClause += string.Format(" and {0}", lstSql[i]);
                }
                selectSql = selectSql + whereClause;
                adapter = new SqlDataAdapter(_sqlTable.GetSqlCommand(selectSql));
                adapter.Fill(dataSet);
                //MessageBox.Show(selectSql);
                //reader = _sqlTable.GetSqlCommand(whereClause).ExecuteReader();
                //if (reader.HasRows)
                //{
                foreach (IQueryThuaView v in _views)
                {
                    v.GetResult(dataSet);
                }
                //}
                //reader.Close();
            }
            qrEvt.Data = "Đã tìm xong";
            onFinished(qrEvt);

            _sqlTable.CloseConnection();
        }
Exemplo n.º 5
0
 void IReceiverView.Load(EnumG1ArcGisTnRecType type)
 {
     SdeConnection conn = new SdeConnection();
     ISdeConnectionInfo sdeConn = (ISdeConnectionInfo)conn;
     _fcName = new TnFeatureClassName(sdeConn.Workspace);
     _tblName = new TnTableName(sdeConn.Workspace);
     //if (type == EnumG1ArcGisTnRecType.Duong)
     //{
     //    this._dicSql[type]=string.Format("select distinct {0} from {1}", this._dicColsName[type], this._dicTableName[type]);
     //}
     //else if (type == EnumG1ArcGisTnRecType.Doanduong)
     //{
     //    string.Format("select {0},{1},{2} from {3} where {4}=N'{5}'", _fcName.FC_DUONG.MA_DUONG, _fcName.FC_DUONG.BAT_DAU, _fcName.FC_DUONG.KET_THUC, "sde.thixa_duong", _dicColsNameInWhereClause[type], cbxDuong.Text);
     //}
     _dicSql[EnumG1ArcGisTnRecType.Doanduong] = string.Format("select {0},{1},{2} from {3} where {4}=N'{5}'", _tblName.TEN_DUONG.MA_DUONG, _tblName.TEN_DUONG.BAT_DAU, _tblName.TEN_DUONG.KET_THUC, DataNameTemplate.Ten_Duong, _tblName.TEN_DUONG.TEN_DUONG, cbxDuong.Text);
     //_dicSql.Add(EnumG1ArcGisTnRecType.Doanduong, );
     //_sql = string.Format("select {0},{1},{2} from {3} where {4}='a'", _fcName.FC_DUONG.MA_DUONG, _fcName.FC_DUONG.BAT_DAU, _fcName.FC_DUONG.KET_THUC, "do.thixa_duong", _fcName.FC_DUONG.TEN_DUONG);
     //_dicSql.Add(EnumG1ArcGisTnRecType.Doanduong, "");
     _dicSql[EnumG1ArcGisTnRecType.Duong] = string.Format("select distinct {0} from {1}", _tblName.TEN_DUONG.TEN_DUONG, DataNameTemplate.Ten_Duong);
     //_dicSql.Add(EnumG1ArcGisTnRecType.Huyen, "");
     _dicSql[EnumG1ArcGisTnRecType.Xa] = string.Format("select {0},{1} from {2}", _fcName.FC_RANH_XA_POLY.MA_XA, _fcName.FC_RANH_XA_POLY.TEN_XA, DataNameTemplate.Ranh_Xa_Poly);
     //MessageBox.Show("line 126 CalculationView --" + type.ToString() + "\n " + _dicSql[EnumG1ArcGisTnRecType.Xa]);
     _loaderController.ReqLoad(type);
 }
Exemplo n.º 6
0
        void ILandpriceView.LoadPrice()
        {
            if (_conn == null)
            {
                _conn = new SdeConnection();
                _sdeConn = (ISdeConnectionInfo)_conn;
                _fw = (IFeatureWorkspace)_sdeConn.Workspace;
                _fcName = new TnFeatureClassName(_sdeConn.Workspace);
                _tblName = new TnTableName(_sdeConn.Workspace);

            }
            //MessageBox.Show(string.Format("line 122 GLandPriceView layerCount={0}", _mapView.GetMapControl().LayerCount));
            //if (_mapView.GetMapControl().LayerCount == 0)
            //{
            //    MessageBox.Show(string.Format("line 125 GLandPriceView layerCount={0}", _mapView.GetMapControl().LayerCount));
            //    _tgdName = string.Format("{0}_{1}", DataNameTemplate.Thua_Gia_Dat, _conf.NamApDung);
            //    IFeatureClass fc = _fw.OpenFeatureClass(_tgdName);
            //    IFeatureLayer fl = new FeatureLayerClass();
            //    fl.FeatureClass = fc;
            //    fl.Name = fc.AliasName;
            //    ILayer layer = (ILayer)fl;
            //    _mapView.AddLayer(layer);
            //}

            _controller.LoadPrice();
        }
Exemplo n.º 7
0
 void IQueryThuaView.Query()
 {
     //this.Cursor = Cursors.AppStarting;
     if (_conn == null)
     {
         _conn = new SdeConnection();
         _sdeConn = (ISdeConnectionInfo)_conn;
         _fcName = new TnFeatureClassName(_sdeConn.Workspace);
     }
     _info.SetWorkspace(_sdeConn.Workspace);
     _controller.Query() ;
 }
Exemplo n.º 8
0
 private void turnOnData()
 {
     SdeConnection conn = new SdeConnection();
     ISdeConnectionInfo sdeConn = (ISdeConnectionInfo)conn;
     _fcName = new TnFeatureClassName(sdeConn.Workspace);
     _tblName = new TnTableName(sdeConn.Workspace);
 }
Exemplo n.º 9
0
        void ILandprice.LoadPriceFromKey()
        {
            _conn = new SdeConnection();
            _sdeConn = (ISdeConnectionInfo)_conn;
            _fw = (IFeatureWorkspace)_sdeConn.Workspace;
            IQueryFilter qrf = new QueryFilterClass();
            _fcName = new TnFeatureClassName(_sdeConn.Workspace);
            _nameOfThuaGiaDat = string.Format("{0}_{1}", _tableName, _conf.NamApDung);
            try
            {
                _thuaGiaDatFc = _fw.OpenFeatureClass(_nameOfThuaGiaDat);
                _thuaGiaDatTable = (ITable)_thuaGiaDatFc;
            }
            catch { MessageBox.Show(string.Format("Không tìm thấy bảng {0}", _nameOfThuaGiaDat)); }

            _fcName.FC_THUA_GIADAT.NAME = _nameOfThuaGiaDat;
            _fcName.FC_THUA_GIADAT.InitIndex();

            List<ThuaGiaDatInfo> thuaGiaDat = new List<ThuaGiaDatInfo>();
            if (this._mathua != null)
            {
                //object giadat;
                //object dongia;
                //object dientich;
                //object dientichpl;
                //object giadatTheoDientich;
                int khoaGia;
                //int khoaGiaTay;
                //int khoaGiaTuDong;
                //object khoaViTri;
                //object soMatTien;
                //object soMatHem;
                //object cachtinh;

                qrf.WhereClause = string.Format("{0}='{1}'", _fcName.FC_THUA_GIADAT.MA_THUA, _mathua);
                //MessageBox.Show(string.Format("line 139 {0}", qrf.WhereClause));
                IFeatureCursor fcur = _thuaGiaDatFc.Search(qrf, false);
                IFeature ft = null;
                bool result = false;
                try
                {
                    int i = 0;
                    while ((ft = fcur.NextFeature()) != null)
                    {
                        thuaGiaDat.Add(new ThuaGiaDatInfo());
                        //MessageBox.Show(string.Format("line 147 - {0}_{1}",thuaGiaDat.Count,i));
                        thuaGiaDat[i].Mathua = this._mathua;
                        thuaGiaDat[i].Oid = ft.get_Value(ft.Fields.FindField(_fcName.FC_THUA_GIADAT.OID));
                        thuaGiaDat[i].Dongia = ft.get_Value(ft.Fields.FindField(_fcName.FC_THUA_GIADAT.DON_GIA));
                        thuaGiaDat[i].Giadat = ft.get_Value(ft.Fields.FindField(_fcName.FC_THUA_GIADAT.GIA_DAT));
                        result = int.TryParse(ft.get_Value(ft.Fields.FindField(_fcName.FC_THUA_GIADAT.LOCKED)).ToString(), out khoaGia);
                        if (!result)
                        {
                            khoaGia = 0;
                        }
                        thuaGiaDat[i].Khoagia = khoaGia;
                        thuaGiaDat[i].Hesovitri = ft.get_Value(ft.Fields.FindField(_fcName.FC_THUA_GIADAT.HE_SO_K));
                        thuaGiaDat[i].Cachtinh = ft.get_Value(ft.Fields.FindField(_fcName.FC_THUA_GIADAT.CACH_TINH));
                        thuaGiaDat[i].Dientich = ft.get_Value(ft.Fields.FindField(_fcName.FC_THUA_GIADAT.DIEN_TICH));
                        thuaGiaDat[i].Dientichpl = ft.get_Value(ft.Fields.FindField(_fcName.FC_THUA_GIADAT.DIEN_TICH_PHAP_LY));
                        thuaGiaDat[i].Maduong = ft.get_Value(ft.Fields.FindField(_fcName.FC_THUA_GIADAT.MA_DUONG));
                        thuaGiaDat[i].Mahem = ft.get_Value(ft.Fields.FindField(_fcName.FC_THUA_GIADAT.MA_HEM));
                        i++;
                    }
                    //MessageBox.Show(string.Format("line 157 - {0}_{1}", thuaGiaDat.Count, i));
                    if (thuaGiaDat.Count > 0)
                    {
                        _view.UpDate(thuaGiaDat);
                    }
                }
                catch (Exception e1) { MessageBox.Show(string.Format("Line 167 - GLandprice - {0}", e1)); }
                finally { Marshal.ReleaseComObject(fcur); }
            }
        }
Exemplo n.º 10
0
        public void Find(List<object> mathua,object maduong)
        {
            #region khai bao ban dau
            CalculationEventArg evt = new CalculationEventArg();
            SdeConnection conn = new SdeConnection();
            ISdeConnectionInfo sdeConn = conn as ISdeConnectionInfo;
            IWorkspaceEdit wspEdit = (IWorkspaceEdit)sdeConn.Workspace;
            IMultiuserWorkspaceEdit mwspEdit = (IMultiuserWorkspaceEdit)sdeConn.Workspace;
            this._fcName = new TnFeatureClassName(sdeConn.Workspace);
            this._tblName = new TnTableName(sdeConn.Workspace);
            IFeatureWorkspace fw = (IFeatureWorkspace)sdeConn.Workspace;
            #endregion

            #region mo bang he so vi tri
            ITable tblHesoVitri;
            try
            {
                tblHesoVitri = fw.OpenTable(DataNameTemplate.He_So_K);
            }
            catch (Exception exc)
            {
                evt.Log = string.Format("Không tìm thấy lớp dữ liệu: {0}", DataNameTemplate.He_So_K);
                _caller.onCalculating(evt);
                _caller.onFinished(evt);
                return;
            }
            #endregion

            #region xet loai dat

            #endregion

            #region lay cac quy tac tim vi tri
            IQueryFilter qrf = new QueryFilterClass();
            #region log---

            evt.Log = string.Format("\n----Lấy các quy tắc tìm vị trí thửa từ bảng {0}, ứng với hệ số {1} ...", DataNameTemplate.He_So_K, TnHeSoK.DatOMtTtDt);
            _caller.onCalculating(evt);
            #endregion
            //MessageBox.Show(String.Format("line 189 CalcThuaMattien, hsk={0}",TnHeSoK.DatOMtTtDt));
            qrf.WhereClause = string.Format("{0}='{1}'", "hesovitri", TnHeSoK.DatOMtTtDt);
            ICursor cur = tblHesoVitri.Search(qrf, false);
            string quytac = "";
            string cachtinh = "";
            string cachtinhdongia = "";
            try
            {
                IRow row = cur.NextRow();
                if (row != null)
                {

                    quytac = row.get_Value(_tblName.HESO_VITRI.GetIndex(_tblName.HESO_VITRI.QUY_TAC)).ToString();
                    cachtinh = row.get_Value(_tblName.HESO_VITRI.GetIndex(_tblName.HESO_VITRI.CACH_TINH)).ToString();
                    cachtinhdongia = row.get_Value(_tblName.HESO_VITRI.GetIndex(_tblName.HESO_VITRI.CACH_TINH_DON_GIA)).ToString();
                    //MessageBox.Show(string.Format("line 198 CalcMatTien, quytac={0}", quytac));
                }
            }
            catch { }
            finally
            {
                Marshal.ReleaseComObject(cur);
            }
            #endregion
        }
Exemplo n.º 11
0
 void IInfoForQuery.SetWorkspace(IWorkspace wsp)
 {
     this._wsp=wsp;
     this._fcName = new TnFeatureClassName(wsp);
     this._tableName = new TnTableName(wsp);
 }
Exemplo n.º 12
0
        public void Calculate(List<object> newId)
        {
            #region tinh gia dat
            //cachtinhdongia = "[giadatduong] * [hesodatsxkd]";
            //cachtinhdongia = "DonGiaSxkdMattienDt(Multiply([giadatduong],[hesodatsxkd]))";
            //cachtinhdongia = "DonGiaOcoNnMattienDt([giadatduong])";
            //cachtinhdongia = "DonGiaOcoSxkdMattienDt([giadatduong])";
            //cachtinh="[giadatduong] * [dientich]";
            //cachtinh = "GiaDatSxkdMattienDt([giadatduong] * [hesodatsxkd] * [dientich])";
            //cachtinh = "DonGiaOcoNnMattienDt(Multiply([giadatduong],[giadatnongnghiep]))";

            #region khoi tao cac bien
            SdeConnection conn = new SdeConnection();
            ISdeConnectionInfo sdeConn = conn as ISdeConnectionInfo;
            _wspEdit = (IWorkspaceEdit)sdeConn.Workspace;
            _mwspEdit = (IMultiuserWorkspaceEdit)sdeConn.Workspace;
            IFeatureWorkspace fw = (IFeatureWorkspace)sdeConn.Workspace;
            copyTool = new DataManager(sdeConn.Workspace, sdeConn.Environment);
            this._fcName = new TnFeatureClassName(sdeConn.Workspace);
            this._tblName = new TnTableName(sdeConn.Workspace);
            string tgdDraft = string.Format("{0}_{1}", DataNameTemplate.Thua_Gia_Dat_Draft, this._currentConfig.NamApDung);
            string gdd = string.Format("{0}_{1}", DataNameTemplate.Gia_Dat_Duong, this._currentConfig.NamApDung);
            string gdhem = string.Format("{0}_{1}", DataNameTemplate.Gia_Hem, this._currentConfig.NamApDung);
            string gdhemPhu = string.Format("{0}_{1}", DataNameTemplate.Gia_Hem_Phu, this._currentConfig.NamApDung);
            string thuaName = string.Format("{0}_{1}", DataNameTemplate.Thua, this._currentConfig.NamApDung);
            string gdNnName=string.Format("{0}_{1}", DataNameTemplate.Gia_Dat_Nongnghiep, this._currentConfig.NamApDung);
            string gdPnnNtName = string.Format("{0}_{1}", DataNameTemplate.Gia_Dat_Pnn_Nongthon, this._currentConfig.NamApDung);
            _fcName.FC_THUA.NAME = thuaName;
            _fcName.FC_THUA.InitIndex();
            _fcName.FC_THUA_GIADAT_DRAFT.NAME = tgdDraft;
            _fcName.FC_THUA_GIADAT_DRAFT.InitIndex();
            _tblName.GIA_DAT_DUONG.NAME = gdd;
            _tblName.GIA_DAT_DUONG.InitIndex();
            _fcName.FC_GIA_DAT_HEM.NAME = gdhem;
            _fcName.FC_GIA_DAT_HEM.InitIndex();
            _fcName.FC_GIA_DAT_HEM_PHU.NAME = gdhemPhu;
            _fcName.FC_GIA_DAT_HEM_PHU.InitIndex();
            _tblName.GIA_DAT_NONGNGHIEP.NAME = gdNnName;
            _tblName.GIA_DAT_NONGNGHIEP.InitIndex();
            _tblName.GIA_DAT_O_NONGTHON.NAME = gdPnnNtName;
            _tblName.GIA_DAT_O_NONGTHON.InitIndex();
            IFeatureClass tgdDraftFeatureClass = null;
            try
            {
                tgdDraftFeatureClass = fw.OpenFeatureClass(tgdDraft);
            }
            catch
            {
                MessageBox.Show("Không tìm thấy bảng " + tgdDraft);
                return;
            }
            IFeatureClass fcGiaDatHem = null;
            try
            {
                fcGiaDatHem = fw.OpenFeatureClass(gdhem);
            }
            catch
            {
                MessageBox.Show("Không tìm thấy bảng " + gdhem);
            }
            IFeatureClass fcGiaDatHemPhu = null;
            try
            {
                fcGiaDatHemPhu = fw.OpenFeatureClass(gdhemPhu);
            }
            catch
            {
                MessageBox.Show("Không tìm thấy bảng " + gdhemPhu);
            }
            ITable tblLoaiDat;
            ITable tblThuaGiaDatDraft;
            ITable tblGiaDatDuong;
            ITable tblHesoVitri;
            ITable tblTenDuong;
            ITable tblGiaDatNn;
            ITable tblGiaDatPnnNt;
            IFeatureClass fcThua;
            IFeatureClass fcXa;
            IFeatureClass fcDuong;
            IFeatureClass fcKtvhxh;
            IFeatureClass fcHemChinh;
            #endregion

            #region dinh nghia cac bien

            try
            {
                fcThua = fw.OpenFeatureClass(thuaName);
            }
            catch
            {
                MessageBox.Show("Không tìm thấy bảng " + thuaName);
                return;
            }

            try
            {
                tblTenDuong = fw.OpenTable(DataNameTemplate.Ten_Duong);
            }
            catch(Exception ex)
            {
                MessageBox.Show("Không tìm thấy bảng " + DataNameTemplate.Ten_Duong);
                return;
            }

            try
            {
                tblLoaiDat = fw.OpenTable(DataNameTemplate.Loai_Dat);
                tblThuaGiaDatDraft = (ITable)tgdDraftFeatureClass;

                //tblThuaGiaDat = fw.OpenTable(_fcName.FC_THUA_GIADAT.NAME);
                tblGiaDatDuong = fw.OpenTable(gdd);

                tblHesoVitri = fw.OpenTable(DataNameTemplate.He_So_K);
            }
            catch
            {
                MessageBox.Show("Không tìm thấy bảng " + tgdDraft);
                return;
            }

            try
            {
                tblGiaDatNn = fw.OpenTable(gdNnName);
            }
            catch (Exception ex)
            {
                MessageBox.Show("Không tìm thấy bảng " + gdNnName);
                return;
            }

            try
            {
                tblGiaDatPnnNt = fw.OpenTable(gdPnnNtName);
            }
            catch (Exception ex)
            {
                MessageBox.Show("Không tìm thấy bảng " + gdPnnNtName);
                return;
            }

            try
            {
                fcXa = fw.OpenFeatureClass(DataNameTemplate.Ranh_Xa_Poly);
            }
            catch
            {
                MessageBox.Show("Không tìm thấy bảng " + DataNameTemplate.Ranh_Xa_Poly);
                return;
            }

            try
            {
                fcHemChinh = fw.OpenFeatureClass(DataNameTemplate.Hem);
            }
            catch
            {
                MessageBox.Show("Không tìm thấy bảng " + DataNameTemplate.Hem);
                return;
            }

            ISDETableEditor sdeTblTgdEditor = new SDETable(tblThuaGiaDatDraft, sdeConn.Workspace);
            IQueryFilter qrf = new QueryFilterClass();
            #endregion

            string paramTableName = DataNameTemplate.Thong_So + "_" + _currentConfig.NamApDung;
            ITable paramTable = fw.OpenTable(paramTableName);
            Dictionary<string, object> pars4TinhGia = new Dictionary<string, object>();
            Dictionary<string, object> pars4TinhDonGia = new Dictionary<string, object>();
            IQueryFilter q = new QueryFilterClass();
            q.WhereClause = "";
            ICursor parCursor = paramTable.Search(q, false);
            IRow parRow = null;
            try
            {
                while ((parRow = parCursor.NextRow()) != null)
                {
                    string parName = parRow.get_Value(parRow.Fields.FindField(_tblName.THONG_SO.TEN_THONG_SO)).ToString();
                    object parVal = parRow.get_Value(parRow.Fields.FindField(_tblName.THONG_SO.GIA_TRI));
                    try
                    {
                        pars4TinhGia.Add(parName, parVal);
                        pars4TinhDonGia.Add(parName, parVal);
                    }
                    catch (Exception ex)
                    {
                        continue;
                    }
                }
            }
            catch (Exception) { }
            finally { Marshal.ReleaseComObject(parCursor); }
            pars4TinhGia.Add(ExpressionParameters.GiaDatDuong, 0);
            pars4TinhGia.Add(ExpressionParameters.DienTichPl, 0);
            pars4TinhGia.Add(ExpressionParameters.GiaDatNn,0);
            pars4TinhGia.Add(ExpressionParameters.GiaDatONT, 0);
            pars4TinhGia.Add(ExpressionParameters.GiaDatHemChinh, 0);
            pars4TinhGia.Add(ExpressionParameters.GiaDatHemPhu, 0);

            pars4TinhDonGia.Add(ExpressionParameters.GiaDatDuong,0);
            pars4TinhDonGia.Add(ExpressionParameters.GiaDatNn,0);
            pars4TinhDonGia.Add(ExpressionParameters.GiaDatONT, 0);
            pars4TinhDonGia.Add(ExpressionParameters.GiaDatHemChinh, 0);
            pars4TinhDonGia.Add(ExpressionParameters.GiaDatHemPhu, 0);

            #region vong lap tung id

            #region khoi dau
            int rowTgdNnHandleUpdate = 0;
            string cachtinh="";
            string cachtinhdongia = "";
            bool result = false;
            List<object[,]> pairColValTgd = new List<object[,]>();
            CalculationEventArg evt = new CalculationEventArg();
            if (_caller != null)
            {
                evt.Reset();
                evt.Log = "\n\nBắt đầu tính giá cho các thửa vừa xác định vị trí";
                _caller.onCalculating(evt);
            }
            int len = newId.Count;
            int thuaCount = 1;
            //MessageBox.Show(len.ToString());
            #endregion

            foreach (object o in newId)
            {
                #region lay thong tin thua gia dat
                IRow tgdRowNew = tblThuaGiaDatDraft.GetRow((int)o);
                string mathuaNew = tgdRowNew.get_Value(tgdRowNew.Fields.FindField(_fcName.FC_THUA_GIADAT_DRAFT.MA_THUA)).ToString();
                string maduongNew = tgdRowNew.get_Value(tgdRowNew.Fields.FindField(_fcName.FC_THUA_GIADAT_DRAFT.MA_DUONG)).ToString();
                string hesovitriNew = tgdRowNew.get_Value(tgdRowNew.Fields.FindField(_fcName.FC_THUA_GIADAT_DRAFT.HE_SO_K)).ToString();
                object dientich = tgdRowNew.get_Value(tgdRowNew.Fields.FindField(_fcName.FC_THUA_GIADAT_DRAFT.DIEN_TICH));
                object dientichpl = tgdRowNew.get_Value(tgdRowNew.Fields.FindField(_fcName.FC_THUA_GIADAT_DRAFT.DIEN_TICH_PHAP_LY));
                object khoagia = tgdRowNew.get_Value(tgdRowNew.Fields.FindField(_fcName.FC_THUA_GIADAT_DRAFT.LOCKED));
                object mahem=tgdRowNew.get_Value(tgdRowNew.Fields.FindField(_fcName.FC_THUA_GIADAT_DRAFT.MA_HEM));
                object dorongHem=0;
                object tenHem = "";
                //MessageBox.Show("line 237 CalcLandprice, maduong=" + maduongNew);
                if (khoagia != null)
                {
                    if (khoagia.ToString() != "0" && khoagia.ToString()!="")
                    {
                        //MessageBox.Show(khoagia.ToString());
                        if (_caller != null)
                        {
                            evt.Reset();
                            evt.IdThuaKhoaGia = o;
                            evt.mathua = mathuaNew;
                            _caller.onCalculating(evt);
                        }
                        continue;
                    }
                }
                #endregion

                #region lay cach tinh
                qrf.WhereClause = string.Format("{0}='{1}'", "hesovitri", hesovitriNew);
                ICursor curNew = tblHesoVitri.Search(qrf, false);

                try
                {
                    IRow rowNew = curNew.NextRow();
                    if (rowNew != null)
                    {
                        cachtinh = rowNew.get_Value(_tblName.HESO_VITRI.GetIndex(_tblName.HESO_VITRI.CACH_TINH)).ToString();
                        cachtinhdongia = rowNew.get_Value(_tblName.HESO_VITRI.GetIndex(_tblName.HESO_VITRI.CACH_TINH_DON_GIA)).ToString();
                        //MessageBox.Show("line 262 CalcLandprice, cachtinhdongia=" + cachtinhdongia);
                    }
                }
                catch (COMException comExc) { }
                finally
                {
                    Marshal.ReleaseComObject(curNew);
                }

                Evaluation evalTinhGia = new Evaluation(cachtinh);
                Evaluation evalTinhDonGia = new Evaluation(cachtinhdongia);
                Evaluation evalCachtinh = new Evaluation(cachtinhdongia);
                #endregion

                #region lay gia dat duong
                //MessageBox.Show("line 365 maduong=" + maduongNew);
                qrf.WhereClause = string.Format("{0}='{1}'", _tblName.GIA_DAT_DUONG.MA_DUONG, maduongNew);
                ICursor gdDuongCur = null;
                gdDuongCur = tblGiaDatDuong.Search(qrf, false);
                IRow gdDuongRow = null;
                double giaduong = 0;
                try
                {
                    if ((gdDuongRow = gdDuongCur.NextRow()) != null)
                    {
                        result = double.TryParse(gdDuongRow.get_Value(_tblName.GIA_DAT_DUONG.GetIndex(_tblName.GIA_DAT_DUONG.GIA_DAT)).ToString(), out giaduong);
                        if (!result)
                        {
                            giaduong = 0;
                        }
                        //MessageBox.Show("line 292 CalcLandprice, giaduong=" + giaduong.ToString());
                    }
                }
                catch (COMException comExc) { }
                finally { Marshal.ReleaseComObject(gdDuongCur); }
                #endregion

                #region lay ten duong
                qrf.WhereClause = string.Format("{0}='{1}'", _tblName.TEN_DUONG.MA_DUONG, maduongNew);
                ICursor tenDuongCur = null;
                tenDuongCur = tblTenDuong.Search(qrf, false);
                IRow tenDuongRow = null;
                object tenduong = "";
                object batdau = "";
                object ketthuc = "";
                try
                {
                    if ((tenDuongRow = tenDuongCur.NextRow()) != null)
                    {
                        tenduong = tenDuongRow.get_Value(_tblName.TEN_DUONG.GetIndex(_tblName.TEN_DUONG.TEN_DUONG));
                        batdau = tenDuongRow.get_Value(_tblName.TEN_DUONG.GetIndex(_tblName.TEN_DUONG.BAT_DAU));
                        ketthuc = tenDuongRow.get_Value(_tblName.TEN_DUONG.GetIndex(_tblName.TEN_DUONG.KET_THUC));
                    }
                }
                catch (COMException comExc) { giaduong = 0; }
                finally { Marshal.ReleaseComObject(tenDuongCur); }
                #endregion

                #region lay loai dat, loai xa
                qrf.WhereClause = string.Format("{0}='{1}'", _fcName.FC_THUA.MA_THUA, mathuaNew);
                IFeatureCursor thuaCur = null;
                thuaCur = fcThua.Search(qrf, false);
                IFeature thuaFt = null;
                object loaidat = "";
                object maxa = "";
                try
                {
                    if ((thuaFt = thuaCur.NextFeature()) != null)
                    {
                        loaidat = thuaFt.get_Value(_fcName.FC_THUA.GetIndex(_fcName.FC_THUA.LOAI_DAT));
                        maxa = thuaFt.get_Value(_fcName.FC_THUA.GetIndex(_fcName.FC_THUA.MA_XA));
                    }

                    #region kiem tra co dat nong nghiep

                    foreach (string s in TnLoaiDats.NONG_NGHIEP)
                    {
                        if (loaidat.ToString().Contains(s))
                        {
                            _loaidatNn = s;

                            break;
                        }
                        else
                        {
                            _loaidatNn = "";
                        }
                    }
                    #endregion
                }
                catch (COMException comExc) { }
                finally { Marshal.ReleaseComObject(thuaCur); }
                #endregion

                //danh cho thua co dat nong nghiep
                #region lay ma xa va gia dat nong nghiep
                object loaixa = "";
                object giadatNnDeGhi = 0;
                object giadatNnDeTinh = 0;
                int loaiDoThi = 0;
                object loaiDatNnDeTinh = "";
                string nnStart = hesovitriNew.Substring(0, 1);
                string nnEnd = hesovitriNew.Substring(hesovitriNew.Length - 1, 1);
                object giadatPnnNt = 0;
                double giahem = 0;
                double giahemPhu = 0;
                if (nnStart=="5" || nnStart=="2"|| nnStart=="1")
                {

                    qrf.WhereClause = string.Format("{0}='{1}'", _fcName.FC_RANH_XA_POLY.MA_XA, maxa);
                    IFeatureCursor xaFcr = fcXa.Search(qrf, false);
                    IFeature xaFt = null;
                    try
                    {
                        if ((xaFt = xaFcr.NextFeature()) != null)
                        {
                            loaixa = xaFt.get_Value(xaFt.Fields.FindField(_fcName.FC_RANH_XA_POLY.MA_LOAI_XA));
                            result = int.TryParse(xaFt.get_Value(xaFt.Fields.FindField(_fcName.FC_RANH_XA_POLY.MA_LOAI_XA)).ToString(), out loaiDoThi);
                        }
                    }
                    catch (Exception ex) { loaixa = ""; }
                    finally { Marshal.ReleaseComObject(xaFcr); }

                    if (loaixa != "")
                    {
                        #region neu la dat o nong thon
                        if (nnStart == "2")
                        {
                            object vitriPnn;
                            object khuvucPnn;
                            getVitriPnnNt(hesovitriNew, out vitriPnn, out khuvucPnn);
                            qrf.WhereClause = string.Format("{0}='{1}' and {2}='{3}' and {4}='{5}'",
                                _tblName.GIA_DAT_O_NONGTHON.MA_LOAI_XA, loaixa,
                                _tblName.GIA_DAT_O_NONGTHON.VI_TRI, vitriPnn,
                                _tblName.GIA_DAT_O_NONGTHON.MA_KHU_VUC, khuvucPnn);
                            //MessageBox.Show("line 471 CalcLandprice, qrf=" + qrf.WhereClause);
                            ICursor gdPnnCur = tblGiaDatPnnNt.Search(qrf, false);
                            IRow gdPnnRow = null;
                            try
                            {
                                if ((gdPnnRow = gdPnnCur.NextRow()) != null)
                                {
                                    giadatPnnNt = gdPnnRow.get_Value(gdPnnRow.Fields.FindField(_tblName.GIA_DAT_O_NONGTHON.GIA_DAT));
                                }
                                else
                                {
                                    giadatPnnNt = 0;
                                }
                                //MessageBox.Show("line 484 CalcLandprice, giadat=" + giadatPnnNt);
                            }
                            catch (Exception ex) { giadatPnnNt = 0; }
                            finally { Marshal.ReleaseComObject(gdPnnCur); }
                        }
                        #endregion

                        #region neu co dat nong nghiep
                        if (nnStart == "5" || (nnStart == "2" && nnEnd == "2") || nnStart == "1")
                        {
                            loaiDatNnDeTinh = _loaidatNn;
                            object vitriNn = getVitriNongNghiep(hesovitriNew);

                            if (loaiDoThi != 0)
                            {
                                vitriNn = 1;
                                loaiDatNnDeTinh = "LNQ";
                            }
                            qrf.WhereClause = string.Format("{0}='{1}' and {2}='{3}' and {4}='{5}'",
                                _tblName.GIA_DAT_NONGNGHIEP.MA_LOAI_DAT, loaiDatNnDeTinh,
                                _tblName.GIA_DAT_NONGNGHIEP.MA_LOAI_XA, loaixa,
                                _tblName.GIA_DAT_NONGNGHIEP.VI_TRI, vitriNn);
                            ICursor gdNnCur = tblGiaDatNn.Search(qrf, false);
                            IRow gdNnRow = null;
                            try
                            {
                                if ((gdNnRow = gdNnCur.NextRow()) != null)
                                {
                                    giadatNnDeGhi = gdNnRow.get_Value(gdNnRow.Fields.FindField(_tblName.GIA_DAT_NONGNGHIEP.GIA_DAT));
                                }
                                else
                                {
                                    giadatNnDeGhi = 0;
                                }
                            }
                            catch (Exception ex) { giadatNnDeGhi = 0; }
                            finally { Marshal.ReleaseComObject(gdNnCur); }
                            //MessageBox.Show(string.Format("line 331 CalcLandprice giadatnndegi={0}", giadatNnDeGhi));

                            //neu ko phai dat thuan nong nghiep
                            if (nnStart != "1")
                            {
                                if (double.Parse(dientichpl.ToString()) < 200)
                                {
                                    giadatNnDeTinh = 0;
                                }
                                else
                                {
                                    giadatNnDeTinh = giadatNnDeGhi;
                                }
                            }
                            else
                            {
                                giadatNnDeTinh = giadatNnDeGhi;
                            }
                        }
                        #endregion

                    }
                    //lay gia dat nn o vi tri theo quy dinh (vt3)
                    //qrf.WhereClause=string.Format("{0}='{1}' and {2}='{3}'",_tblName.GIA_DAT_NONGNGHIEP.MA_LOAI_DAT,_loaidatNn,_tblName.GIA_DAT_NONGNGHIEP.MA_LOAI_XA,)
                }

                #endregion
                if (mahem != null)
                {
                    #region lay thong tin hem
                    //MessageBox.Show("line 567 CalcLandprice, mahem=" + mahem);

                    if (mahem.ToString() != "0" && mahem.ToString() != "")
                    {
                        qrf.WhereClause = string.Format("{0}='{1}'", _fcName.FC_HEM.MA_HEM, mahem);
                        IFeatureCursor hemFcur = fcHemChinh.Search(qrf, false);
                        IFeature hemFt = null;
                        int maHemChinh = 0;
                        try
                        {
                            if ((hemFt = hemFcur.NextFeature()) != null)
                            {
                                dorongHem = hemFt.get_Value(hemFt.Fields.FindField(_fcName.FC_HEM.DO_RONG));
                                tenHem = hemFt.get_Value(hemFt.Fields.FindField(_fcName.FC_HEM.TEN_HEM));
                                maduongNew = hemFt.get_Value(hemFt.Fields.FindField(_fcName.FC_HEM.MA_DUONG)).ToString();
                                result = int.TryParse(hemFt.get_Value(hemFt.Fields.FindField(_fcName.FC_HEM.HEM_CHINH)).ToString(), out maHemChinh);
                                if (!result)
                                {
                                    maHemChinh = 0;
                                }
                                //MessageBox.Show("line 586 CalcLandprice,mahemchinh=" + maHemChinh);
                            }
                        }
                        catch (Exception ex)
                        {
                            //MessageBox.Show("line 566 CalcLandprice, ex=" + ex.ToString());
                        }
                        finally { Marshal.ReleaseComObject(hemFcur); }

                        #region lay gia dat hem chinh
                        string hsvitriHem = getHesoHem(hesovitriNew);
                        //MessageBox.Show("line 597 hsvitrihem=" + hsvitriHem);
                        if (hsvitriHem == "0")
                        {
                            continue;
                        }
                        if (maHemChinh == 0)
                        {
                            qrf.WhereClause = string.Format("{0}='{1}' and {2}='{3}'", _fcName.FC_GIA_DAT_HEM.MA_HEM, mahem, _fcName.FC_GIA_DAT_HEM.HE_SO, hsvitriHem);
                            //MessageBox.Show("line 603 CalcLandprice, qrf=" + qrf.WhereClause);
                            IFeatureCursor gdHemCur = null;
                            gdHemCur = fcGiaDatHem.Search(qrf, false);
                            IFeature gdHemRow = null;
                            //MessageBox.Show("line 588 CalcLandprice, giaHem=" + _fcName.FC_GIA_DAT_HEM.GetIndex(_fcName.FC_GIA_DAT_HEM.GIA_DAT));
                            try
                            {
                                if ((gdHemRow = gdHemCur.NextFeature()) != null)
                                {

                                    result = double.TryParse(gdHemRow.get_Value(_fcName.FC_GIA_DAT_HEM.GetIndex(_fcName.FC_GIA_DAT_HEM.GIA_DAT)).ToString(), out giahem);
                                    if (!result)
                                    {
                                        giahem = 0;
                                    }
                                    //MessageBox.Show("line 588 CalcLandprice, giaHem=" + giahem.ToString());
                                }
                            }
                            catch (COMException comExc)
                            {
                                //MessageBox.Show("line 593 CalcLandprice comexc=" + comExc.ToString());
                            }
                            finally { Marshal.ReleaseComObject(gdHemCur); }
                        }
                        #endregion
                        #region lay gia hem phu
                        else
                        {
                            qrf.WhereClause = string.Format("{0}='{1}' and {2}='{3}'", _fcName.FC_GIA_DAT_HEM_PHU.MA_HEM, mahem, _fcName.FC_GIA_DAT_HEM_PHU.HE_SO, hsvitriHem);
                            //MessageBox.Show("line 632 CalcLandprice, qrf=" + qrf.WhereClause);
                            IFeatureCursor gdHemPhuCur = null;
                            gdHemPhuCur = fcGiaDatHemPhu.Search(qrf, false);
                            IFeature gdHemPhuRow = null;
                            //MessageBox.Show("line 588 CalcLandprice, giaHem=" + _fcName.FC_GIA_DAT_HEM.GetIndex(_fcName.FC_GIA_DAT_HEM.GIA_DAT));
                            try
                            {
                                if ((gdHemPhuRow = gdHemPhuCur.NextFeature()) != null)
                                {

                                    result = double.TryParse(gdHemPhuRow.get_Value(_fcName.FC_GIA_DAT_HEM_PHU.GetIndex(_fcName.FC_GIA_DAT_HEM_PHU.GIA_DAT)).ToString(), out giahemPhu);
                                    if (!result)
                                    {
                                        giahemPhu = 0;
                                    }
                                    //MessageBox.Show("line 646 CalcLandprice, giaHemPhu=" + giahemPhu.ToString());
                                }
                            }
                            catch (COMException comExc)
                            {
                                //MessageBox.Show("line 593 CalcLandprice comexc=" + comExc.ToString());
                            }
                            finally { Marshal.ReleaseComObject(gdHemPhuCur); }
                        }
                        #endregion

                        #region lay gia duong tu lop gia hem

                        qrf.WhereClause = string.Format("{0}='{1}'", _tblName.GIA_DAT_DUONG.MA_DUONG, maduongNew);
                        gdDuongCur = null;
                        gdDuongCur = tblGiaDatDuong.Search(qrf, false);
                        gdDuongRow = null;
                        giaduong = 0;
                        try
                        {
                            if ((gdDuongRow = gdDuongCur.NextRow()) != null)
                            {
                                result = double.TryParse(gdDuongRow.get_Value(_tblName.GIA_DAT_DUONG.GetIndex(_tblName.GIA_DAT_DUONG.GIA_DAT)).ToString(), out giaduong);
                                if (!result)
                                {
                                    giaduong = 0;
                                }
                                //MessageBox.Show("line 292 CalcLandprice, giaduong=" + giaduong.ToString());
                            }
                        }
                        catch (COMException comExc) { }
                        finally { Marshal.ReleaseComObject(gdDuongCur); }
                        #endregion
                    }
                    #endregion
                }
                    //MessageBox.Show(string.Format("line 346 CalcLandprice giadatnndegi={0}, giadatnndetinh={1}", giadatNnDeGhi, giadatNnDeTinh));
                #region lay gia dat o nong thon
                int intHsk = int.Parse(hesovitriNew);
                #endregion

                #region tinh gia
                //evalTinhGia.Giadatduong = giaduong;
                //evalTinhGia.Dientich = dientich;
                //evalTinhGia.Dientichpl = dientichpl;
                //evalTinhGia.GiadatNn = giadatNnDeTinh;
                //evalTinhDonGia.Giadatduong = giaduong;
                //evalTinhDonGia.GiadatNn = giadatNnDeTinh;
                //Dictionary<string, object> pars = new Dictionary<string, object>();
                //MessageBox.Show("line 609 CalcLandprice, giaHem=" + giahem.ToString());
                pars4TinhGia[ExpressionParameters.GiaDatDuong] = giaduong;
                pars4TinhGia[ExpressionParameters.DienTichPl] = dientichpl;
                pars4TinhGia[ExpressionParameters.GiaDatNn] = giadatNnDeTinh;
                pars4TinhGia[ExpressionParameters.GiaDatONT] = giadatPnnNt;
                pars4TinhGia[ExpressionParameters.GiaDatHemChinh] = giahem;
                pars4TinhGia[ExpressionParameters.GiaDatHemPhu] = giahemPhu;
                //pars.Add(ExpressionParameters.HeSoDatSxkd, _currentConfig.PGiaDatSxkddt);
                evalTinhGia.Params = pars4TinhGia;

                //Dictionary<string, object> pars1 = new Dictionary<string, object>();
                //pars1.Add(ExpressionParameters.GiaDatDuong, giaduong);
                //pars1.Add(ExpressionParameters.GiaDatNn, giadatNnDeTinh);
                //pars1.Add(ExpressionParameters.HeSoDatSxkd, _currentConfig.PGiaDatSxkddt);
                pars4TinhDonGia[ExpressionParameters.GiaDatDuong] = giaduong;
                pars4TinhDonGia[ExpressionParameters.DienTichPl] = dientichpl;
                pars4TinhDonGia[ExpressionParameters.GiaDatNn] = giadatNnDeTinh;
                pars4TinhDonGia[ExpressionParameters.GiaDatONT] = giadatPnnNt;
                pars4TinhDonGia[ExpressionParameters.GiaDatHemChinh] = giahem;
                pars4TinhDonGia[ExpressionParameters.GiaDatHemPhu] = giahemPhu;
                evalTinhDonGia.Params = pars4TinhDonGia;

                object giaMoiTinh = evalTinhGia.EvaluateLandPrice();
                object dongiaMoiTinh = evalTinhDonGia.EvaluateLandPrice();
                //MessageBox.Show(string.Format("line 660 CalcLandprice dongia={0}", dongiaMoiTinh));
                #endregion

                #region ghi cach tinh
                _methodBuilder.BatDau = batdau;
                _methodBuilder.CachTinh = cachtinh;
                _methodBuilder.CachTinhDonGia = cachtinhdongia;
                _methodBuilder.GiaDatNN = giadatNnDeGhi;
                _methodBuilder.GiaDuong = giaduong;
                _methodBuilder.KetThuc = ketthuc;
                _methodBuilder.LoaiDat = loaidat;
                _methodBuilder.TenDuong = tenduong;
                _methodBuilder.DoRongHem = dorongHem;
                _methodBuilder.LoaiXa = loaixa;
                string strCachtinh=_methodBuilder.GetMethodString(hesovitriNew);
                //evt.Reset();
                //evt.Log = string.Format("\n\nĐộ dài cách tính:{0}, cachtinh={1}",strCachtinh.Length,strCachtinh);
                //_caller.onCalculating(evt);
                //MessageBox.Show(string.Format("line 241 CalcLandprice {0}, {1}",hesovitriNew,TnHeSoK.DatOMatTienDt));
                //if (hesovitriNew == TnHeSoK.DatOMatTienDt.ToString())
                //{
                //    strCachtinh = string.Format("Đất ở đô thị ({0}), mặt tiền đường {1} (giá={2}) đoạn từ {3} đến {4}. Giá đất = {5}", loaidat, tenduong, giaduong, batdau, ketthuc, cachtinhdongia);
                //    //MessageBox.Show(string.Format("line 241 CalcLandprice \n{0}", strCachtinh));
                //}
                //else if (hesovitriNew == TnHeSoK.DatSxkdMatTienDt.ToString())
                //{
                //    strCachtinh = string.Format("Đất sxkd tại đô thị ({0}) (hệ số ={1}), mặt tiền đường {2} (giá={3}) đoạn từ {4} đến {5}. Giá đất = {6}", loaidat, _currentConfig.PGiaDatSxkddt, tenduong,giaduong, batdau, ketthuc, cachtinhdongia);
                //}
                //else if (hesovitriNew == TnHeSoK.DatONnMatTien.ToString())
                //{
                //    strCachtinh = string.Format("Đất ở tại đô thị có đất nông nghiệp ({0}) (giá đất nn ={1}), mặt tiền đường {2} (giá={3}) đoạn từ {4} đến {5}. Giá đất = {6}", loaidat, giadatNnDeGhi, tenduong, giaduong, batdau, ketthuc, cachtinhdongia);
                //}
                #endregion

                #region lay cach ghi cach tinh gia
                //string ct = string.Format(cachtinh);
                //MessageBox.Show(evalCachtinh.EvaluateMethod().ToString());
                #endregion

                #region luu thong tin gia va cach tinh
                pairColValTgd.Add(new object[,] { { _fcName.FC_THUA_GIADAT_DRAFT.GetIndex(_fcName.FC_THUA_GIADAT_DRAFT.DON_GIA), dongiaMoiTinh } });
                pairColValTgd.Add(new object[,] { { _fcName.FC_THUA_GIADAT_DRAFT.GetIndex(_fcName.FC_THUA_GIADAT_DRAFT.GIA_DAT), giaMoiTinh } });
                pairColValTgd.Add(new object[,] { { _fcName.FC_THUA_GIADAT_DRAFT.GetIndex(_fcName.FC_THUA_GIADAT_DRAFT.CACH_TINH), strCachtinh } });
                sdeTblTgdEditor.CacheData(o, rowTgdNnHandleUpdate, pairColValTgd, EnumTypeOfEdit.UPDATE);
                rowTgdNnHandleUpdate++;
                pairColValTgd.Clear();
                #endregion

                #region ---log
                if (_caller != null)
                {
                    evt.Reset();
                    evt.IdThuaTinhGia = o;// new object[,] { { o, "tui", "soto", "sothua" } };
                    evt.mathua = mathuaNew;
                    _caller.onCalculating(evt);
                    evt.Reset();
                    if (thuaCount < len)
                    {
                        if (thuaCount % 10 == 0)
                        {
                            evt.Log = string.Format("\n---Đã tính cho {0} thửa----", thuaCount);
                        }
                        thuaCount++;
                    }
                    else if (thuaCount == len)
                    {
                        evt.Log = string.Format("\n---Đã tính cho {0} thửa---", thuaCount);
                    }
                    _caller.onCalculating(evt);
                }
                #endregion
            }

            #endregion

            #region luu thong tin vao bang gia dat
            if (!sdeTblTgdEditor.IsEditing())
            {
                sdeTblTgdEditor.StartEditing(esriMultiuserEditSessionMode.esriMESMVersioned);
                sdeTblTgdEditor.StartEditOperation();
            }
            //else
            //{
            //    //try
            //    //{
            //    //    sdeTblTgdEditor.SaveEdit();
            //    //    sdeTblTgdEditor.StopEditOperation();
            //    //    sdeTblTgdEditor.StopEditing(true);
            //    //}
            //    //catch
            //    //{
            //    //    sdeTblTgdEditor.StopEditOperation();
            //    //    sdeTblTgdEditor.StopEditing(false);
            //    //}
            //    //sdeTblTgdEditor.StartEditing(esriMultiuserEditSessionMode.esriMESMVersioned);
            //    //sdeTblTgdEditor.StartEditOperation();
            //}

            #region ----log
            if (_caller != null)
            {
                evt.Log = string.Format("\n----||| Đang lưu bảng {0} |||---- ", tgdDraft);

                _caller.onCalculating(evt);
            }
            #endregion
            try
            {
                sdeTblTgdEditor.SaveEdit();
                sdeTblTgdEditor.StopEditOperation();
                sdeTblTgdEditor.StopEditing(true);
            }
            catch (Exception ex)
            {
                sdeTblTgdEditor.StopEditOperation();
                sdeTblTgdEditor.StopEditing(false);
            }

            #region ----log
            if (_caller != null)
            {
                evt.Log = string.Format("\n----||| Đã lưu bảng {0} |||---- ", tgdDraft);
                _caller.onCalculating(evt);
            }
            #endregion

            #endregion

            #region loc gia dat

            ThreadStart filterThread =()=>fil(newId);
            Thread t = new Thread(filterThread);
            t.Start();
            //while (!t.IsAlive) ;
            //Thread.Sleep(1);
            //t.Abort();
            t.Join();

            #endregion
            #endregion
        }
Exemplo n.º 13
0
        public void CalcGiaHemPhu(List<object> newId)
        {
            #region khoi tao cac bien
            SdeConnection conn = new SdeConnection();
            ISdeConnectionInfo sdeConn = conn as ISdeConnectionInfo;
            _wspEdit = (IWorkspaceEdit)sdeConn.Workspace;
            _mwspEdit = (IMultiuserWorkspaceEdit)sdeConn.Workspace;
            IFeatureWorkspace fw = (IFeatureWorkspace)sdeConn.Workspace;
            copyTool = new DataManager(sdeConn.Workspace, sdeConn.Environment);
            this._fcName = new TnFeatureClassName(sdeConn.Workspace);
            this._tblName = new TnTableName(sdeConn.Workspace);
            string gdHemPhu = string.Format("{0}_{1}", DataNameTemplate.Gia_Hem_Phu, this._currentConfig.NamApDung);
            string gdHemChinh = string.Format("{0}_{1}", DataNameTemplate.Gia_Hem, this._currentConfig.NamApDung);

            _fcName.FC_GIA_DAT_HEM_PHU.NAME = gdHemPhu;
            _fcName.FC_GIA_DAT_HEM_PHU.InitIndex();
            _fcName.FC_GIA_DAT_HEM.NAME = gdHemChinh;
            _fcName.FC_GIA_DAT_HEM.InitIndex();

            IFeatureClass gdhPhuFeatureClass = null;
            ITable tblgdHemPhu = null;
            try
            {
                gdhPhuFeatureClass = fw.OpenFeatureClass(gdHemPhu);
                tblgdHemPhu = (ITable)gdhPhuFeatureClass;
            }
            catch
            {
                MessageBox.Show("Không tìm thấy bảng " + gdHemPhu);
                return;
            }

            IFeatureClass gdhChinhFeatureClass;
            ITable tblHesoVitri;
            ITable tblTenDuong;
            ITable tblHemChinh;

            #endregion

            #region dinh nghia cac bien

            try
            {
                tblTenDuong = fw.OpenTable(DataNameTemplate.Ten_Duong);
            }
            catch (Exception ex)
            {
                MessageBox.Show("Không tìm thấy bảng " + DataNameTemplate.Ten_Duong);
                return;
            }

            try
            {
                gdhChinhFeatureClass = fw.OpenFeatureClass(gdHemChinh);
            }
            catch (Exception ex)
            {
                MessageBox.Show("Không tìm thấy bảng " + gdHemChinh);
                return;
            }
            try
            {
                tblHemChinh = fw.OpenTable(DataNameTemplate.Hem);
            }
            catch (Exception ex)
            {
                MessageBox.Show("Không tìm thấy bảng " + DataNameTemplate.Hem);
                return;
            }

            ISDETableEditor sdeTblGdhEditor = new SDETable(tblgdHemPhu, sdeConn.Workspace);
            IQueryFilter qrf = new QueryFilterClass();
            #endregion

            #region vong lap tung id

            #region khoi dau
            int rowGdhHandleUpdate = 0;
            string cachtinh = "";
            string cachtinhdongia = "";
            bool result = false;
            List<object[,]> pairColValTgd = new List<object[,]>();
            CalculationEventArg evt = new CalculationEventArg();
            if (_caller != null)
            {
                evt.Reset();
                evt.Log = "\n\nBắt đầu tính giá cho các hẻm vừa xác định vị trí";
                _caller.onCalculating(evt);
            }
            int len = newId.Count;
            int thuaCount = 1;
            //MessageBox.Show(len.ToString());
            #endregion

            foreach (object o in newId)
            {
                if (!((int)o > 0))
                {
                    //MessageBox.Show("line 737 CalcLandprice: không thể tính cho hẻm có id=" + o);
                    continue;
                }
                #region lay thong tin hem gia dat
                IRow gdhRowNew = null;
                try
                {
                    gdhRowNew = tblgdHemPhu.GetRow((int)o);
                }
                catch (Exception ex) { }
                if (gdhRowNew == null)
                {
                    continue;
                }

                string maHemChinhNew = gdhRowNew.get_Value(gdhRowNew.Fields.FindField(_fcName.FC_GIA_DAT_HEM_PHU.MA_HEM_CHINH)).ToString();
                int hesovitriNew;
                result = int.TryParse(gdhRowNew.get_Value(gdhRowNew.Fields.FindField(_fcName.FC_GIA_DAT_HEM_PHU.HE_SO)).ToString(), out hesovitriNew);

                object khoagia = gdhRowNew.get_Value(gdhRowNew.Fields.FindField(_fcName.FC_GIA_DAT_HEM_PHU.LOCKED));
                object mahem = gdhRowNew.get_Value(gdhRowNew.Fields.FindField(_fcName.FC_GIA_DAT_HEM_PHU.MA_HEM));
                int dorongHem = 0;
                object tenHem = "";
                //MessageBox.Show("line 237 CalcLandprice, maduong=" + maduongNew);
                if (khoagia != null)
                {
                    if (khoagia.ToString() != "0" && khoagia.ToString() != "")
                    {
                        //MessageBox.Show(khoagia.ToString());
                        //evt.Reset();
                        //evt.IdThuaKhoaGia = o;
                        //evt.mathua = mahem;
                        //_caller.onCalculating(evt);
                        continue;
                    }
                }
                #endregion

                #region lay gia dat hem chinh
                qrf.WhereClause = string.Format("{0}='{1}'", _fcName.FC_GIA_DAT_HEM.MA_HEM, maHemChinhNew);
                IFeatureCursor gdHemChinhCur = null;
                gdHemChinhCur = gdhChinhFeatureClass.Search(qrf, false);
                IFeature gdHemChinhRow = null;
                double giaHemChinh = 0;
                object maduong = 0;
                try
                {
                    if ((gdHemChinhRow = gdHemChinhCur.NextFeature()) != null)
                    {
                        result = double.TryParse(gdHemChinhRow.get_Value(_fcName.FC_GIA_DAT_HEM.GetIndex(_fcName.FC_GIA_DAT_HEM.GIA_DAT)).ToString(), out giaHemChinh);
                        if (!result)
                        {
                            giaHemChinh = 0;
                        }
                        maduong=gdHemChinhRow.get_Value(_fcName.FC_GIA_DAT_HEM.GetIndex(_fcName.FC_GIA_DAT_HEM.MA_DUONG));
                        //MessageBox.Show("line 1259 CalcLandprice, giahemchinh=" + giaHemChinh.ToString());
                    }
                }
                catch (COMException comExc) { }
                finally { Marshal.ReleaseComObject(gdHemChinhCur); }
                #endregion
                if (mahem != null)
                {
                    #region lay thong tin hem
                    if (mahem.ToString() != "0" && mahem.ToString() != "")
                    {
                        qrf.WhereClause = string.Format("{0}='{1}'", _fcName.FC_HEM.MA_HEM, mahem);
                        ICursor hemFcur = tblHemChinh.Search(qrf, false);
                        IRow hemRow = null;
                        try
                        {
                            if ((hemRow = hemFcur.NextRow()) != null)
                            {
                                object dorong = hemRow.get_Value(hemRow.Fields.FindField(_fcName.FC_HEM.DO_RONG));
                                result = int.TryParse(dorong.ToString(), out dorongHem);
                                if (!result)
                                {
                                    dorongHem = 0;
                                }
                                tenHem = hemRow.get_Value(hemRow.Fields.FindField(_fcName.FC_HEM.TEN_HEM));
                            }
                        }
                        catch (Exception ex) { }
                        finally { Marshal.ReleaseComObject(hemFcur); }
                    }
                    #endregion
                }
                #region lay ten duong
                qrf.WhereClause = string.Format("{0}='{1}'", _tblName.TEN_DUONG.MA_DUONG, maduong);
                ICursor tenDuongCur = null;
                tenDuongCur = tblTenDuong.Search(qrf, false);
                IRow tenDuongRow = null;
                object tenduong = "";
                object batdau = "";
                object ketthuc = "";
                try
                {
                    if ((tenDuongRow = tenDuongCur.NextRow()) != null)
                    {
                        tenduong = tenDuongRow.get_Value(_tblName.TEN_DUONG.GetIndex(_tblName.TEN_DUONG.TEN_DUONG));
                        batdau = tenDuongRow.get_Value(_tblName.TEN_DUONG.GetIndex(_tblName.TEN_DUONG.BAT_DAU));
                        ketthuc = tenDuongRow.get_Value(_tblName.TEN_DUONG.GetIndex(_tblName.TEN_DUONG.KET_THUC));
                    }
                }
                catch (COMException comExc) { giaHemChinh = 0; }
                finally { Marshal.ReleaseComObject(tenDuongCur); }
                #endregion

                object giaMoiTinh = 0;
                double hesorong = 1;
                double hesosau = 1;

                #region chon chieu rong
                if (dorongHem < 3.5)
                {
                    hesorong = _currentConfig.PHemChinhRongDuoi3_5m;
                }
                else if (dorongHem < 6)
                {
                    hesorong = _currentConfig.PHemChinhRongTren3_5m;
                }
                else
                {
                    hesorong = _currentConfig.PHemChinhRongTren6m;
                }
                #endregion

                #region chon chieu sau
                if (hesovitriNew == 1) //chieu sau <100m
                {
                    hesosau = _currentConfig.PHemSauDuoi100m;
                }
                else if (hesovitriNew == 2)
                {
                    hesosau = _currentConfig.PHemSauDuoi200m;
                }
                else
                {
                    hesosau = _currentConfig.PHemSauTren200m;
                }
                #endregion

                giaMoiTinh = giaHemChinh * hesorong * hesosau;
                //MessageBox.Show("line 868 CalcLandprice giamoitinh=" + giaMoiTinh);
                pairColValTgd.Add(new object[,] { { _fcName.FC_GIA_DAT_HEM_PHU.GetIndex(_fcName.FC_GIA_DAT_HEM_PHU.GIA_DAT), giaMoiTinh } });
                sdeTblGdhEditor.CacheData(o, 0, pairColValTgd, EnumTypeOfEdit.UPDATE);
                pairColValTgd.Clear();
            }

            #endregion

            #region luu thong tin vao bang gia dat
            if (!sdeTblGdhEditor.IsEditing())
            {

                sdeTblGdhEditor.StartEditing(true);
                sdeTblGdhEditor.StartEditOperation();
            }
            else
            {
                try
                {
                    sdeTblGdhEditor.SaveEdit();
                    sdeTblGdhEditor.StopEditOperation();
                    sdeTblGdhEditor.StopEditing(true);
                }
                catch
                {
                    sdeTblGdhEditor.StopEditOperation();
                    sdeTblGdhEditor.StopEditing(false);
                }
                sdeTblGdhEditor.StartEditing(esriMultiuserEditSessionMode.esriMESMVersioned);
                sdeTblGdhEditor.StartEditOperation();
            }

            #region ----log
            if (_caller != null)
            {
                evt.Log = string.Format("\n----||| Đang lưu vị trí các thửa vào bảng {0} |||---- ", gdHemPhu);
                _caller.onCalculating(evt);
            }
            #endregion
            try
            {
                sdeTblGdhEditor.SaveEdit();
                sdeTblGdhEditor.StopEditOperation();
                sdeTblGdhEditor.StopEditing(true);
            }
            catch (Exception ex)
            {
                MessageBox.Show("line 1405 CalcGiaHemChinh ex=" + ex.ToString());
                sdeTblGdhEditor.StopEditOperation();
                sdeTblGdhEditor.StopEditing(false);
            }

            #region ----log
            if (_caller != null)
            {
                evt.Log = string.Format("\n----||| Đã lưu vị trí các thửa vào bảng {0} |||---- ", gdHemPhu);
                _caller.onCalculating(evt);
            }
            #endregion

            #endregion
        }
Exemplo n.º 14
0
        public void FilterPrice(List<object> newId)
        {
            #region chon loc gia dat

            #region khoi tao cac bien
            SdeConnection conn = new SdeConnection();
            ISdeConnectionInfo sdeConn = conn as ISdeConnectionInfo;
            IFeatureWorkspace fw = (IFeatureWorkspace)sdeConn.Workspace;
            this._fcName = new TnFeatureClassName(sdeConn.Workspace);
            this._tblName = new TnTableName(sdeConn.Workspace);
            string tgd = string.Format("{0}_{1}", DataNameTemplate.Thua_Gia_Dat, this._currentConfig.NamApDung);
            string tgdDraft = string.Format("{0}_{1}", DataNameTemplate.Thua_Gia_Dat_Draft, this._currentConfig.NamApDung);
            _fcName.FC_THUA_GIADAT_DRAFT.NAME = tgdDraft;
            _fcName.FC_THUA_GIADAT_DRAFT.InitIndex();
            _fcName.FC_THUA_GIADAT.NAME = tgd;
            _fcName.FC_THUA_GIADAT.InitIndex();
            IFeatureClass tgdFeatureClassDraft=null;
            IFeatureClass tgdFeatureClass = null;
            try
            {
                tgdFeatureClassDraft = fw.OpenFeatureClass(tgdDraft);
            }
            catch
            {
                MessageBox.Show("Không tìm thấy bảng " + tgdDraft);
                return;
            }
            try
            {
                tgdFeatureClass = fw.OpenFeatureClass(tgd);
            }
            catch
            {
                MessageBox.Show("Không tìm thấy bảng " + tgd);
                return;
            }
            ITable tblThuaGiaDatDraft = (ITable)tgdFeatureClassDraft;
            ITable tblThuaGiaDat = (ITable)tgdFeatureClass;
            ISDETableEditor sdeTblTgdEditor = new SDETable(tblThuaGiaDat, sdeConn.Workspace);
            IQueryFilter qrf = new QueryFilterClass();
            bool result = false;
            #endregion

            #region vong lap tung id

            #region khoi dau
            int rowTgdNnHandleUpdate = 0;
            string cachtinh = "";
            string cachtinhdongia = "";
            //bool result = false;
            List<object[,]> pairColValTgd = new List<object[,]>();
            CalculationEventArg evt = new CalculationEventArg();
            if (_caller != null)
            {
                evt.Reset();
                evt.Log = "\n\nBắt đầu chọn lọc giá cho các thửa vừa tính...";
                _caller.onCalculating(evt);
            }
            int len = newId.Count;
            int thuaCount = 1;
            //MessageBox.Show(string.Format("line 620 CalcLandprice {0}",len.ToString()));
            #endregion
            List<object> mathuaCalced = new List<object>();
            foreach (object o in newId)
            {
                if (_caller != null)
                {
                    evt.Reset();
                    evt.Log = string.Format("\n\nchọn lọc giá cho thửa {0}", o);
                    _caller.onCalculating(evt);
                }
                IRow tgdDraftRowNew = tblThuaGiaDatDraft.GetRow((int)o);
                string mathuaNew = tgdDraftRowNew.get_Value(tgdDraftRowNew.Fields.FindField(_fcName.FC_THUA_GIADAT_DRAFT.MA_THUA)).ToString();
                if (mathuaCalced.Count > 0)
                {
                    foreach (object ob in mathuaCalced)
                    {
                        if (string.Compare(mathuaNew.ToString(), ob.ToString()) == 0)
                        {
                            continue;
                        }
                    }
                }
                mathuaCalced.Add(mathuaNew);

                #region vong lap xet vung gia co ma mathuaNew
                qrf.WhereClause = string.Format("{0}='{1}'", _fcName.FC_THUA_GIADAT_DRAFT.MA_THUA, mathuaNew);
                IFeatureCursor tgdDraftCur = tgdFeatureClassDraft.Search(qrf, false);
                IFeature tgdDraftFt = null;
                List<landpriceInfo> info = new List<landpriceInfo>();
                List<landpriceInfo> infoResult;
                //List<
                try
                {
                    double dongia = 0;
                    object id = 0;
                    object hesok = 0;

                    while ((tgdDraftFt = tgdDraftCur.NextFeature()) != null)
                    {
                        id = tgdDraftFt.OID;

                        hesok = tgdDraftFt.get_Value(tgdDraftFt.Fields.FindField(_fcName.FC_THUA_GIADAT_DRAFT.HE_SO_K));
                        result =double.TryParse(tgdDraftFt.get_Value(tgdDraftFt.Fields.FindField(_fcName.FC_THUA_GIADAT_DRAFT.DON_GIA)).ToString(),out dongia);
                        if (!result)
                        {
                            dongia = 0;
                        }
                        info.Add(new landpriceInfo(id, hesok, dongia));
                        //evt.Reset();
                        //evt.Log = string.Format("\n\nVùng giá {0}, số vùng giá:{1} ", id,info.Count);
                        //_caller.onCalculating(evt);
                    }

                    #region xet dieu kien de luu cac vung gia vao bang gia cong bo
                    //neu chi co 1 vung gia thi ko can suy nghi
                    int sovunggia=info.Count;
                    if (_caller != null)
                    {
                        evt.Reset();
                        evt.Log = string.Format("\n\nSố vùng giá của thửa {0} là {1}", mathuaNew, sovunggia);
                        _caller.onCalculating(evt);
                    }
                    if (sovunggia == 0)
                    {
                        continue;
                    }
                    //MessageBox.Show(string.Format("line 656 CalcLandprice, source={0}",info.Count));
                    getMaxValueWithDistinctKey(info, out infoResult);
                    //MessageBox.Show(string.Format("line 658 CalcLandprice, giadat={0}", infoResult[0].Dongia));
                    foreach (landpriceInfo inf in infoResult)
                    {
                        tgdDraftFt = tgdFeatureClassDraft.GetFeature((int)inf.Id);
                        object mathua = tgdDraftFt.get_Value(tgdDraftFt.Fields.FindField(_fcName.FC_THUA_GIADAT_DRAFT.MA_THUA));
                        qrf.WhereClause = string.Format("{0}='{1}' and {2}='{3}'",
                            _fcName.FC_THUA_GIADAT.HE_SO_K, inf.Hesok,
                            _fcName.FC_THUA_GIADAT.MA_THUA,mathua);
                        //MessageBox.Show("line 716, qrf=" + qrf);
                        IFeatureCursor tgdFcur = tgdFeatureClass.Search(qrf, false);
                        IFeature tgdFt = null;
                        List<object> publicIds = new List<object>();
                        try
                        {
                            //MessageBox.Show(string.Format("line 686 CalcLandprice, bat dau"));
                            if ((tgdFt = tgdFcur.NextFeature()) != null)
                            {
                                #region xet thua da co vi tri

                                bool isOverWritePos = true;

                                if (!isOverWritePos)
                                {
                                    publicIds.Add(tgdFt.OID);
                                    //continue;
                                }
                                else
                                {
                                    //[kodoi]
                                    //===================
                                    #region xoa feature cu
                                    try
                                    {
                                        _mwspEdit.StartMultiuserEditing(esriMultiuserEditSessionMode.esriMESMVersioned);
                                        _wspEdit.StartEditOperation();
                                        //qrf.WhereClause = string.Format("{0}='{1}'", "OBJECTID", tgdRow.OID);
                                        //tblThuaGiaDat.DeleteSearchedRows(qrf);
                                        //MessageBox.Show(string.Format("line 720 CalcLandprice, bat dau xoa thua {0}",mathua))
                                        tgdFt.Delete();
                                        _wspEdit.StopEditOperation();
                                        _wspEdit.StopEditing(true);
                                    }
                                    catch(Exception ex)
                                    {
                                        MessageBox.Show(string.Format("CalcLandprice, xoa feature line 751-\n{0}", ex));
                                        _wspEdit.StopEditOperation();
                                        _wspEdit.StopEditing(false);
                                    }

                                    #endregion
                                    //===================

                                    //[thaydoi] - them gia tri
                                    //**********************
                                    #region them feature moi
                                    object copiedId = null;
                                    try
                                    {
                                        _mwspEdit.StartMultiuserEditing(esriMultiuserEditSessionMode.esriMESMVersioned);
                                        _wspEdit.StartEditOperation();
                                        copiedId = copyTool.CopyWithAllAttribute(tgdDraftFt, tgdFeatureClass);
                                        //MessageBox.Show(string.Format("line 743 CalcLandprice, oid={0}", copiedId));
                                        _wspEdit.StopEditOperation();
                                        _wspEdit.StopEditing(true);
                                    }
                                    catch (Exception ex)
                                    {
                                        MessageBox.Show(string.Format("CalcLandprice, them feature line 776-\n{0}", ex));
                                        _wspEdit.StopEditOperation();
                                        _wspEdit.StopEditing(false);
                                    }

                                    //them gia tri mathua,maduong,hesovitri
                                    //pairColValTgd.Add(new object[,] { { tgdFt.Fields.FindField(__fcName.FC_THUA_GIADAT_DRAFT.MA_THUA), mathuaNew } });
                                    //pairColValTgd.Add(new object[,] { { tgdFt.Fields.FindField(__fcName.FC_THUA_GIADAT_DRAFT.MA_DUONG), maduong } });
                                    //pairColValTgd.Add(new object[,] { { tgdFt.Fields.FindField(__fcName.FC_THUA_GIADAT_DRAFT.HE_SO_K), hesoVitri } });
                                    //pairColValTgd.Add(new object[,] { { __fcName.FC_THUA_GIADAT_DRAFT.GetIndex(__fcName.FC_THUA_GIADAT_DRAFT.DIEN_TICH_PHAP_LY), dientichpl } });
                                    //sdeTblTgdEditor.CacheData(copiedId, rowTgdNnHandleUpdate, pairColValTgd, EnumTypeOfEdit.UPDATE);
                                    //rowTgdNnHandleUpdate++;
                                    //pairColValTgd.Clear();
                                    if (copiedId != null)
                                    {
                                        publicIds.Add(copiedId);
                                    }
                                    #endregion
                                    //**********************
                                }

                                #endregion
                            }
                            else
                            {
                                #region them feature moi
                                object copiedId = null;
                                try
                                {
                                    _mwspEdit.StartMultiuserEditing(esriMultiuserEditSessionMode.esriMESMVersioned);
                                    _wspEdit.StartEditOperation();
                                    copiedId = copyTool.CopyWithAllAttribute(tgdDraftFt, tgdFeatureClass);
                                    //MessageBox.Show(string.Format("line 743 CalcLandprice, oid={0}", copiedId));
                                    _wspEdit.StopEditOperation();
                                    _wspEdit.StopEditing(true);
                                }
                                catch (Exception ex)
                                {
                                    MessageBox.Show(string.Format("CalcLandprice, them feature line 818-\n{0}", ex));
                                    _wspEdit.StopEditOperation();
                                    _wspEdit.StopEditing(false);
                                }
                                if (copiedId != null)
                                {
                                    publicIds.Add(copiedId);
                                }
                                #endregion
                            }
                        }
                        catch (Exception e1)
                        {
                            MessageBox.Show(string.Format("CalcLandprice, line 1842-\n{0}", e1));
                        }
                        finally { Marshal.ReleaseComObject(tgdFcur); }
                    }
                    #endregion
                }
                catch (Exception ex)
                {
                    continue;
                }
                finally
                {
                    Marshal.ReleaseComObject(tgdDraftCur);
                }
                #endregion
            }

            #endregion

            #endregion
        }
Exemplo n.º 15
0
 public void SetWorkspace(IWorkspace workspace)
 {
     _workspace = workspace;
     _tblName = new TnTableName(workspace);
     _fcName = new TnFeatureClassName(workspace);
 }