using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Data; using System.Data.SqlClient; using Microsoft.Synchronization; using Microsoft.Synchronization.Data; using Microsoft.Synchronization.Data.SqlServer; using System.Configuration; using System.IO; namespace ProvisionServer { class Program { static void Main(string[] args) { try { Console.WriteLine("Getting connection string"); string serverConnection = ConfigurationManager.ConnectionStrings["Server"].ConnectionString; // connect to server database Console.WriteLine("connect to server database"); SqlConnection serverConn = new SqlConnection(serverConnection); // define a new scope named CompleteScope DbSyncScopeDescription scopeDesc = new DbSyncScopeDescription("CompleteScope"); // add the description of all the tables from the database //DbSyncTableDescription tableDesc = SqlSyncDescriptionBuilder.GetDescriptionForTable("Accounts", serverConn); // add the table description to the sync scope definition //scopeDesc.Tables.Add(tableDesc); //tableDesc = SqlSyncDescriptionBuilder.GetDescriptionForTable("AccountTypes", serverConn); //scopeDesc.Tables.Add(tableDesc); DbSyncTableDescription tableDesc = SqlSyncDescriptionBuilder.GetDescriptionForTable("AppConfig", serverConn); scopeDesc.Tables.Add(tableDesc); tableDesc = SqlSyncDescriptionBuilder.GetDescriptionForTable("ApptTypes", serverConn); scopeDesc.Tables.Add(tableDesc); tableDesc = SqlSyncDescriptionBuilder.GetDescriptionForTable("Attendance", serverConn); scopeDesc.Tables.Add(tableDesc); tableDesc = SqlSyncDescriptionBuilder.GetDescriptionForTable("AttendanceDetails", serverConn); scopeDesc.Tables.Add(tableDesc); tableDesc = SqlSyncDescriptionBuilder.GetDescriptionForTable("Branches", serverConn); scopeDesc.Tables.Add(tableDesc); tableDesc = SqlSyncDescriptionBuilder.GetDescriptionForTable("CLLabOrder", serverConn); scopeDesc.Tables.Add(tableDesc); tableDesc = SqlSyncDescriptionBuilder.GetDescriptionForTable("CLTrials", serverConn); scopeDesc.Tables.Add(tableDesc); tableDesc = SqlSyncDescriptionBuilder.GetDescriptionForTable("CreditNotes", serverConn); scopeDesc.Tables.Add(tableDesc); tableDesc = SqlSyncDescriptionBuilder.GetDescriptionForTable("Discounts", serverConn); scopeDesc.Tables.Add(tableDesc); tableDesc = SqlSyncDescriptionBuilder.GetDescriptionForTable("Drawings", serverConn); scopeDesc.Tables.Add(tableDesc); //tableDesc = SqlSyncDescriptionBuilder.GetDescriptionForTable("ErrorLog", serverConn); //scopeDesc.Tables.Add(tableDesc); tableDesc = SqlSyncDescriptionBuilder.GetDescriptionForTable("ExamDiagnoses", serverConn); scopeDesc.Tables.Add(tableDesc); tableDesc = SqlSyncDescriptionBuilder.GetDescriptionForTable("ExamLensType", serverConn); scopeDesc.Tables.Add(tableDesc); tableDesc = SqlSyncDescriptionBuilder.GetDescriptionForTable("Exams", serverConn); scopeDesc.Tables.Add(tableDesc); tableDesc = SqlSyncDescriptionBuilder.GetDescriptionForTable("Holidays", serverConn); scopeDesc.Tables.Add(tableDesc); tableDesc = SqlSyncDescriptionBuilder.GetDescriptionForTable("ItemCategories", serverConn); scopeDesc.Tables.Add(tableDesc); tableDesc = SqlSyncDescriptionBuilder.GetDescriptionForTable("Items", serverConn); scopeDesc.Tables.Add(tableDesc); tableDesc = SqlSyncDescriptionBuilder.GetDescriptionForTable("LabOrderLensType", serverConn); scopeDesc.Tables.Add(tableDesc); tableDesc = SqlSyncDescriptionBuilder.GetDescriptionForTable("LabOrders", serverConn); scopeDesc.Tables.Add(tableDesc); tableDesc = SqlSyncDescriptionBuilder.GetDescriptionForTable("Letters", serverConn); scopeDesc.Tables.Add(tableDesc); //tableDesc = SqlSyncDescriptionBuilder.GetDescriptionForTable("LoginHistory", serverConn); //scopeDesc.Tables.Add(tableDesc); tableDesc = SqlSyncDescriptionBuilder.GetDescriptionForTable("Lookups", serverConn); scopeDesc.Tables.Add(tableDesc); tableDesc = SqlSyncDescriptionBuilder.GetDescriptionForTable("LookupTypes", serverConn); scopeDesc.Tables.Add(tableDesc); tableDesc = SqlSyncDescriptionBuilder.GetDescriptionForTable("MemoAE", serverConn); scopeDesc.Tables.Add(tableDesc); tableDesc = SqlSyncDescriptionBuilder.GetDescriptionForTable("MsgSvc", serverConn); scopeDesc.Tables.Add(tableDesc); //tableDesc = SqlSyncDescriptionBuilder.GetDescriptionForTable("Navigator", serverConn); //scopeDesc.Tables.Add(tableDesc); tableDesc = SqlSyncDescriptionBuilder.GetDescriptionForTable("PatientAddresses", serverConn); scopeDesc.Tables.Add(tableDesc); tableDesc = SqlSyncDescriptionBuilder.GetDescriptionForTable("PatientEmails", serverConn); scopeDesc.Tables.Add(tableDesc); tableDesc = SqlSyncDescriptionBuilder.GetDescriptionForTable("PatientPhones", serverConn); scopeDesc.Tables.Add(tableDesc); tableDesc = SqlSyncDescriptionBuilder.GetDescriptionForTable("PatientRecallPlans", serverConn); scopeDesc.Tables.Add(tableDesc); tableDesc = SqlSyncDescriptionBuilder.GetDescriptionForTable("Patients", serverConn); scopeDesc.Tables.Add(tableDesc); tableDesc = SqlSyncDescriptionBuilder.GetDescriptionForTable("Payments", serverConn); scopeDesc.Tables.Add(tableDesc); tableDesc = SqlSyncDescriptionBuilder.GetDescriptionForTable("PaymentsDetails", serverConn); scopeDesc.Tables.Add(tableDesc); tableDesc = SqlSyncDescriptionBuilder.GetDescriptionForTable("RecallDetails", serverConn); scopeDesc.Tables.Add(tableDesc); tableDesc = SqlSyncDescriptionBuilder.GetDescriptionForTable("RecallNotices", serverConn); scopeDesc.Tables.Add(tableDesc); tableDesc = SqlSyncDescriptionBuilder.GetDescriptionForTable("RecallPlans", serverConn); scopeDesc.Tables.Add(tableDesc); tableDesc = SqlSyncDescriptionBuilder.GetDescriptionForTable("Recalls", serverConn); scopeDesc.Tables.Add(tableDesc); tableDesc = SqlSyncDescriptionBuilder.GetDescriptionForTable("RefundDetails", serverConn); scopeDesc.Tables.Add(tableDesc); tableDesc = SqlSyncDescriptionBuilder.GetDescriptionForTable("Refunds", serverConn); scopeDesc.Tables.Add(tableDesc); tableDesc = SqlSyncDescriptionBuilder.GetDescriptionForTable("ReportCatalog", serverConn); scopeDesc.Tables.Add(tableDesc); tableDesc = SqlSyncDescriptionBuilder.GetDescriptionForTable("Sales", serverConn); scopeDesc.Tables.Add(tableDesc); tableDesc = SqlSyncDescriptionBuilder.GetDescriptionForTable("SalesDetails", serverConn); scopeDesc.Tables.Add(tableDesc); tableDesc = SqlSyncDescriptionBuilder.GetDescriptionForTable("Schedule", serverConn); scopeDesc.Tables.Add(tableDesc); tableDesc = SqlSyncDescriptionBuilder.GetDescriptionForTable("SecuredItems", serverConn); scopeDesc.Tables.Add(tableDesc); tableDesc = SqlSyncDescriptionBuilder.GetDescriptionForTable("SecurityAccess", serverConn); scopeDesc.Tables.Add(tableDesc); tableDesc = SqlSyncDescriptionBuilder.GetDescriptionForTable("StockReceipts", serverConn); scopeDesc.Tables.Add(tableDesc); tableDesc = SqlSyncDescriptionBuilder.GetDescriptionForTable("Transfers", serverConn); scopeDesc.Tables.Add(tableDesc); tableDesc = SqlSyncDescriptionBuilder.GetDescriptionForTable("UserAccExceptions", serverConn); scopeDesc.Tables.Add(tableDesc); tableDesc = SqlSyncDescriptionBuilder.GetDescriptionForTable("UserGroups", serverConn); scopeDesc.Tables.Add(tableDesc); //tableDesc = SqlSyncDescriptionBuilder.GetDescriptionForTable("UserPrefs", serverConn); //scopeDesc.Tables.Add(tableDesc); tableDesc = SqlSyncDescriptionBuilder.GetDescriptionForTable("Users", serverConn); scopeDesc.Tables.Add(tableDesc); tableDesc = SqlSyncDescriptionBuilder.GetDescriptionForTable("UsrGrpXRef", serverConn); scopeDesc.Tables.Add(tableDesc); tableDesc = SqlSyncDescriptionBuilder.GetDescriptionForTable("Vacation", serverConn); scopeDesc.Tables.Add(tableDesc); tableDesc = SqlSyncDescriptionBuilder.GetDescriptionForTable("VAT", serverConn); scopeDesc.Tables.Add(tableDesc); tableDesc = SqlSyncDescriptionBuilder.GetDescriptionForTable("Vendors", serverConn); scopeDesc.Tables.Add(tableDesc); tableDesc = SqlSyncDescriptionBuilder.GetDescriptionForTable("VFPCommands", serverConn); scopeDesc.Tables.Add(tableDesc); // create a server scope provisioning object based on the ProductScope SqlSyncScopeProvisioning serverProvision = new SqlSyncScopeProvisioning(serverConn, scopeDesc); // skipping the creation of table since table already exists on server serverProvision.SetCreateTableDefault(DbSyncCreationOption.Skip); // start the provisioning process serverProvision.Apply(); } catch (Exception error) { using (StreamWriter tw = new StreamWriter("BPOSync.log", true)) { // write a line of text to the file tw.WriteLine(DateTime.Now); tw.WriteLine("Error"); tw.WriteLine(error.ToString()); //tw.WriteLine(error.InnerException); tw.WriteLine("---"); // close the stream tw.Close(); } } } } }