Skip to content

Latest commit

 

History

History
64 lines (44 loc) · 1.83 KB

README.md

File metadata and controls

64 lines (44 loc) · 1.83 KB

AsanaNet

A .NET implementation of the Asana REST API http://developer.asana.com/

This open-source project uses the MIT license.

##Using AsanaNet To use AsanaNet, start by creating an instance of the Asana service. You can find your API key here.

 var asana = new Asana(YOUR_API_KEY, AuthenticationType.Basic, errorCallback);

All 'Get' requests are asynchronous and so must be accompanied by a callback. For example, to get the current user's information:

asana.GetMe(o =>
{
        var user = o as AsanaUser;
        Console.WriteLine("Hello, " + user.Name);
});

It is also possible to make them synchronize, by adding .Wait();.

Additionally, since the methods always return a task, you can await them within an async method, or another task.

asana.GetMe(o =>
{
        var user = o as AsanaUser;
        Console.WriteLine("Hello, " + user.Name);
}).Wait();

To get a list of workspaces the current user has access to:

asana.GetWorkspaces(o =>
{
    foreach (AsanaWorkspace workspace in o)
    {
        Console.WriteLine("Workspace: " + workspace.Name);
    }
});

To create a new task:

AsanaTask newTask1 = new AsanaTask(workspace);
newTask1.Name = "Pick up the milk!";
newTask1.Notes = "Proper semi-skimmed milk. None of that UHT rubbish.";
newTask1.Assignee = me;
newTask1.DueOn = DateTime.Now.AddHours(2);
newTask1.Save(asana);

###Error callback method The error callback method may be in the following form:

static void errorCallback(string s1, string s2, string s3)
{

}

Also, if you don't want handling anything, you can just pass an empty lambda into the constructor:

_asana = new Asana(_apiKey, AuthenticationType.Basic, (s1, s2, s3) => {});

###Work is on-going! Please contribute!