/// <summary>
 /// Provides a deterministic way to create the Tweets property.
 /// </summary>
 public static void CreateTweets()
 {
     if (_tweets == null)
     {
         _tweets = new TweetsViewModel();
     }
 }
Ejemplo n.º 2
0
 public HomeViewModel()
 {
     Overview = new OverviewViewModel();
     Topics = new TopicListViewModel();
     UpcomingSessions = new UpcomingSessionsViewModel();
     Tweets = new TweetsViewModel();
 }
Ejemplo n.º 3
0
        public async Task <PartialViewResult> GetTweets()
        {
            TweetsViewModel tvm = new TweetsViewModel();
            await tvm.LoadTweets();

            return(PartialView("_TweetGrid", tvm));
        }
Ejemplo n.º 4
0
        public static TweetsViewModel GetTweetsForCurrentUser(string userName)
        {
            TweetsViewModel viewModel = new TweetsViewModel();

            using (var dbContext = new Entities())
            {
                var followingIDs = dbContext.Followings
                                   .Where(x => x.UserId == userName)
                                   .Select(x => x.FollowingId);

                var noOfFollowers = dbContext.Followings
                                    .Count(x => x.FollowingId == userName);


                var mytweets = dbContext.Tweets.Where(x => x.UserId == userName)
                               .ToList();

                var followersTweet = dbContext.Tweets.Where(x => followingIDs.Contains(x.UserId))
                                     .ToList();

                var allTweets = mytweets.Union(followersTweet)
                                .OrderByDescending(x => x.Created);


                viewModel.NoOfFollowings = followingIDs.Count();
                viewModel.NoOfFollowers  = noOfFollowers;
                viewModel.NoOfTweets     = mytweets.Count();
                viewModel.Tweets         = allTweets.ToList();

                return(viewModel);
            }
        }
Ejemplo n.º 5
0
        public TweetsListView(TweetsViewModel viewModel)
        {
            InitializeComponent();
            BindingContext = viewModel;

            _viewModel = viewModel;
            var task = viewModel.Initialise();
        }
Ejemplo n.º 6
0
        public ActionResult EditTweet(int id)
        {
            var repository = new TweetRepository();
            var tweetObj   = repository.FindTweet(id);
            var tweetModel = new TweetsViewModel {
                user_id = tweetObj.Useridd, tweet_id = tweetObj.tweet_id, message = tweetObj.usermessage, created = tweetObj.created
            };

            return(View(tweetModel));
        }
Ejemplo n.º 7
0
        public IActionResult Index(TweetsViewModel model)
        {
            var tweetsData      = _tweetsProcessor.ProcessTweets(model.StartDate, model.EndDate);
            var distinctRecords = tweetsData.Distinct(new ItemEqualityComparer());

            var tweetsViewModel = new TweetsViewModel()
            {
                Tweets         = distinctRecords.ToList(),
                Count          = tweetsData.ToList().Count,
                DuplicateCount = tweetsData.ToList().Count - distinctRecords.ToList().Count
            };

            return(View(tweetsViewModel));
        }
Ejemplo n.º 8
0
        public ActionResult Tweet(TweetsViewModel objModel)
        {
            if (ModelState.IsValid)
            {
                var objTweet = new Tweet();
                objTweet.usermessage = objModel.message;
                objTweet.created     = DateTime.Now;
                objTweet.Useridd     = User.Identity.Name;


                var tRep = new TweetRepository();
                tRep.AddTweet(objTweet);

                ViewBag.msg = "Tweeted!!";
            }
            return(View(objModel));
        }
Ejemplo n.º 9
0
        public static TweetsViewModel Create(TwitterSearchResponse response)
        {
            var viewModel = new TweetsViewModel();

            foreach (var status in response.statuses)
            {
                var tweet = new TweetViewModel
                {
                    User = $"@{status.user.screen_name}",
                    Text = status.text,
                    //ImageUrl = status.user.entities.url.urls.FirstOrDefault() == null ? string.Empty : status.user.entities.url.urls.FirstOrDefault().expanded_url
                };
                viewModel.Tweets.Add(tweet);
            }

            return(viewModel);
        }
Ejemplo n.º 10
0
        public ActionResult EditTweet(TweetsViewModel objTweetModel)
        {
            if (ModelState.IsValid)
            {
                var objTweet = new Tweet();
                objTweet.usermessage = objTweetModel.message;
                objTweet.created     = DateTime.Now;
                objTweet.Useridd     = User.Identity.Name;
                objTweet.tweet_id    = objTweetModel.tweet_id;

                var tRep = new TweetRepository();
                tRep.EditTweet(objTweet);
                ViewBag.msg = "Editted Successfully";
            }
            else
            {
                ViewBag.msg = "Error";
            }
            return(View(objTweetModel));
        }
Ejemplo n.º 11
0
 private async void SetUpCredentials()
 {
     viewModel = new TweetsViewModel();
     await viewModel.Initialise();
 }
 /// <summary>
 /// Provides a deterministic way to delete the Tweets property.
 /// </summary>
 public static void ClearTweets()
 {
     _tweets.Cleanup();
     _tweets = null;
 }
Ejemplo n.º 13
0
        public async Task <IActionResult> GetTweets()
        {
            string   original_start_date      = "2016-01-01T00:00:00.001Z";
            DateTime original_start           = DateTime.Parse(original_start_date);
            var      sanitized_time           = original_start.ToLocalTime();
            DateTime startDateUnspecifiedKind = sanitized_time.ToUniversalTime();

            DateTime startDate = DateTime.Parse(original_start_date);
            string   endDate   = "2017-12-31T23%3A59%3A59.001Z";

            TweetsViewModel tweets = new TweetsViewModel();

            // Performance testing between using Hashtable vs. LINQ query
            // Stopwatch sw = new Stopwatch();
            // sw.Start();

            // Disposes of httpclient when request is completed
            using (HttpClient request = new HttpClient()) {
                request.BaseAddress = new Uri("https://badapi.iqvia.io/api/v1/Tweets");
                request.DefaultRequestHeaders.Accept.Clear();

                bool         lessThan100  = false;
                List <Tweet> listOfTweets = new List <Tweet>();
                while (!lessThan100)
                {
                    using (HttpResponseMessage response = await request.GetAsync("?startDate=" + startDate + "&endDate=" + endDate))
                    {
                        if (response.IsSuccessStatusCode)
                        {
                            string tweetList = await response.Content.ReadAsStringAsync();

                            listOfTweets = JsonConvert.DeserializeObject <List <Tweet> >(tweetList);

                            foreach (Tweet twt in listOfTweets)
                            {
                                if (!tweets.tweetIDs.Contains(twt.id) && twt.stamp.Year >= startDateUnspecifiedKind.Year)
                                {
                                    // adds ID to hash table
                                    tweets.tweetIDs.Add(twt.id, 1);
                                    // adds tweet object to list
                                    tweets.tweetList.Add(twt);
                                    tweets.tweet_count++;
                                }
                                else if (tweets.tweetIDs.Contains(twt.id))
                                {
                                    // duplicate detected
                                    tweets.duplicate_count++;
                                }
                            }

                            // # Method 2 - adding all, then use LINQ
                            // tweets.tweetList.AddRange(listOfTweets);

                            // Get the maximum time stamp in the list of tweets, update the time stamp
                            startDate = listOfTweets.Max(t => t.stamp);

                            lessThan100 = listOfTweets.Count() < 100;
                        }
                        else // bad response
                        {
                            lessThan100 = true;
                        }
                    }
                }

                // # Method 2 - with LINQ
                //tweets.tweetList = (from tweet in tweets.tweetList
                //                    where tweet.stamp >= startDateUnspecifiedKind
                //                    select tweet).ToList();
            }
            // TESTING PURPOSES
            //sw.Stop();
            //var time_elapsed = sw.Elapsed;
            return(View(tweets));
        }
Ejemplo n.º 14
0
        public App()
        {
            var viewModel = new TweetsViewModel();

            MainPage = new NavigationPage(new TweetsListView(viewModel));
        }
Ejemplo n.º 15
0
 /// <summary>
 /// Provides a deterministic way to create the Tweets property.
 /// </summary>
 public static void CreateTweets()
 {
     if (_tweets == null)
     {
         _tweets = new TweetsViewModel();
     }
 }
Ejemplo n.º 16
0
 /// <summary>
 /// Provides a deterministic way to delete the Tweets property.
 /// </summary>
 public static void ClearTweets()
 {
     _tweets.Cleanup();
     _tweets = null;
 }
Ejemplo n.º 17
0
 public Tweets()
 {
     this.InitializeComponent();
     ViewModel = new TweetsViewModel();
     ViewModel.setPivotItems();
 }
Ejemplo n.º 18
0
 public MasterViewController(IntPtr handle)
     : base(handle)
 {
     _viewModel = new TweetsViewModel();
 }