|
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Data;
using System.Data.SqlClient;
using Microsoft.Synchronization;
using Microsoft.Synchronization.Data;
namespace SyncApplication
{
public partial class ProgressForm : Form
{
public ProgressForm()
{
InitializeComponent();
}
public void Report(SyncProgressEventArgs args)
{
string message = "Progress: ";
switch(args.SyncStage)
{
case SyncStage.ApplyingInserts:
message += "Applying insert for table: " + args.TableMetadata.TableName;
message += "[" + args.TableProgress.Inserts.ToString() + "|" + args.TableProgress.Updates.ToString() + "|" + args.TableProgress.Deletes.ToString() + "]";
message += "(Applied:" + args.TableProgress.ChangesApplied.ToString() + "/Pending:" + args.TableProgress.ChangesPending.ToString() +
"/Failed:" + args.TableProgress.ChangesFailed.ToString() + "/Total:" + args.TableProgress.TotalChanges.ToString() + ")";
break;
case SyncStage.ApplyingUpdates:
message += "Applying update for table: " + args.TableMetadata.TableName;
message += "[" + args.TableProgress.Inserts.ToString() + "|" + args.TableProgress.Updates.ToString() + "|" + args.TableProgress.Deletes.ToString() + "]";
message += "(Applied:" + args.TableProgress.ChangesApplied.ToString() + "/Pending:" + args.TableProgress.ChangesPending.ToString() +
"/Failed:" + args.TableProgress.ChangesFailed.ToString() + "/Total:" + args.TableProgress.TotalChanges.ToString() + ")";
break;
case SyncStage.ApplyingDeletes:
message += "Applying delete for table: " + args.TableMetadata.TableName;
message += "[" + args.TableProgress.Inserts.ToString() + "|" + args.TableProgress.Updates.ToString() + "|" + args.TableProgress.Deletes.ToString() + "]";
message += "(Applied:" + args.TableProgress.ChangesApplied.ToString() + "/Pending:" + args.TableProgress.ChangesPending.ToString() +
"/Failed:" + args.TableProgress.ChangesFailed.ToString() + "/Total:" + args.TableProgress.TotalChanges.ToString() + ")";
break;
case SyncStage.GettingInserts:
message += "Enumerating inserts for table: " + args.TableMetadata.TableName;
message += "[" + args.TableProgress.Inserts.ToString() + "|" + args.TableProgress.Updates.ToString() + "|" + args.TableProgress.Deletes.ToString() + "]";
break;
case SyncStage.GettingUpdates:
message += "Enumerating updates for table: " + args.TableMetadata.TableName;
message += "[" + args.TableProgress.Inserts.ToString() + "|" + args.TableProgress.Updates.ToString() + "|" + args.TableProgress.Deletes.ToString() + "]";
break;
case SyncStage.GettingDeletes:
message += "Enumerating deletes for table: " + args.TableMetadata.TableName;
message += "[" + args.TableProgress.Inserts.ToString() + "|" + args.TableProgress.Updates.ToString() + "|" + args.TableProgress.Deletes.ToString() + "]";
break;
}
listSyncProgress.Items.Add(message);
Application.DoEvents();
}
public void EnableClose()
{
buttonClose.Enabled = true;
Application.DoEvents();
}
private void buttonClose_Click(object sender, EventArgs e)
{
Close();
}
private void ProgressForm_Shown(object sender, EventArgs e)
{
}
}
}
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.
Entrepreneur, developer and then some. I started
Raveable Hotel Reviews in 2008 to help travelers find the best hotel for their vacation with no history of
bed bug reports (hint: don't go new york without checking
bed bugs in NYC hotels page), cases of personal property theft, or food poisoning incidents.
Prior to Raveable.com, I was a development lead at Microsoft Corporation. I led the team developing the next generation social networking for Windows Mobile. Before that I played leading role in the design and development of Microsoft Sync Framework, Sync Services for ADO.NET, SQL Server Replication and Windows File Replication.
My Company:
Raveable Hotel Reviews
My Sync Blog:
The Synchronizer
My Sync WebSite:
www.syncguru.com