
Teamwork Sharp
I’m releasing my another small free-time project: a Teamwork C# library (-inofficial-).
What is Teamwork?
Teamwork is a project/task-management software, something like Redmine, Jira, Trello, FogBugz and others.
Teamwork project can be controlled using their public web API, which this library uses.
Library features
My library supports following features:
- creating task:
- set assignee
- set watchers
- upload files
- set priority
- creating task lists
- creating task comments
- request projects
- request task lists
- request current user details
- request people working on project
- request tasks for project
The library uses FullSerializer for JSON manipulation. I found it better than commonly used Json.NET. It also works without problems when compiled on AOT platforms.
Also, this library is coded using older C# .NET 3 features, because I made also an Unity engine plugin that used this library (not part of the library).
Usage
Creating a simple task:
- create new client using var client = new TeamWorkSharp.Client and pass your Teamwork site domain name (domain_name.teamwork.com) and your user token
- register all possible delegates you’re interested in
- call client.RequestProjects()
- when your projects will be received, find your project of interest using var project = client.FindProjects(“project_name”, projects)
- request project task lists using RequestTaskLists(project)
- find your task list with var taskList = client.FindTaskList(“task_list_name”, project)
- post task using client.PostTask(taskList, …)
You can also request people working on project, post task comments etc…
Example project
In the source code, there is a simple example project that demonstrates all the features of the library (and works as a testing project when I’m implementing something in).
For example project to work, you must have your Teamwork domain and API token set in the example source code.
License
The library is released under BSD license in the hope it will be useful to someone.
Download
The library is available on my GitHub.