public PlatformVersion(IPlatformSession session, IPlatformUser user, JToken content, int currentVersion) { this.Id = content.SelectToken("id").Value<int>(); this.ParentId = FileId = content.SelectToken("file_id").Value<int>(); this.Name = content.SelectToken("file_name").Value<string>(); this.CreatedAt = content.SelectToken("created_at").Value<DateTime>(); this.Number = content.SelectToken("version").Value<int>(); this.IsLatest = currentVersion == Number; Creator = new PlatformUser(session, content.SelectToken("creator")); }
public PlatformFolder(IPlatformSession session, IPlatformUser user, IPlatformFolder parentFolder, JToken content) : base(session, user) { Contract.Requires(session != null); Contract.Requires(user != null); Contract.Requires(content != null); Parent = parentFolder; Id = content.SelectToken("id").Value<long>(); Name = content.SelectToken("name").Value<string>(); Description = content.SelectToken("description").Value<string>(); FileCount = content.SelectToken("file_counter").Value<long>(); FolderCount = content.SelectToken("folder_counter").Value<long>(); MemberCount = content.SelectToken("members_counter").Value<long>(); ParentId = content.SelectToken("parent_id").Value<long?>(); Url = content.SelectToken("url").Value<string>(); Uuid = content.SelectToken("uuid").Value<string>(); Owner = new PlatformUser(session, content.SelectToken("owner")); Permissions = new PlatformPermissions(content, content.SelectToken("permissions")); IsOwner = user.Email == Owner.Email; }
private void socket_MessageReceived(object sender, SocketIOClient.MessageEventArgs e) { if (e.Message.MessageType == SocketIOMessageTypes.JSONMessage) { Logger.LogTrace(e.Message.MessageText); var json = JObject.Parse(e.Message.MessageText); var noun = json.SelectToken("noun").Value<string>(); var verb = json.SelectToken("verb").Value<string>(); var creatorUuid = json.SelectToken("creator").SelectToken("uuid").Value<string>(); switch (noun) { case "Comment": { var comment = json.SelectToken("comment"); var commentId = comment.SelectToken("id").Value<long>(); var fileId = comment.SelectToken("file_id").Value<int>(); var versionNumber = comment.SelectToken("file_version").Value<int>(); var body = comment.SelectToken("body").Value<string>(); switch (verb) { case "Create": Events.GetEvent<FileCommentAddedEvent>().Publish(new CommentEventArgs() { CommentId = commentId, FileId = fileId, VersionNumber = versionNumber, UserUuId = creatorUuid }); break; case "Delete": Events.GetEvent<FileCommentRemovedEvent>().Publish(new CommentEventArgs() { CommentId = commentId, FileId = fileId, VersionNumber = versionNumber, UserUuId = creatorUuid }); break; case "Update": Events.GetEvent<FileCommentEditedEvent>().Publish(new CommentEventArgs() { CommentId = commentId, FileId = fileId, VersionNumber = versionNumber, Body = body, UserUuId = creatorUuid }); break; } break; } case "Visit": { var userId = json.SelectToken("visit").SelectToken("user_id").Value<string>(); var fileId = json.SelectToken("visit").SelectToken("file_id").Value<int?>().GetValueOrDefault(); var folderid = json.SelectToken("visit").SelectToken("folder_id").Value<int?>().GetValueOrDefault(); Events.GetEvent<UserVisitEvent>().Publish(new UserEventArgs() { UserId = userId, UserUuid = creatorUuid, FolderId = folderid, FileId = fileId }); break; } case "FileVersion": { switch (verb) { case "Update": { var newStatus = json.SelectToken("changes").SelectToken("status").SelectToken("new"); if (newStatus.Type == JTokenType.String && string.Equals(newStatus.Value<string>(), "applied")) { var creatorToken = json.SelectToken("file_version").SelectToken("creator"); var creator = new PlatformUser(Session, creatorToken); var version = new PlatformVersion(Session, User, json.SelectToken("file_version"), -1); Events.GetEvent<FileVersionAddedEvent>().Publish(new VersionEventArgs() { VersionNumber = version.Number, FileId = version.FileId, Creator = creator, Version = version }); } break; } } } break; case "Member": { var memberToken = json.SelectToken("member"); var user = new PlatformUser(Session, memberToken); var folderId = json.SelectToken("folder_id").Value<int?>().GetValueOrDefault(); switch (verb) { case "Create": { Events.GetEvent<MemberAddedEvent>().Publish(new MemberActionEventArgs() { FolderId = folderId, Member = user, MemverUuid = user.Uuid }); break; } case "Delete": { Events.GetEvent<MemberRemovedvent>().Publish(new MemberActionEventArgs() { FolderId = folderId, Member = user, MemverUuid = user.Uuid }); break; } } break; } case "File" : { var fileId = json.SelectToken("file_id").Value<int>(); switch (verb) { case "Download": { Events.GetEvent<FileDownloadedEvent>().Publish(new FileActionArgs() { FileId = fileId, UserUuid = creatorUuid }); break; } } break; } } } else if (e.Message.MessageType == SocketIOMessageTypes.Event) { switch (e.Message.Event) { case "file:openedByUser" : { var jsom = JObject.Parse(e.Message.MessageText); var data = jsom.SelectToken("args").First; var userUuid = data.SelectToken("uuid").Value<string>(); var fileid = data.SelectToken("file_id").Value<int>(); var currentEditors = data.SelectToken("current_editors").Value<int>(); Events.GetEvent<FileOpenedEvent>().Publish(new FileOpenCloseArgs() { FileId = fileid, UserUuid = userUuid, CurrentEdotorsCount = currentEditors }); break; } case "file:closedByUser": { var jsom = JObject.Parse(e.Message.MessageText); var data = jsom.SelectToken("args").First; var userUuid = data.SelectToken("uuid").Value<string>(); var fileid = data.SelectToken("file_id").Value<int>(); var currentEditors = data.SelectToken("current_editors").Value<int>(); Events.GetEvent<FileClosedEvent>().Publish(new FileOpenCloseArgs() { FileId = fileid, UserUuid = userUuid, CurrentEdotorsCount = currentEditors }); break; } } } }
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 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; }