public TrelloFileRepository(string key, string token, string list) { _key = key; _token = token; _list = list; RefreshCardArray(); JObject obj = cardarray.Children <JObject>() .FirstOrDefault(o => o["name"].ToString() == _rootname); /* * 用 _root card 的 description * 儲存 sync xml 資料 */ if (obj == null) { InitSyncSetting(); //無 _root 卡片 } else { // _rootname 卡片的 desc 儲存 syncsetting JObject root = JObject.Parse(TrelloHelper.GetCard(_key, _token, obj["id"].Value <string>())); // 把 card 的 description 轉成 xml document _xdoc = XDocument.Parse(root["desc"].Value <string>()); // 紀錄 root card id _rootcard = obj["id"].Value <string>(); } }
public List <SyncFileInfo> GetFiles(string folder) { List <SyncFileInfo> result = new List <SyncFileInfo>(); JObject obj = cardarray.Children <JObject>() .FirstOrDefault(o => o["name"].ToString() == folder); if (obj != null) { JArray list = JArray.Parse( TrelloHelper.GetCardAttachmentList(_key, _token, obj["id"].Value <string>())); foreach (JObject o in list.Children <JObject>()) { result.Add(new SyncFileInfo() { Name = o["name"].Value <string>(), Path = o["url"].Value <string>(), CreateDate = TrelloHelper.IdToDatetime(o["id"].Value <string>()), UpdateDate = TrelloHelper.IdToDatetime(o["id"].Value <string>()), Size = o["bytes"].Value <int>() } ); } } return(result); }
public void UpdateFile(string folder, string file, byte[] data) { JObject card = cardarray.Children <JObject>() .FirstOrDefault(o => o["name"].ToString() == folder); if (card == null) { throw new Exception("資料夾不存在"); } JArray list = JArray.Parse( TrelloHelper.GetCardAttachmentList(_key, _token, card["id"].Value <string>())); // file list JObject attachment = list.Children <JObject>() .FirstOrDefault(o => o["name"].ToString() == file); // 已存在,刪除檔案 if (attachment != null) { TrelloHelper.DeleteAttachment(_key, _token, card["id"].Value <string>(), attachment["id"].Value <string>()); } TrelloHelper.CreateAttachment(_key, _token, card["id"].Value <string>(), file, data); }
public void SaveSync() { // 刪除 root card if (!string.IsNullOrEmpty(_rootcard)) { TrelloHelper.DeleteCard(_key, _token, _rootcard); } // 把sync xml record 寫到 root card 的 description TrelloHelper.CreateCard(_key, _token, _list, _rootname, _xdoc.ToString()); RefreshCardArray(); // 重新取 card array }
public string Get() { if (string.IsNullOrEmpty(TrelloHelper.GetWebHooks().Result)) { TrelloHelper.SetupWebhookForList(nameof(ListChangeEndPoint)); } if (!string.IsNullOrEmpty(responseData)) { return(responseData); } return("lol, nope"); }
public void DeleteFolder(string folder) { JObject obj = cardarray.Children <JObject>() .FirstOrDefault(o => o["name"].ToString() == folder); if (obj == null) { throw new Exception("資料夾不存在"); } TrelloHelper.DeleteCard(_key, _token, obj["id"].Value <string>()); RefreshCardArray(); // 重新取 card array }
public List <SyncFolderInfo> GetFolders(bool withfile) { //cards in list List <SyncFolderInfo> folders = new List <SyncFolderInfo>(); foreach (JObject o in cardarray.Children <JObject>()) { // 排除 root card if (o["name"].Value <string>() == _rootname) { continue; } folders.Add(new SyncFolderInfo() { Name = o["name"].Value <string>(), Path = o["url"].Value <string>(), CreateDate = TrelloHelper.IdToDatetime(o["id"].Value <string>()), UpdateDate = TrelloHelper.IdToDatetime(o["id"].Value <string>()), } ); } if (withfile) { foreach (var folder in folders) { folder.Files = GetFiles(folder.Name); } } /* * 用 card 轉成 folder的資料 * 處理成實際用的 folder */ List <SyncFolderInfo> result = new List <SyncFolderInfo>(); foreach (var f in folders) { // 先找出第一層,名字沒有 \ 的 if (f.Name.Split('\\').Count() == 1) { // card 名字放路徑 result.Add(GetFolder(f.Name, withfile, folders)); } } return(result); }
public bool CreateFolder(string folder) { JObject obj = cardarray.Children <JObject>() .FirstOrDefault(o => o["name"].ToString() == folder); // 不存在才新增 if (obj == null) { TrelloHelper.CreateCard(_key, _token, _list, folder); RefreshCardArray(); // 重新取 card array return(true); } return(false); }
public void CreateFile(string folder, string name, byte[] file) { JObject obj = cardarray.Children <JObject>() .FirstOrDefault(o => o["name"].ToString() == folder); if (obj == null) { throw new Exception("資料夾不存在"); } JArray list = JArray.Parse( TrelloHelper.GetCardAttachmentList(_key, _token, obj["id"].Value <string>())); // file list JObject attachment = list.Children <JObject>() .FirstOrDefault(o => o["name"].ToString() == name); if (attachment != null) { DeleteFile(folder, name); //已存在,刪除檔案 } TrelloHelper.CreateAttachment(_key, _token, obj["id"].Value <string>(), name, file); }
public void DeleteFile(string folder, string file) { JObject card = cardarray.Children <JObject>() .FirstOrDefault(o => o["name"].ToString() == folder); if (card == null) { throw new Exception("資料夾不存在"); } // fetch file list JArray list = JArray.Parse( TrelloHelper.GetCardAttachmentList(_key, _token, card["id"].Value <string>())); JObject attachment = list.Children <JObject>() .FirstOrDefault(o => o["name"].ToString() == file); if (attachment == null) { throw new Exception("檔案不存在"); } TrelloHelper.DeleteAttachment(_key, _token, card["id"].Value <string>(), attachment["id"].Value <string>()); }
public void IdToDatetimeTest() { DateTime dt = TrelloHelper.IdToDatetime("4d5ea62fd76aa1136000000c"); Debug.WriteLine(dt.ToString()); }
/// <summary> /// 更新 trello card list /// </summary> void RefreshCardArray() { cardarray = JArray.Parse(TrelloHelper.GetCardList(_key, _token, _list)); }
/// <summary> /// 取得附件 byte[] /// </summary> /// <param name="path"></param> /// <returns></returns> public byte[] GetFile(string path) { return(TrelloHelper.GetAttachment(path)); }