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");

        }
Exemple #2
0
        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);
        }