/// <summary> /// Create new object /// </summary> /// <param name="locationid">Location id where you want object create</param> /// <param name="name">Name of object</param> /// <param name="description">Description object</param> /// <returns>Created object</returns> public static T Create(T value) { AOperational <T> obj = (value as AOperational <T>); if (string.IsNullOrEmpty(obj.ParentId)) { obj.ParentId = "me/skydrive"; } //string data = JSONDataBuilder.Build(obj); //"{\"name\": \"" + name + "\",\r\n \"description\": \"" + description + "\"}"; string data = Newtonsoft.Json.JsonConvert.SerializeObject(obj, AGetOpConverter <T> .Settings); try { RequestObject ro = new RequestObject { Url = UrlBuilder1.Build(obj.ParentId), Method = WebRequestMethods.Http.Post, ContentType = ContentType.ApplicationJson }; ro.SetData(data); return(Requester.Request <T>(ro).ElementAt(0)); } catch { throw; } }
/// <summary> /// Copy object into new location. /// </summary> /// <param name="newLocationId">Location id where you want to copy object.</param> public virtual void Copy(string newLocationId) { if (string.IsNullOrEmpty(newLocationId)) { newLocationId = "me/skydrive"; } try { WLDestination dest = new WLDestination { Destination = newLocationId }; string data = Newtonsoft.Json.JsonConvert.SerializeObject(dest, AGetOpConverter <T> .Settings); RequestObject ro = new RequestObject { Url = UrlBuilder1.Build(Id.ToString()), Method = WebRequestMethods.Http.Copy, ContentType = ContentType.ApplicationJson }; //ro.SetData("{ \"destination\": \"" + newLocationId + "\"}"); ro.SetData(data); Requester.Request <T>(ro); } catch { throw; } }
/// <summary> /// Gets folders or subfolders of current user /// </summary> /// <param name="option">Option if you want to folders with subfolders or not</param> /// <returns>List of folders or subfolders of current user</returns> public IEnumerable <Folder> GetFolders(System.IO.SearchOption option) { if (string.IsNullOrEmpty(Id)) { Id = "me"; } Filter f = new Filter(FilterTypes.Folder); QueryParameters qp = new QueryParameters(); qp.Add("filter", f.GetTypesForQuery); try { if (option == System.IO.SearchOption.TopDirectoryOnly) { return(Requester.Request <Folder>(new RequestObject { Url = UrlBuilder1.Build(Id + "/skydrive/files", qp) }).ToList()); } else { List <Folder> k = new List <Folder>(); foreach (Folder folder in Requester.Request <Folder>(new RequestObject { Url = UrlBuilder1.Build(Id + "/files", qp) })) { k.Add(folder); k.AddRange(folder.GetFolders(option)); } return(k); } } catch { throw; } }