Exchange を別のカレンダー プログラムと接続するための ews アプリケーションを作成しようとしています。Exchange で削除される予定を確認するにはどうすればよいですか? 伝える方法はありますか?API とドキュメントでそれを見つけることができませんでした。
前もって感謝します。
Exchange を別のカレンダー プログラムと接続するための ews アプリケーションを作成しようとしています。Exchange で削除される予定を確認するにはどうすればよいですか? 伝える方法はありますか?API とドキュメントでそれを見つけることができませんでした。
前もって感謝します。
ユーザーが予定 (またはアイテム) を削除する方法に応じて、さまざまなことが行われます。
削除済みアイテムに関する情報を取得するには、複数の方法があります。
EWS カレンダーの予定を SQL テーブルに同期するサービスを作成しました。
データベースに行があり、EWS にない場合、変更の挿入/更新後に削除する場合は、Exchange で削除されたことを意味するため、削除します。GUID を使用して、データベースと交換で予定を追跡します。Exchange Web サービス: ItemId が一定でないのはなぜですか? 【続き】
ほんの数十の予定でパフォーマンスはまともです。もっと大きなデータセットで試してみます。
Dim appointmentGuid As New List(Of String)
For Each appointment In appointments 'appointments is IEnumerable(Of Appointment) from EWS
Dim guid As String = GetGuidForAppointment(appointment)
If String.IsNullOrEmpty(guid) Then
SetGuidForAppointment(appointment)
guid = GetGuidForAppointment(appointment)
End If
appointmentGuid.Add(guid)
'Upsert rows
...
Next
'Delete orphaned rows
Using sqlConnection As New SqlConnection(ConnectionString)
Dim deleteScript As New StringBuilder()
Using sqlCmd As New SqlCommand("SELECT ID FROM Appointments", sqlConnection)
Using sqlDataReader As SqlDataReader = sqlCmd.ExecuteReader()
sqlConnection.Open()
While sqlDataReader.Read()
Dim guid As String = sqlDataReader.GetString(0)
If Not appointmentGuid.Contains(guid) Then
deleteScript.AppendFormat("DELETE FROM Appointments WHERE ID = '{0}'; ", guid)
End If
End While
End Using
End Using
If deleteScript.Length > 0 Then
Using sqlCmd As New SqlCommand(deleteScript.ToString(), sqlConnection)
sqlCmd.ExecuteNonQuery()
End Using
End If
End Using