/// <summary> /// Handles the Click event of the btnOK control. /// </summary> /// <param name="sender">The source of the event.</param> /// <param name="e">The <see cref="System.EventArgs"/> instance containing the event data.</param> protected void btnOK_Click(object sender, EventArgs e) { if (SessionMergeProvider != null) { bool success = false; foreach (MergePropertyMap map in SessionMergeProvider.MergeMaps) { string overWrite = Request.Form["rdoMergeOverwrite_" + map.Name]; if (overWrite != null) { map.MergeOverwrite = overWrite.Equals("SourceWins") ? MergeOverwrite.sourceWins : MergeOverwrite.targetWins; } } string recordOverWrite = Request.Form["rdoRecordOverwrite"]; if (recordOverWrite != null) { SessionMergeProvider.RecordOverwrite = recordOverWrite.Equals("SourceWins") ? MergeOverwrite.sourceWins : MergeOverwrite.targetWins; } //object[] objarray = new object[] { SessionMergeProvider.Target.EntityData }; //Sage.Platform.EntityFactory.Execute<type>("Account.MergeAccount", objarray); Type type = SessionMergeProvider.Target.EntityType; if (type.Equals(typeof(IAccount))) { IAccount account = (IAccount)SessionMergeProvider.Target.EntityData; success = account.MergeAccount(SessionMergeProvider); } else if (type.Equals(typeof(IContact))) { IContact contact = (IContact)SessionMergeProvider.Target.EntityData; success = contact.MergeContact(SessionMergeProvider); } if (success) { using (var session = new SessionScopeWrapper()) { session.Merge(SessionMergeProvider.Source.EntityData); } IPersistentEntity source = (IPersistentEntity)GetEntity(type, SessionMergeProvider.Source.EntityId); source.Delete(); EntityService.RemoveEntityHistory(type, source); Response.Redirect(String.Format("{0}.aspx", GetTableName(EntityService.EntityType))); } DialogService.CloseEventHappened(this, null); } }