コード例 #1
0
        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));
            }
        }
コード例 #2
0
 public BaseTestClass()
 {
      fd = new FreshDesk(Settings.ApiKey, Settings.Domain);
 }