private void tekLogKaydiniIsle(DataTransactionInfo logKaydi) { Kayit kaynaktakiKayit = _dbProxy.KaynaktanTekKayitAl(logKaydi); if (kaynaktakiKayit == null) _dbProxy.HedeftenKayitSil(logKaydi); else _dbProxy.HedefteInsertVeyaUpdate(kaynaktakiKayit, logKaydi); }
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); }
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); }
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); } }
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; } }
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); }
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); }
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); }
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; }