public async Task<HttpResponseMessage> TopicPoll( string triggerState, [Metadata("FreshDesk Domain", "The FreshDesk Domain")] string domain, [Metadata("FreshDesk API Key", "The FreshDesk API Key")] string apiKey, [Metadata("Forum Id", "The id of the forum")] int forumId) { var fd = new FreshDesk(apiKey, domain); forum t = await fd.GetForum(forumId); //1000227207 var tickets = t.topics.OrderByDescending(to => to.created_at).ToList(); if (string.IsNullOrEmpty(triggerState) || string.IsNullOrWhiteSpace(triggerState)) { triggerState = "2016-01-01"; } var lastTriggerTimeUtc = DateTime.Parse(triggerState).ToUniversalTime(); tickets = tickets.Where(to => to.created_at >= lastTriggerTimeUtc).ToList(); var resultingTopics = new List<topic>(); foreach(var ticket in tickets) { resultingTopics.Add(await fd.GetTopic(ticket.id)); } JObject json = new JObject(); json["topics"] = JToken.FromObject(resultingTopics); if (tickets != null && tickets.Count() != 0) { return this.Request.EventTriggered(json); } else { return this.Request.EventWaitPoll(new TimeSpan(0, 1, 0)); } }
public BaseTestClass() { fd = new FreshDesk(Settings.ApiKey, Settings.Domain); }