/// <summary>マイリストを追加するストリームを取得する</summary> /// <param name="AddItem">追加するマイリスト</param> /// <param name="IsGetToken">トークンを取得するかどうか</param> public Streams <AddMylistResponse> OpenMylistAddStreams(Mylist.Mylist AddItem, bool IsGetToken = true) { var streamDataList = new List <StreamData>(); AddMylistResponse result = null; if (IsGetToken) { streamDataList.AddRange(host.GetToken()); } var updateStreamDatas = context.Client.OpenUploadStreams(ApiUrls.AddMylist, ContentType.Form).GetStreamDatas(); updateStreamDatas[0].GetWriteData = () => Encoding.UTF8.GetBytes(string.Format( PostTexts.AddMylist, AddItem.Title, AddItem.Description, (AddItem.IsPublic) ? "1" : "0", host.token)); updateStreamDatas[1].SetReadData = (data) => { var serialize = new DataContractJsonSerializer(typeof(Serial.AddMylist.Contract)); result = converter.ConvertAddMylist((Serial.AddMylist.Contract)serialize.ReadObject(new MemoryStream(data))); result.AddedMylist.Title = AddItem.Title; result.AddedMylist.Description = AddItem.Description; result.AddedMylist.IsPublic = AddItem.IsPublic; }; streamDataList.AddRange(updateStreamDatas); return(new Streams <AddMylistResponse>( streamDataList.ToArray(), () => result)); }
/// <summary>マイリストを削除するストリームを取得する</summary> /// <param name="RemoveItem">削除するマイリスト</param> /// <param name="IsGetToken">トークンを取得するかどうか</param> public Streams <Response> OpenMylistRemoveStreams(Mylist.Mylist RemoveItem, bool IsGetToken = true) { var streamDataList = new List <StreamData>(); Response result = null; if (IsGetToken) { streamDataList.AddRange(host.GetToken()); } var updateStreamDatas = context.Client.OpenUploadStreams(ApiUrls.RemoveMylist, ContentType.Form).GetStreamDatas(); updateStreamDatas[0].GetWriteData = () => Encoding.UTF8.GetBytes(string.Format( PostTexts.RemoveMylist, RemoveItem.ID, host.token)); updateStreamDatas[1].SetReadData = (data) => { var str = Encoding.UTF8.GetString(data); var serialize = new DataContractJsonSerializer(typeof(Serial.RemoveMylist.Contract)); result = converter.ConvertResponse((Serial.RemoveMylist.Contract)serialize.ReadObject(new MemoryStream(data))); }; streamDataList.AddRange(updateStreamDatas); return(new Streams <Response>( streamDataList.ToArray(), () => result)); }
/// <summary>内部生成時、使用される</summary> /// <param name="Target">ターゲットマイリスト</param> /// <param name="Host">ページを取得できるクラス</param> /// <param name="Context">コンテキスト</param> internal MylistPage(Mylist.Mylist Target, VideoService Host, Context Context) { target = Target; context = Context; converter = new Serial.Converter(context); host = Host; }
/// <summary>ユーザーへアクセスするページを取得する</summary> /// <param name="Target">ターゲットユーザー</param> public MylistPage GetMylistPage(Mylist.Mylist Target) { if (Target.mylistPage != null) { return(Target.mylistPage); } else { return(Target.mylistPage = new MylistPage(Target, this, context)); } }
/// <summary>マイリストを削除する</summary> /// <param name="RemoveItem">削除するマイリスト</param> /// <param name="IsGetToken">トークンを取得するかどうか</param> public Response RemoveMylist(Mylist.Mylist RemoveItem, bool IsGetToken = true) { var streams = OpenMylistRemoveStreams(RemoveItem, IsGetToken); return(streams.Run(streams.UntreatedCount)); }
/// <summary>マイリストを追加する</summary> /// <param name="AddItem">追加するマイリスト</param> /// <param name="IsGetToken">トークンを取得するかどうか</param> public AddMylistResponse AddMylist(Mylist.Mylist AddItem, bool IsGetToken = true) { var streams = OpenMylistAddStreams(AddItem, IsGetToken); return(streams.Run(streams.UntreatedCount)); }