private void btnConfirm_Click_1(object sender, RoutedEventArgs e) { var dstTopic = lstDstTopics.SelectedItem as Topic; if (dstTopic == null) { MessageDlg.Show("Target topic not selected"); return; } BusyWndSingleton.Show("Copying points..."); try { var ownId = SessionInfo.Get().person.Id; var discId = SessionInfo.Get().discussion.Id; foreach (var ap in dstPoints) { copyArgPointTo(ap, dstTopic); } PrivateCenterCtx.SaveChangesIgnoreConflicts(); _sharedClient.clienRt.SendNotifyStructureChanged(dstTopic.Id, ownId, DeviceType.Wpf); var srcTopic = lstSrcTopics.SelectedItem as Topic; _sharedClient.clienRt.SendStatsEvent(StEvent.ArgPointTopicChanged, ownId, discId, srcTopic.Id, DeviceType.Wpf); //src _sharedClient.clienRt.SendStatsEvent(StEvent.ArgPointTopicChanged, ownId, discId, dstTopic.Id, DeviceType.Wpf); //dst } finally { BusyWndSingleton.Hide(); } }
//we can only process one deleted point at a time private void saveProcedure(ArgPoint deletedPt, int TopicOfDeletedPointId) { //extract modification lists List <ArgPoint> created = null; List <ArgPoint> edited = null; List <ArgPoint> deleted = null; GetChangeLists(out created, out edited, out deleted); Topic t; ArgPoint editedPoint; getPointAndTopic(out editedPoint, out t); //save changes PrivateCenterCtx.SaveChangesIgnoreConflicts(); //first notify about deleted point! if (deletedPt != null) { _sharedClient.clienRt.SendArgPointDeleted(deletedPt.Id, TopicOfDeletedPointId, SessionInfo.Get().person.Id); } //notify about changes foreach (var createdPt in created) { _sharedClient.clienRt.SendArgPointCreated(createdPt.Id, createdPt.Topic.Id, SessionInfo.Get().person.Id); } foreach (var editedPt in edited) { _sharedClient.clienRt.SendArgPointChanged(editedPt.Id, editedPt.Topic.Id, SessionInfo.Get().person.Id); } }