2017-09-19 10 views
0

これは私が現時点でカレンダーイベントを削除する方法であると、多くのカレンダーイベントを削除するには(答えを参照)。しかし使用バッチモードでは、Microsoftグラフ

Deleting Calendar Events

、私はさらに一歩これを利用したいと思いますし、 batchingを使用してください。私はマイクロソフトグラフバッチの特徴を伝えることができるものから、

ベータにありますか?

どうすればいいですか?バッチ私のすべての削除要求と多くの場合よりも1つのアクションを実行しますか?この資料では、JSONを使用しています。例:

{ 
    "requests": [ 
    { 
     "id": "1", 
     "method": "GET", 
     "url": "/me/drive/root:/{file}:/content" 
    }, 
    { 
     "id": "2", 
     "method": "GET", 
     "url": "/me/planner/tasks" 
    }, 
    { 
     "id": "3", 
     "method": "GET", 
     "url": "/groups/{id}/events" 
    } 
    ] 
} 

私は私のList<Event>コレクションでのC#からそのようにそれを行う方法を理解していません。

答えて

1

はい、バッチ処理は現在プレビュー中で、/ベータ版でのみ利用できます。参照先のコードで使用するクライアントSDKは、/ v1.0でのみ使用できます。コード内にRESTリクエストを作成する必要があります。たとえば、

POST https://graph.microsoft.com/beta/$batch 
Accept: application/json 
Content-Type: application/json 

{ 
    "requests": [ 
    { 
     "id": "1", 
     "method": "DELETE", 
     "url": "/me/events/event_id1" 
    }, 
    { 
     "id": "2", 
     "method": "DELETE", 
     "url": "/me/events/event_id2" 
    }, 
    ] 
} 

RESTリクエストを作成するにはどうすればよいですか?

良い記事hereがあります。

using System; 
using System.IO; 
using System.Net; 
using System.Text; 

public enum HttpVerb 
{ 
    GET, 
    POST, 
    PUT, 
    DELETE 
} 

namespace HttpUtils 
{ 
    public class RestClient 
    { 
    public string EndPoint { get; set; } 
    public HttpVerb Method { get; set; } 
    public string ContentType { get; set; } 
    public string PostData { get; set; } 

    public RestClient() 
    { 
     EndPoint = ""; 
     Method = HttpVerb.GET; 
     ContentType = "text/xml"; 
     PostData = ""; 
    } 
    public RestClient(string endpoint) 
    { 
     EndPoint = endpoint; 
     Method = HttpVerb.GET; 
     ContentType = "text/xml"; 
     PostData = ""; 
    } 
    public RestClient(string endpoint, HttpVerb method) 
    { 
     EndPoint = endpoint; 
     Method = method; 
     ContentType = "text/xml"; 
     PostData = ""; 
    } 

    public RestClient(string endpoint, HttpVerb method, string postData) 
    { 
     EndPoint = endpoint; 
     Method = method; 
     ContentType = "text/xml"; 
     PostData = postData; 
    } 


    public string MakeRequest() 
    { 
     return MakeRequest(""); 
    } 

    public string MakeRequest(string parameters) 
    { 
     var request = (HttpWebRequest)WebRequest.Create(EndPoint + parameters); 

     request.Method = Method.ToString(); 
     request.ContentLength = 0; 
     request.ContentType = ContentType; 

     if (!string.IsNullOrEmpty(PostData) && Method == HttpVerb.POST) 
     { 
     var encoding = new UTF8Encoding(); 
     var bytes = Encoding.GetEncoding("iso-8859-1").GetBytes(PostData); 
     request.ContentLength = bytes.Length; 

     using (var writeStream = request.GetRequestStream()) 
     { 
      writeStream.Write(bytes, 0, bytes.Length); 
     } 
     } 

     using (var response = (HttpWebResponse)request.GetResponse()) 
     { 
     var responseValue = string.Empty; 

     if (response.StatusCode != HttpStatusCode.OK) 
     { 
      var message = String.Format("Request failed. Received HTTP {0}", response.StatusCode); 
      throw new ApplicationException(message); 
     } 

     // grab the response 
     using (var responseStream = response.GetResponseStream()) 
     { 
      if (responseStream != null) 
      using (var reader = new StreamReader(responseStream)) 
      { 
       responseValue = reader.ReadToEnd(); 
      } 
     } 

     return responseValue; 
     } 
    } 

    } // class 

} 

したがって、このクラスを使用すると、REST要求を書くことができます。たとえば(記事の)例:

var client = new RestClient(); 
client.EndPoint = @"http:\\myRestService.com\api\"; ; 
client.Method = HttpVerb.POST; 
client.PostData = "{postData: value}"; 
var json = client.MakeRequest(); 
+0

ありがとうございます。しかし、私は**どのように正確に**上記のコードをC#と呼んでいますか?そして、 "id"は単に数値増分か "event id"と同じですか?そして、20の削除だけがリストに入れられると言ってもいいですか? –

+0

答えを更新して、** REST **リクエストの作成方法の例を提供しました。あなたが気にしないことを願っています!しかし、私はまだ私の他の質問があります:1/** ** id **単なる数値増分*または**イベントID **と同じですか? 2/**私は20の削除**だけがリストに入れられると言っていますか? 3/**これはいつ**ベータ**ステージから外れますか? –

関連する問題