Example #1
0
        private static async Task MonitorProjectChanges(long projectId, TimeSpan interval)
        {
            var apiToken = GetApiToken();
            var asana    = new Asana(apiToken, AuthenticationType.Basic, errorCallback);

            //var project = await asana.GetProjectByIdAsync(projectId);
            //var events = await asana.GetEventsInAProjectAsync(project, "8233e364b4a1a439d0ace299e825a47b:2");

            var lastToken = string.Empty;

            while (true)
            {
                var events = await asana.GetEventsInAProjectAsync(projectId, lastToken);

                lastToken = events.Sync;
                if (events.Data != null)
                {
                    foreach (var item in events.Data)
                    {
                        Console.WriteLine($"{item.CreatedAt} - {item.Type}: {item.Action}");
                        if (item.Resource != null)
                        {
                            var line1 =
                                $"    {item.Resource.CreatedAt} - {item.Resource.Name} - {item.Resource.CreatedBy?.Name}";
                            var line2 = $"    {item.Resource.Type} - {item.Resource.Text}";
                            if (line1.Trim().Length > 2)
                            {
                                Console.WriteLine(line1);
                            }
                            if (line2.Trim().Length > 1)
                            {
                                Console.WriteLine(line2);
                            }
                        }
                    }
                }
                Thread.Sleep(interval);
            }
        }