public ActionResult Callback(string code) { if (string.IsNullOrEmpty(code)) throw new Exception("problem with the yammer call back - code value missing from query string"); //var url = string.Format(YammerTokenEndpointUrl, ClientId, ClientSecret, callbackCode); var yammerApi = new YammerApi{ClientId = ClientId,ClientSecret = ClientSecret}; var yammerUserDetails=yammerApi.GetYammerDetails(code); using (var orgSession = OrgStore.OpenSession()) { OrgUser.YammerUserDetails = yammerUserDetails; orgSession.SaveChanges(); SaveOrgUserAsClaim(); } return RedirectToAction("LinkedToYammer", "home"); }
private static async Task <int> Yammer(YammerOptions opts) { var api = new YammerApi(); var message = await api.GetMessageAsync(opts.MessageId).ConfigureAwait(false); if (message == null) { Console.WriteLine($"Message {opts.MessageId} does not exist"); return(0); } var sep = new string('-', 80); Console.WriteLine($"{sep}\n{message.Body.Plain}\n{sep}\n\n{message.LikedBy.Count:N0} Likes, including:"); foreach (var name in message.LikedBy.Names) { Console.WriteLine($"- {name.FullName}"); } if (!string.IsNullOrEmpty(opts.PhoneNumber)) { if (!IsPhoneValid(opts.PhoneNumber)) { Console.WriteLine("Invalid phone number"); } Console.WriteLine("\nMonitoring, press Ctrl+C to exit ..."); var lastCount = message.LikedBy.Count; var dots = 0; for (; ;) { await Task.Delay(3000).ConfigureAwait(false); message = await api.GetMessageAsync(opts.MessageId).ConfigureAwait(false); if (message == null) { Console.WriteLine($"Message {opts.MessageId} does not exist"); return(0); } if (message.LikedBy.Count != lastCount) { var body = $"Like count changed from {lastCount:N0} to {message.LikedBy.Count:N0}"; if (dots > 0) { Console.WriteLine(); } Console.WriteLine(body); var result = await Sms(new SmsOptions { PhoneNumber = opts.PhoneNumber, Body = body }).ConfigureAwait(false); if (result != 0) { return(result); } lastCount = message.LikedBy.Count; dots = 0; } else { if (dots > 80) { Console.Write("\n."); dots = 1; } else { Console.Write("."); dots++; } } } } return(0); }