private async Task SendRecievedMessage(IUser user, Account acc, int uidSender, int messageId, int dialogParticipientId, string messageString) { string messageType = await GetMessageSenderMessageType(messageId, acc); var sender = new DataUser() { Uid = uidSender.ToString() }; IMessage message = new DataMessage() { Content = messageString, Recipient = messageType == "1" ? sender : user, Sender = messageType == "1" ? user : sender, ParticipientId = dialogParticipientId.ToString() }; if (messageType == "1") { GalaSoft.MvvmLight.Messaging.Messenger.Default.Send <MessagesUI.MessageNewMyMessageWasSent> (new MessagesUI.MessageNewMyMessageWasSent(message)); } else { GalaSoft.MvvmLight.Messaging.Messenger.Default.Send <MessagesUI.MessageNewMessageWasSentToMe> (new MessagesUI.MessageNewMessageWasSentToMe(message)); } }
private static async Task <IEnumerable <IDialog> > GetVkDialogs(DataIUser user) { IList <IDialog> dialogs = new List <IDialog>(); try { Account acc = Account.Deserialize(user.SerializeInfo.ToString()); var request = new OAuth2Request("GET", new Uri("https://api.vk.com/method/messages.getDialogs"), null, acc); request.Parameters.Add("count", "200"); request.Parameters.Add("v", "5.37"); var res = await request.GetResponseAsync(); var responseText = res.GetResponseText(); var msg = JsonConvert.DeserializeObject <XamarinSocialApp.Droid.Data.VkData.VkDialogsResponse>(responseText); foreach (var item in msg.Response.Messages) { IUser userDialog = new User() { Uid = item.Message.UserId, SerializeInfo = user.SerializeInfo }; DateTime start = new DateTime(1970, 1, 1, 0, 0, 0, 0, System.DateTimeKind.Utc); string dateMessage = start.AddSeconds(item.Message.DateMessage).ToLocalTime().ToString(); //var userDialog = await GetUserInfoRequest(item.Message.UserId, acc, socialNetwork); dialogs.Add(new DataDialogs(userDialog, new List <IMessage>() { new DataMessage() { Content = item.Message.Body, DateMessage = dateMessage } })); } } catch (Exception) { } return(dialogs); }
public async Task <IEnumerable <IDialog> > GetTwitterDialogs(DataIUser user) { IList <IDialog> dialogs = new List <IDialog>(); try { TwitterContext context = this.GetTwitterContext(user.SerializeInfo); var twitterDialogs = await (from dm in context.DirectMessage where dm.Type == DirectMessageType.SentTo select dm) .ToListAsync(); foreach (var msg in twitterDialogs) { IUser userDialog = new User() { Uid = msg.SenderID.ToString(), FirstName = msg.SenderScreenName, SerializeInfo = user.SerializeInfo, SocialNetwork = user.SocialNetwork }; dialogs.Add(new DataDialogs(userDialog, new List <IMessage>() { new DataMessage() { Content = msg.Text, DateMessage = msg.CreatedAt.ToString() } })); } } catch (Exception) { } return(dialogs); }
private async Task<IDialog> GetTwitterDialogWithFriend(DataIUser user, DataIUser friend) { IDialog dialog = null; IUser userInDialog = null; IList<IMessage> messages = new List<IMessage>(); try { TwitterContext context = this.GetTwitterContext(user.SerializeInfo); var receivedMessages = await (from dm in context.DirectMessage where dm.Type == DirectMessageType.SentTo select dm).OrderByDescending(x => x.CreatedAt) .ToListAsync(); var sentMessages = await (from dm in context.DirectMessage where dm.Type == DirectMessageType.SentBy select dm).OrderByDescending(x => x.CreatedAt) .ToListAsync(); foreach (var message in receivedMessages) { if (message.SenderID.ToString() == friend.Uid) { userInDialog = new User() { FirstName = message.Sender.ScreenNameResponse }; messages.Add(new DataMessage() { Content = message.Text, Sender = userInDialog, DateMessage = message.CreatedAt.ToString() }); } } foreach (var message in sentMessages) { if (message.RecipientID.ToString() == friend.Uid) { userInDialog = new User() { FirstName = message.Sender.ScreenNameResponse }; messages.Add(new DataMessage() { Content = message.Text, Sender = userInDialog, DateMessage = message.CreatedAt.ToString() }); } } messages = messages.OrderByDescending(x => x.DateMessage).ToList(); dialog = new XamarinSocialApp.UI.Data.Implementations.Entities.Databases.Dialog(user, messages); } catch (Exception) { } return dialog; }
private static async Task<IEnumerable<IDialog>> GetVkDialogs(DataIUser user) { IList<IDialog> dialogs = new List<IDialog>(); try { Account acc = Account.Deserialize(user.SerializeInfo.ToString()); var request = new OAuth2Request("GET", new Uri("https://api.vk.com/method/messages.getDialogs"), null, acc); request.Parameters.Add("count", "200"); request.Parameters.Add("v", "5.37"); var res = await request.GetResponseAsync(); var responseText = res.GetResponseText(); var msg = JsonConvert.DeserializeObject<XamarinSocialApp.Droid.Data.VkData.VkDialogsResponse>(responseText); foreach (var item in msg.Response.Messages) { IUser userDialog = new User() { Uid = item.Message.UserId, SerializeInfo = user.SerializeInfo }; DateTime start = new DateTime(1970, 1, 1, 0, 0, 0, 0, System.DateTimeKind.Utc); string dateMessage = start.AddSeconds(item.Message.DateMessage).ToLocalTime().ToString(); //var userDialog = await GetUserInfoRequest(item.Message.UserId, acc, socialNetwork); dialogs.Add(new DataDialogs(userDialog, new List<IMessage>() { new DataMessage() { Content = item.Message.Body, DateMessage = dateMessage } })); } } catch (Exception) { } return dialogs; }
public async Task<IEnumerable<IDialog>> GetTwitterDialogs(DataIUser user) { IList<IDialog> dialogs = new List<IDialog>(); try { TwitterContext context = this.GetTwitterContext(user.SerializeInfo); var twitterDialogs = await (from dm in context.DirectMessage where dm.Type == DirectMessageType.SentTo select dm) .ToListAsync(); foreach (var msg in twitterDialogs) { IUser userDialog = new User() { Uid = msg.SenderID.ToString(), FirstName = msg.SenderScreenName, SerializeInfo = user.SerializeInfo, SocialNetwork = user.SocialNetwork }; dialogs.Add(new DataDialogs(userDialog, new List<IMessage>() { new DataMessage() { Content = msg.Text, DateMessage = msg.CreatedAt.ToString() } })); } } catch (Exception) { } return dialogs; }
private async Task<DataIUser> LoginToTwitter() { DataIUser resultUser = null; LinqToTwitter.User twitterUser = null; try { TaskCompletionSource<int> ts = new TaskCompletionSource<int>(); var auth = new OAuth1Authenticator( consumerKey: "YVgafJLg6figpxcFTx9oBhXDw", consumerSecret: "AdNdiuHSHIf5hN6HWnVrC9u6bnW3vVirjEhAFrfabacPIQdh98", requestTokenUrl: new Uri("https://api.twitter.com/oauth/request_token"), //https://api.twitter.com/oauth/authorize authorizeUrl: new Uri("https://api.twitter.com/oauth/authorize"), accessTokenUrl: new Uri("https://api.twitter.com/oauth/access_token"), callbackUrl: new Uri("https://oauth.vk.com/blank.html")); auth.AllowCancel = true; auth.Completed += (s, ee) => { if (!ee.IsAuthenticated) { ts.SetResult(0); return; } var twitterCtx = GetTwitterContext(); var accounts = from acct in twitterCtx.Account where acct.Type == AccountType.VerifyCredentials select acct; LinqToTwitter.Account account = accounts.SingleOrDefault(); twitterUser = account.User; #region unused requests //var searchResponses = (from search in ctx.Search // where search.Type == SearchType.Search // && search.Query == searchText // select search).SingleOrDefault(); //var tweets = from tweet in searchResponses.Statuses // select new Message // { // Value = tweet.Text, // Id = tweet.TweetIDs, // ImageUri = tweet.User.ProfileImageUrl, // UserName = tweet.User.ScreenNameResponse, // Name = tweet.User.Name, // CreatedAt = tweet.CreatedAt, // ReTweets = tweet.RetweetCount, // Favorite = tweet.FavoriteCount.Value // }; //var followers = (from follower in twitterCtx.Friendship // where follower.Type == FriendshipType.FollowersList && // follower.UserID == "3620214675" // select follower).SingleOrDefault(); #endregion string uid = twitterUser.UserIDResponse; string firstName = twitterUser.ScreenNameResponse; TwitterData.TwitterUser twUser = new TwitterData.TwitterUser(); twUser.ConsumerKey = twitterCtx.Authorizer.CredentialStore.ConsumerKey; twUser.ConsumerSecret = twitterCtx.Authorizer.CredentialStore.ConsumerSecret; twUser.OAuthToken = twitterCtx.Authorizer.CredentialStore.OAuthToken; twUser.OAuthTokenSecret = twitterCtx.Authorizer.CredentialStore.OAuthTokenSecret; twUser.UserID = ulong.Parse(uid); twUser.ScreenName = firstName; resultUser = new User() { FirstName = firstName, Uid = uid, SerializeInfo = JsonConvert.SerializeObject(twUser), SocialNetwork = enSocialNetwork.Twitter }; ts.SetResult(0); }; var intent = auth.GetUI(Forms.Context); Forms.Context.StartActivity(intent); await ts.Task; } catch (Exception) { } return resultUser; }
private static async Task<DataIUser> LoginToVk() { IUser user = null; try { TaskCompletionSource<int> ts = new TaskCompletionSource<int>(); var auth = new OAuth2Authenticator( clientId: "5042701", scope: "offline,messages,friends", authorizeUrl: new Uri("https://oauth.vk.com/authorize"), redirectUrl: new Uri("https://oauth.vk.com/blank.html")); auth.AllowCancel = true; auth.Completed += (s, ee) => { if (!ee.IsAuthenticated) { ts.SetResult(0); return; } var request = new OAuth2Request("GET", new Uri("https://api.vk.com/method/users.get"), null, ee.Account); request.GetResponseAsync().ContinueWith(t => { if (t.IsCompleted) { Token = ee.Account.Properties["access_token"].ToString(); string account = ee.Account.Serialize(); Account = ee.Account; var response = t.Result.GetResponseText(); var users = JsonConvert.DeserializeObject<XamarinSocialApp.Droid.Data.VkData.VkUsers>(response); string uid = users.response[0].uid; string firstName = users.response[0].first_name; string lastName = users.response[0].last_name; user = new User() { FirstName = firstName, LastName = lastName, Uid = uid, SerializeInfo = Account.Serialize(), SocialNetwork = enSocialNetwork.VK }; ts.SetResult(0); } else { ts.SetResult(0); return; } }, UIScheduler); }; var intent = auth.GetUI(Forms.Context); Forms.Context.StartActivity(intent); await ts.Task; } catch (Exception) { } return user; }
private async Task SendRecievedMessage(IUser user, Account acc, int uidSender, int messageId, int dialogParticipientId, string messageString) { string messageType = await GetMessageSenderMessageType(messageId, acc); var sender = new DataUser() { Uid = uidSender.ToString() }; IMessage message = new DataMessage() { Content = messageString, Recipient = messageType == "1" ? sender : user, Sender = messageType == "1" ? user : sender, ParticipientId = dialogParticipientId.ToString() }; if (messageType == "1") { GalaSoft.MvvmLight.Messaging.Messenger.Default.Send<MessagesUI.MessageNewMyMessageWasSent> (new MessagesUI.MessageNewMyMessageWasSent(message)); } else { GalaSoft.MvvmLight.Messaging.Messenger.Default.Send<MessagesUI.MessageNewMessageWasSentToMe> (new MessagesUI.MessageNewMessageWasSentToMe(message)); } }
private async Task <IDialog> GetTwitterDialogWithFriend(DataIUser user, DataIUser friend) { IDialog dialog = null; IUser userInDialog = null; IList <IMessage> messages = new List <IMessage>(); try { TwitterContext context = this.GetTwitterContext(user.SerializeInfo); var receivedMessages = await (from dm in context.DirectMessage where dm.Type == DirectMessageType.SentTo select dm).OrderByDescending(x => x.CreatedAt) .ToListAsync(); var sentMessages = await (from dm in context.DirectMessage where dm.Type == DirectMessageType.SentBy select dm).OrderByDescending(x => x.CreatedAt) .ToListAsync(); foreach (var message in receivedMessages) { if (message.SenderID.ToString() == friend.Uid) { userInDialog = new User() { FirstName = message.Sender.ScreenNameResponse }; messages.Add(new DataMessage() { Content = message.Text, Sender = userInDialog, DateMessage = message.CreatedAt.ToString() }); } } foreach (var message in sentMessages) { if (message.RecipientID.ToString() == friend.Uid) { userInDialog = new User() { FirstName = message.Sender.ScreenNameResponse }; messages.Add(new DataMessage() { Content = message.Text, Sender = userInDialog, DateMessage = message.CreatedAt.ToString() }); } } messages = messages.OrderByDescending(x => x.DateMessage).ToList(); dialog = new XamarinSocialApp.UI.Data.Implementations.Entities.Databases.Dialog(user, messages); } catch (Exception) { } return(dialog); }
private async Task <DataIUser> LoginToTwitter() { DataIUser resultUser = null; LinqToTwitter.User twitterUser = null; try { TaskCompletionSource <int> ts = new TaskCompletionSource <int>(); var auth = new OAuth1Authenticator( consumerKey: "YVgafJLg6figpxcFTx9oBhXDw", consumerSecret: "AdNdiuHSHIf5hN6HWnVrC9u6bnW3vVirjEhAFrfabacPIQdh98", requestTokenUrl: new Uri("https://api.twitter.com/oauth/request_token"), //https://api.twitter.com/oauth/authorize authorizeUrl: new Uri("https://api.twitter.com/oauth/authorize"), accessTokenUrl: new Uri("https://api.twitter.com/oauth/access_token"), callbackUrl: new Uri("https://oauth.vk.com/blank.html")); auth.AllowCancel = true; auth.Completed += (s, ee) => { if (!ee.IsAuthenticated) { ts.SetResult(0); return; } var twitterCtx = GetTwitterContext(); var accounts = from acct in twitterCtx.Account where acct.Type == AccountType.VerifyCredentials select acct; LinqToTwitter.Account account = accounts.SingleOrDefault(); twitterUser = account.User; #region unused requests //var searchResponses = (from search in ctx.Search // where search.Type == SearchType.Search // && search.Query == searchText // select search).SingleOrDefault(); //var tweets = from tweet in searchResponses.Statuses // select new Message // { // Value = tweet.Text, // Id = tweet.TweetIDs, // ImageUri = tweet.User.ProfileImageUrl, // UserName = tweet.User.ScreenNameResponse, // Name = tweet.User.Name, // CreatedAt = tweet.CreatedAt, // ReTweets = tweet.RetweetCount, // Favorite = tweet.FavoriteCount.Value // }; //var followers = (from follower in twitterCtx.Friendship // where follower.Type == FriendshipType.FollowersList && // follower.UserID == "3620214675" // select follower).SingleOrDefault(); #endregion string uid = twitterUser.UserIDResponse; string firstName = twitterUser.ScreenNameResponse; TwitterData.TwitterUser twUser = new TwitterData.TwitterUser(); twUser.ConsumerKey = twitterCtx.Authorizer.CredentialStore.ConsumerKey; twUser.ConsumerSecret = twitterCtx.Authorizer.CredentialStore.ConsumerSecret; twUser.OAuthToken = twitterCtx.Authorizer.CredentialStore.OAuthToken; twUser.OAuthTokenSecret = twitterCtx.Authorizer.CredentialStore.OAuthTokenSecret; twUser.UserID = ulong.Parse(uid); twUser.ScreenName = firstName; resultUser = new User() { FirstName = firstName, Uid = uid, SerializeInfo = JsonConvert.SerializeObject(twUser), SocialNetwork = enSocialNetwork.Twitter }; ts.SetResult(0); }; var intent = auth.GetUI(Forms.Context); Forms.Context.StartActivity(intent); await ts.Task; } catch (Exception) { } return(resultUser); }
private static async Task <DataIUser> LoginToVk() { IUser user = null; try { TaskCompletionSource <int> ts = new TaskCompletionSource <int>(); var auth = new OAuth2Authenticator( clientId: "5042701", scope: "offline,messages,friends", authorizeUrl: new Uri("https://oauth.vk.com/authorize"), redirectUrl: new Uri("https://oauth.vk.com/blank.html")); auth.AllowCancel = true; auth.Completed += (s, ee) => { if (!ee.IsAuthenticated) { ts.SetResult(0); return; } var request = new OAuth2Request("GET", new Uri("https://api.vk.com/method/users.get"), null, ee.Account); request.GetResponseAsync().ContinueWith(t => { if (t.IsCompleted) { Token = ee.Account.Properties["access_token"].ToString(); string account = ee.Account.Serialize(); Account = ee.Account; var response = t.Result.GetResponseText(); var users = JsonConvert.DeserializeObject <XamarinSocialApp.Droid.Data.VkData.VkUsers>(response); string uid = users.response[0].uid; string firstName = users.response[0].first_name; string lastName = users.response[0].last_name; user = new User() { FirstName = firstName, LastName = lastName, Uid = uid, SerializeInfo = Account.Serialize(), SocialNetwork = enSocialNetwork.VK }; ts.SetResult(0); } else { ts.SetResult(0); return; } }, UIScheduler); }; var intent = auth.GetUI(Forms.Context); Forms.Context.StartActivity(intent); await ts.Task; } catch (Exception) { } return(user); }