コード例 #1
0
        public DOChuongTrinh Copy()
        {
            var bm = new DOChuongTrinh();

            try
            {
                FieldInfo[] infos = typeof(DOChuongTrinh).GetFields();
                foreach (FieldInfo info in infos)
                {
                    if (info.FieldType == typeof(DataSet))
                    {
                        object ds = info.GetValue(this);
                        if (ds == null) continue;
                        info.SetValue(bm, ((DataSet)ds).Copy());
                    }
                    else
                    {
                        info.SetValue(bm, info.GetValue(this));
                    }
                }
            }
            catch (Exception ex)
            {
                PLException.AddException(ex);
            }
            return bm;
        }
コード例 #2
0
        public bool Compare(DOChuongTrinh otherChuongTrinh)
        {
            try
            {
                var infos = typeof(DOChuongTrinh).GetFields();
                foreach (FieldInfo info in infos)
                {
                    if (info.Name == "NGUOI_CAP_NHAT" || info.Name == "NGAY_CAP_NHAT") continue;

                    var a = info.GetValue(this);
                    var b = info.GetValue(otherChuongTrinh);
                    if ((a == null && b != null) || a != null && b == null)
                        return false;
                    if (a == null && b == null) continue;
                    if (info.FieldType == typeof(DataSet))
                    {
                        var dsA = a as DataSet;
                        var dsB = b as DataSet;

                        if (dsA.Tables.Count != dsB.Tables.Count)
                            return false;
                        foreach (DataTable dtA in dsA.Tables)
                        {
                            if (dsB.Tables.Contains(dtA.TableName) == false)
                                return false;
                            var dtB = dsB.Tables[dtA.TableName];

                            if (dtA.Columns.Count == 0 && dtB.Columns.Count == 0) continue;
                            if (dtA.Columns.Count != dtB.Columns.Count)
                                return false;

                            if (dtA.Rows.Count == 0 && dtB.Rows.Count == 0) continue;
                            if (dtA.Rows.Count != dtB.Rows.Count)
                                return false;

                            foreach (DataColumn colA in dtA.Columns)
                            {
                                if (dtB.Columns.Contains(colA.ColumnName) == false)
                                    return false;
                                var viewA = dtA.DefaultView;
                                var viewB = dtB.DefaultView;
                                viewA.Sort = colA.ColumnName;
                                viewB.Sort = colA.ColumnName;
                                for (int i = 0; i < viewA.Count; i++)
                                {
                                    if (viewA[i][colA.ColumnName].Equals(viewB[i][colA.ColumnName]) == false)
                                        return false;
                                }
                            }

                        }
                    }
                    else if (info.FieldType == typeof(List<DOPostMaster>))
                    {
                        var la = (List<DOPostMaster>)a;
                        var lb = (List<DOPostMaster>)b;

                        foreach (var pa in la)
                        {
                            var exist = false;
                            foreach (var pb in lb)
                            {
                                if (pa.CTPM_ID == pb.CTPM_ID)
                                {
                                    if (pa.Compare(pb) == false)
                                        return false;
                                    exist = true;

                                }
                            }
                            if (exist == false)
                                return false;

                        }
                    }
                    else
                    {
                        if (a.Equals(b) == false)
                            return false;
                    }

                }
                return true;
            }
            catch (Exception ex)
            {
                PLException.AddException(ex);
            }
            return false;
        }
コード例 #3
0
ファイル: frmBienMuc.cs プロジェクト: khanhdtn/did-vlib-2011
        void popupContainerEditCTr_EditValueChanged(object sender, EventArgs e)
        {
            long id = MaChuongTrinh._getSelectedID();
            ChuongTrinh = DAChuongTrinh.I.Load(id);
            HelpDate.SetDateEdit(NgayAWB, ChuongTrinh.NGAY_AWB);
            NoiDung.Text = ChuongTrinh.NOI_DUNG;
            TenGoc.Text = ChuongTrinh.TEN_GOC;
            ThanhLyChuongTrinh.Checked = ChuongTrinh.IS_THANH_LY == "Y";
            TietMuc._setSelectedID(ChuongTrinh.TIET_MUC);
            AppCtrl.SetMuitiValues(QuocGia, ChuongTrinh.NUOC_SAN_XUAT);
            AppCtrl.SetDecimal(NamSanXuat, ChuongTrinh.NAM_SAN_XUAT);
            AppCtrl.SetInfoBox(plInfoBoxEtxChuongTrinh, ChuongTrinh.NGUOI_NHAP, ChuongTrinh.NGAY_NHAP,
            ChuongTrinh.PHONG_BAN, ChuongTrinh.NGUOI_CAP_NHAT, ChuongTrinh.NGAY_CAP_NHAT);
            CodeCT.Text = ChuongTrinh.CODE_CT;
            PostMaster._refresh(DAPostMaster.I.GetTablePostMaster(id));

            PostMaster._setSelectedID(-1);
        }