public List<IPlatformGroup> Get() { var groups = new List<IPlatformGroup>(); var page = 1; var more = false; do { var client = new RestClient(Host.Url, Session.Cookies); client.AddParameter("page", page.ToString()); client.Get("/groups-api/api/v1.0/groups.json"); var jsonGroups = client.Content.SelectToken("groups"); foreach (var jsonGroup in jsonGroups) { groups.Add(new PlatformGroup(jsonGroup)); } var pagination = client.Content.SelectToken("pagination"); more = pagination.SelectToken("current_page").Value<int>() < pagination.SelectToken("total_pages").Value<int>(); page++; } while (more); return groups; }
private void WorkerFunc() { try { var client = new RestClient(Host.Url, Session.Cookies); var res = client.Get("push_settings.json?ctype=mobile"); var queryString = client.Content.SelectToken("query_string").Value<string>(); var url = string.Format(@"https://notification-service-{0}{1}", Host.Uri.Host, queryString); _socket = new SocketIOClient.Client(url); _socket.Message += socket_MessageReceived; _socket.Error += socket_Error; _socket.Opened += socket_Opened; _socket.Connect(); } catch (OperationCanceledException) { IsStarted = false; } catch (Exception ex) { IsStarted = false; Logger.LogError(ex); throw; } }
public IEnumerable<IPlatformUser> GetMembers(int folderid) { var client = new RestClient(Host.Url, Session.Cookies); client.Get(string.Format("/api/v1.2/folders/{0}/members/ancestry.json", folderid)); var members = client.Content.SelectToken("members"); var res = new List<IPlatformUser>(); foreach (var member in members) { res.Add(new PlatformUser(Session,member)); } return res; }
public List<IPlatformFolder> Get() { var client = new RestClient(Host.Url, Session.Cookies); client.AddParameter("with_files", 0); client.Get("/api/v1.2/folders.json"); var jsonFolders = client.Content.SelectToken("folders"); var folders = new List<IPlatformFolder>(); foreach (var jsonFolder in jsonFolders) { folders.Add(new PlatformFolder(Session, User, null, jsonFolder)); } return folders; }
public Bitmap GetAvatar() { var avatarFile = Path.Combine(_cache, User.Uuid); if (!File.Exists(avatarFile)) { var client = new RestClient(Host.Url, Session.Cookies); client.AddParameter("token", User.Uuid); var response = client.Get("/api/v1.2/users/find_by_token.json"); response.EnsureSuccessStatusCode(); var url = client.Content.First.SelectToken("avatar").Value<string>(); var webClient = new WebClient(); webClient.DownloadFile(url, avatarFile); } return new Bitmap(avatarFile); }
public IPlatformUser Authenticate(string email, string password) { using (var handler = new HttpClientHandler()) using (var client = new HttpClient(handler) { BaseAddress = new Uri(Host.Url) }) { var parameters = new FormUrlEncodedContent(new[] { new KeyValuePair<string, string>("user_session[email]", email), new KeyValuePair<string, string>("user_session[password]", password), new KeyValuePair<string, string>("device[app_uid]", "WorkshareProtect") }); var response = client.PostAsync("/api/v1.3/user_sessions.json", parameters).Result; if ((int)response.StatusCode == 422) throw new UnauthorizedAccessException("Invalid user name or password."); response.EnsureSuccessStatusCode(); Session.Cookies = handler.CookieContainer; var content = response.Content.ReadAsStringAsync().Result; var parsedContent = JObject.Parse(content); User.DeviceToken = parsedContent.SelectToken("device_auth_token").Value<string>(); var client2 = new RestClient(Host.Url, handler.CookieContainer); client2.AddParameter("with_files", 0); client2.Get("/api/v1.2/folders.json"); var jsonFolders = client2.Content.SelectToken("folders"); foreach (var jsonFolder in jsonFolders) { var parentId = jsonFolder.SelectToken("parent_id").Value<long?>(); if (!parentId.HasValue) { User.Uuid = jsonFolder.SelectToken("owner").SelectToken("uuid").Value<string>(); User.Id = jsonFolder.SelectToken("owner").SelectToken("id").Value<string>(); User.Email = jsonFolder.SelectToken("owner").SelectToken("email").Value<string>(); return User; } } return User; } }
public IPlatformFolder GetMyFilesFolder() { var client = new RestClient(Host.Url, Session.Cookies); client.AddParameter("with_files", 0); client.Get("/api/v1.2/folders.json"); var jsonFolders = client.Content.SelectToken("folders"); foreach (var jsonFolder in jsonFolders) { var parentId = jsonFolder.SelectToken("parent_id").Value<long?>(); if (!parentId.HasValue) { return new PlatformFolder(Session, User, null, jsonFolder); } } throw new InvalidOperationException("My files folder does not exist."); }
public IEnumerable<IPlatformNotification> GetForFile(int fileId, bool unread) { var client = new RestClient(Host.Url, Session.Cookies); client.AddParameter("file_id", fileId); if (unread) { client.AddParameter("unread", "true"); } client.Get("api/v1.2/notifications.json"); var activitiesToken = client.Content.SelectToken("activities"); var res = new List<IPlatformNotification>(); foreach (var avtivityToken in activitiesToken) { res.Add(new PlatformNotification(Session, User, avtivityToken)); } return res; }
public IEnumerable<IPlatformComment> GetByFile(int fileId, int version) { var client = new RestClient(Host.Url, Session.Cookies); client.AddParameter("file_id", fileId); if (version > 0) { client.AddParameter("file_version", version); } client.Get("/api/v1.2/comments.json"); var comments = new List<IPlatformComment>(); var jsonFolders = client.Content; foreach (var jsonComment in jsonFolders) { comments.Add(new PlatformComment(Session, User, jsonComment)); } return comments; }
public IPlatformFile Get(int fileId) { var client = new RestClient(Host.Url, Session.Cookies); client.Get(string.Format("/api/v1.2/files/{0}.json", fileId)); return new PlatformFile(Session, User, client.Content); }
public IPlatformVersion GetVersion(int versionId) { var client = new RestClient(Host.Url, Session.Cookies); client.Get(string.Format("/api/v1.2/file_versions/{0}.json", versionId)); return new PlatformVersion(Session, User, client.Content,-1); }
public IEnumerable<IPlatformUser> GetUsers(List<string> tokens) { var res = new List<IPlatformUser>(); if (!tokens.Any()) return res; var client = new RestClient(Host.Url); client.AddParameter("token", string.Join(",", tokens)); client.Get("/api/v1.2/users/find_by_token.json"); foreach (var platformUser in client.Content) { res.Add(new PlatformUser(Session, platformUser)); } return res; }
public IPlatformPermissions GetPermissions() { var client = new RestClient(Host.Url, Session.Cookies); client.Get(string.Format("/api/v1.2/folders/{0}.json", Id)); return new PlatformPermissions(client.Content, client.Content.SelectToken("permissions")); }
private IPlatformUser AuthenticateWithDeviceToken() { if (!string.IsNullOrEmpty(User.DeviceToken)) { try { var client = new RestClient(Host.Url); client.AddCookie(new Cookie("device_credentials", User.DeviceToken)); client.AddParameter("includes", "a.profile"); var response = client.Get("/api/v1.3/current_user.json"); if (response.IsSuccessStatusCode) { Session.Cookies = client.CookieContainer; User.IsDeactivated = client.Content.SelectToken("is_deactivated").Value<bool>(); User.AccountId = client.Content.SelectToken("account").SelectToken("id").Value<string>(); User.Uuid = client.Content.SelectToken("uuid").Value<string>(); User.Email = client.Content.SelectToken("email").Value<string>(); User.Account = new PlatformAccount(Session, client.Content.SelectToken("account")); if (User.IsDeactivated) throw new UnauthorizedAccessException("The account has been deactivated."); return User; } } catch (Exception e) { Logger.LogError(e); } } return null; }
public IPlatformUser GetCurrentUser() { var client = new RestClient(Host.Url, Session.Cookies); client.Get("/api/v1.3/current_user.json"); var user = new PlatformUser(Session) { Id = client.Content.SelectToken("id").Value<string>(), Email = client.Content.SelectToken("email").Value<string>().ToLower(), AccountId = client.Content.SelectToken("account").SelectToken("id").Value<string>(), Plan = client.Content.SelectToken("account") .SelectToken("plan_name") .Value<string>() }; return user; //var client = new RestClient(Host.Url); //var request = CreateRequest("/api/v1.3/current_user.json", Method.GET); //var response = client.Execute(request); //ResponsePolicy.Validate(response); //var parsedContent = JObject.Parse(response.Content); //var user = new PlatformUser // { // Id = parsedContent.SelectToken("id").Value<string>(), // Email = parsedContent.SelectToken("email").Value<string>(), // AccountId = // parsedContent.SelectToken("account").SelectToken("id").Value<string>(), // Plan = // parsedContent.SelectToken("account") // .SelectToken("plan_name") // .Value<string>() // }; //return user; }
public IPlatformComment GetById(long commentId) { var client = new RestClient(Host.Url, Session.Cookies); client.Get(string.Format("/api/v1.2/comments/{0}.json", commentId)); return new PlatformComment(Session, User, client.Content); }
public List<IPlatformUser> GetMembers() { var client = new RestClient(Host.Url, Session.Cookies); client.Get(string.Format("/api/v1.2/folders/{0}/members.json", Id)); var users = new List<IPlatformUser>(); var members = client.Content.SelectToken("members"); foreach (var member in members) { users.Add(new PlatformUser(Session, member)); } if (users.All(x => string.Compare(x.Email, Owner.Email, true) != 0)) { users.Add(Owner); } return users; }
public IPlatformUser GetUser(string email) { var client = new RestClient(Host.Url); client.AddParameter("email", email); client.Get("/api/open-v1.3/users/user_exists.json"); var userContent = client.Content.First; if (userContent.SelectToken("present").Value<bool>()) { var user = new PlatformUser(Session) { Email = userContent.SelectToken("email").Value<string>().ToLower(), Plan = userContent.SelectToken("plan_name").Value<string>(), IsProfessionalEnabled = userContent.SelectToken("professional8").Value<bool>(), IsDeactivated = userContent.SelectToken("is_deactivated").Value<bool>() }; return user; } return null; }