Пример #1
0
        private void tekLogKaydiniIsle(DataTransactionInfo logKaydi)
        {
            Kayit kaynaktakiKayit = _dbProxy.KaynaktanTekKayitAl(logKaydi);

            if (kaynaktakiKayit == null)
                _dbProxy.HedeftenKayitSil(logKaydi);
            else
                _dbProxy.HedefteInsertVeyaUpdate(kaynaktakiKayit, logKaydi);
        }
Пример #2
0
        public void TestSetUp()
        {
            _kaynakVeriIslemleri = Substitute.For<ITekConnectionVeriIslemleri>();
            _hedefVeriIslemleri = Substitute.For<ITekConnectionVeriIslemleri>();
            ILogger logger = Substitute.For<ILogger>();

            _dbProxy = new DatabaseProxy(_kaynakVeriIslemleri, _hedefVeriIslemleri, logger);

            _pol12345TransactionInfo = new DataTransactionInfo(7, "pol", "fprkpol", 12345, "i", false);
        }
Пример #3
0
        public void HedefteInsertVeyaUpdate(Kayit kaynaktakiKayit, DataTransactionInfo transactionInfo)
        {
            if (!_hedefBaglantiAcik)
                throw new Exception("Hedef bağlantı açılmış olmalı.");

            _hedefVeriIslemleri.TekKayitGuncelle(transactionInfo.TabloAdi, transactionInfo.PrimaryKeyKolonAdi, transactionInfo.PrimaryKeyDegeri, kaynaktakiKayit.DataRowItemArray);
            //new SqlDataAdapter()
            //DataRow drKayit = kaynaktakiKayit.DataRow;
            //SqlDataAdapter adaptor = (SqlDataAdapter) _hedefVeriIslemleri.DataAdapterAl("select * from " + transactionInfo.TabloAdi + " where " + transactionInfo.PrimaryKeyKolonAdi + " = " + transactionInfo.PrimaryKeyDegeri);
            //DataTable dtSql = new DataTable();
            //adaptor.Fill(dtSql);

            //if (dtSql.Rows.Count == 0)
            //	dtSql.Rows.Add(drKayit.ItemArray);
            //else
            //	dtSql.Rows[0].ItemArray = drKayit.ItemArray;

            //var updateOlabilmesiIcinDummyNesne = new SqlCommandBuilder(adaptor);
            //adaptor.Update(dtSql);

            ////foxproTablosundanSil(foxproCon, fPrkTrLog);
        }
Пример #4
0
        public void LogKayitSil(DataTransactionInfo transactionLog)
        {
            if (!_kaynakBaglantiAcik)
                throw new Exception("Kaynak bağlantı açılmış olmalı.");

            string silmeKomutu = "delete from trlog where fprktrlog2 = " + transactionLog.PrkLog;
            int silinenKayitSayisi = _kaynakVeriIslemleri.SorguDisi(silmeKomutu);
            if (silinenKayitSayisi > 1)
            {
                string hataMesaji = "Trlog dosyasından aynı fprktrlog2 değerinde 1'den fazla kayıt vardı. Silerken ortaya çıktı. 1.den sonraki kayıtlar senkronize edilmemiş olabilir:\n" + transactionLog.ToString();
                _logger.Logla(hataMesaji);
            }
        }
Пример #5
0
        public void LogKaydiniSqleAktar(DataTransactionInfo transactionInfo)
        {
            if (!_hedefBaglantiAcik)
                throw new Exception("Hedef bağlantı açılmış olmalı.");

            const string insertKomutu = "insert into trlog (dosyaadi,prkalanadi,prkdeger,islemtipi,fprktrlog2,oncekitur,tarihsaat) values(:1,:2,:3,:4,:5,:6,:7)";
            try
            {
                _hedefVeriIslemleri.SorguDisi(insertKomutu, transactionInfo.TabloAdi, transactionInfo.PrimaryKeyKolonAdi, transactionInfo.PrimaryKeyDegeri, transactionInfo.IslemTipi, transactionInfo.PrkLog, transactionInfo.OncekiTur, DateTime.Now);
            }
            catch (Exception ex)
            {
                if (!ex.Message.StartsWith("Violation of PRIMARY KEY constraint "))
                    throw;
            }
        }
Пример #6
0
        public void LogKaydinaHataMesajiYaz(DataTransactionInfo transactionLog, Exception ex)
        {
            if (!_kaynakBaglantiAcik)
                throw new Exception("Kaynak bağlantı açılmış olmalı.");

            string hataMesaji = ex.Message;

            if (hataMesaji.Length > 100)
                hataMesaji = hataMesaji.Substring(0, 100);

            string updateKomut = "update trlog set hataacikla = :1 where fprktrlog2 = " + transactionLog.PrkLog;
            _kaynakVeriIslemleri.SorguDisi(updateKomut, hataMesaji);
        }
Пример #7
0
        public Kayit KaynaktanTekKayitAl(DataTransactionInfo transactionInfo)
        {
            if (!_kaynakBaglantiAcik)
                throw new Exception("Kaynak bağlantı açılmış olmalı.");

            string komut = "select * from " + transactionInfo.TabloAdi + " where " + transactionInfo.PrimaryKeyKolonAdi + "=" + transactionInfo.PrimaryKeyDegeri;
            DataTable dt = _kaynakVeriIslemleri.Doldur(komut);
            if (dt.Rows.Count == 0)
                return null;
            return new Kayit(dt.Rows[0].ItemArray);
        }
Пример #8
0
        public void HedeftenKayitSil(DataTransactionInfo transactionInfo)
        {
            if (!_hedefBaglantiAcik)
                throw new Exception("Hedef bağlantı açılmış olmalı.");

            string silmeKomutu = "delete from " + transactionInfo.TabloAdi + " where " + transactionInfo.PrimaryKeyKolonAdi + " = :1";
            _hedefVeriIslemleri.SorguDisi(silmeKomutu, transactionInfo.PrimaryKeyDegeri);
        }
Пример #9
0
 private DataTransactionInfo tekTransactionluTestOrtamiHazirla(Kayit kaynaktakiKayit)
 {
     DataTransactionInfo transactionInfo = new DataTransactionInfo(7, "pol", "fprkpol", 12345, "i", false);
     _dbProxy.BekleyenTransactionlariAl(0).ReturnsForAnyArgs(new List<DataTransactionInfo> {transactionInfo});
     _dbProxy.KaynaktanTekKayitAl(transactionInfo).Returns(kaynaktakiKayit);
     return transactionInfo;
 }