public bool UploadData(IDoctorlyContext context) { int result = 0; context.loger?.Log($@"Start migration from {_sourceAdapter.AdapterName} Adapter into {_destinationAdapter.AdapterName} at {DateTime.Now}"); try { DataTable dt = _sourceAdapter.GetDate(); if (_sourceAdapter.PKs != null && _sourceAdapter.PKs.Count > 0) { DataTable duplicatePKsDataTable = _destinationAdapter.GetExistingDataWithPKs(dt, _sourceAdapter.PKs); if (duplicatePKsDataTable.Rows.Count > 0) { ResolveConfilict(_conflictStrategyType); } } result = _destinationAdapter.Insert(dt, _columnAssignments); } catch (Exception ex) { context.loger?.Log($@"Error on migrate from {_sourceAdapter.AdapterName} Adapter into {_destinationAdapter.AdapterName} at {DateTime.Now} Error : {ex.Message}"); Rollback(); return(false); } context.loger?.Log($@"Finish migration from {_sourceAdapter.AdapterName} Adapter into {_destinationAdapter.AdapterName} at {DateTime.Now}"); return(Convert.ToBoolean(result)); }