public void ThrowArgumentException_WhenInvokedWithInvalidEmptyTweetIdParameter()
        {
            //Arrange
            var unitOfWorkMock      = new Mock <IUnitOfWork>();
            var mappingProviderMock = new Mock <IMappingProvider>();
            var userRepositoryMock  = new Mock <IUserRepository>();
            var tweetRepositoryMock = new Mock <ITweetRepository>();

            var tweetId = "30";
            var tweet   = new Tweet()
            {
                Text = "Netflix&Chill"
            };
            var expectedResult = new TweetDto()
            {
                Text = "Netflix&Chill"
            };

            tweetRepositoryMock
            .Setup(x => x.Get(tweetId))
            .ReturnsAsync(tweet);

            mappingProviderMock
            .Setup(x => x.MapTo <TweetDto>(tweet))
            .Returns(expectedResult);

            var tweetService = new TweetService(
                unitOfWorkMock.Object,
                mappingProviderMock.Object,
                userRepositoryMock.Object,
                tweetRepositoryMock.Object);

            //Act && Assert
            Assert.ThrowsExceptionAsync <ArgumentException>(async() => await tweetService.GetTweetById(string.Empty));
        }
Exemplo n.º 2
0
        /// <summary>
        /// function return the tweets having given tag
        /// </summary>
        /// <param name="tag">The tag.</param>
        /// <returns></returns>
        public IList <TweetDto> GetTagTweet(string tag)
        {
            var hashTag = glitterDb.Tags.Where(id => id.text == tag).SingleOrDefault();


            if (hashTag != null)
            {
                hashTag.SearchCount = hashTag.SearchCount + 1;
                glitterDb.SaveChanges();

                int tagId = hashTag.id;
                //var tweets = glitterDb.Posts.Include(i => i.PostTagMaps.Where(id => id.Tag_id == tagId)).ToList();
                var      tweets = glitterDb.PostTagMaps.Where(i => i.Tag_id == tagId).Include(i => i.Post).ToList();
                TweetDto tweetDetail;
                foreach (var item in tweets)
                {
                    tweetDetail = new TweetDto();

                    tweetDetail.id            = item.Post.id;
                    tweetDetail.Body          = item.Post.Body;
                    tweetDetail.User_id       = item.Post.User_id;
                    tweetDetail.User_name     = item.Post.User.Firstname;
                    tweetDetail.Created_at    = item.Post.Created_at;
                    tweetDetail.Like_count    = item.Post.Like_count;
                    tweetDetail.dislike_count = item.Post.dislike_count;

                    tweetList.Add(tweetDetail);
                }
            }
            else
            {
                tweetList = null;
            }
            return(tweetList);
        }
Exemplo n.º 3
0
        public int SaveTweet(TweetDto tweetDto, TwitterUserDto twitterUser)
        {
            if (tweetDto == null)
            {
                return(-1);
            }

            if (tweets.All.Any(x => x.TwitterId.Equals(tweetDto.TwitterId)))
            {
                return(1);
            }

            var tweet = this.mappingProvider.MapTo <Tweet>(tweetDto);
            var user  = this.mappingProvider.MapTo <TwitterUser>(twitterUser);

            tweet.TwitterUser   = user;
            tweet.TwitterUserId = user.Id;
            tweet.RetweetCount  = 0;

            //var tweetToAdd = new Tweet
            //{
            //    TwitterId = tweet.TwitterId,
            //    Text = tweet.Text,
            //    CreatedAt = tweet.CreatedAt,
            //    TwitterUser = user,
            //    TwitterUserId = user.Id
            //};

            this.tweets.Add(tweet);

            return(this.saver.SaveChanges());
        }
Exemplo n.º 4
0
 public TweetService(TweetDto tweetDto, IMapper mapper, MemberDto memberDto, TweetRepository tweetRepository, Tweet tweet)
 {
     _tweetDto        = tweetDto;
     _mapper          = mapper;
     _memberDto       = memberDto;
     _tweetRepository = tweetRepository;
     _tweet           = tweet;
 }
Exemplo n.º 5
0
        public void ProcessTweet(TweetDto tweet)
        {
            if (tweet == null)
            {
                return;
            }

            var tweetDetails = new TweetDetails();

            var tweetMedia = tweet?.Includes?.Media;

            if (tweetMedia != null)
            {
                tweetDetails.HasPhoto = tweetMedia.Any(x => x.Type == TweetMediaTypes.Photo);
            }

            var tweetEntities = tweet?.Data?.Entities;

            if (tweetEntities != null)
            {
                if (tweetEntities?.HashTags != null)
                {
                    tweetDetails.HasHashTag = tweetEntities.HashTags.Any();
                    if (tweetDetails.HasHashTag)
                    {
                        _twitterDatabase.UpdateHashTagCount(tweetEntities.HashTags.Select(x => x.Tag));
                    }
                }

                if (tweetEntities?.Urls != null)
                {
                    var urls = tweetEntities.Urls.Where(x => x.ExpandedUri != null);
                    tweetDetails.HasUrl = tweetEntities.Urls.Any();
                    if (tweetDetails.HasUrl)
                    {
                        _twitterDatabase.UpdateUrlCount(urls.Select(x => x.ExpandedUri));
                    }
                }
            }

            var tweetText = tweet?.Data?.Text;

            if (!string.IsNullOrEmpty(tweetText))
            {
                var emojis = _emojiService.GetEmojisFromText(tweetText);
                tweetDetails.HasEmoji = emojis.Any();
                if (tweetDetails.HasEmoji)
                {
                    _twitterDatabase.UpdateEmojiCount(emojis);
                }
            }

            _twitterDatabase.AddTweetAnalytics(tweetDetails);

#if DEBUG
            Console.WriteLine(tweet?.Data?.Text);
#endif
        }
Exemplo n.º 6
0
 // PUT: api/Tweet/5
 public bool Put(TweetDto updatedTweet)
 {
     if (Session.Session.Validate(updatedTweet.SessionId))
     {
         TweetBll tweetBll = new TweetBll();
         return(tweetBll.UpdateTweet(updatedTweet));
     }
     return(false);
 }
Exemplo n.º 7
0
        public void EditTweet(TweetDto updateTweet)
        {
            int postId = updateTweet.id;
            var post   = glitterDb.Posts.Where(id => id.id == postId).Single();

            post.Body       = updateTweet.Body;
            post.Created_at = DateTime.Now;
            glitterDb.SaveChanges();
        }
Exemplo n.º 8
0
        private async Task <List <UserDto> > Identifypersons(List <DetectedPersonDto> facePersonDtoList)
        {
            List <string> faceids = new List <string>();

            foreach (var item in facePersonDtoList)
            {
                faceids.Add(item.faceId);
            }

            var resultListDetectedUsers = await _cognitiveFaceProvider.identifyPersons(faceids);

            if (resultListDetectedUsers.First().candidates.Count() == 0)
            {
                throw new CollectionException("No person detected");
            }


            List <UserDto> users = new List <UserDto>();

            foreach (var item in resultListDetectedUsers)
            {
                TweetDto noTweetFound = new TweetDto("No tweets found");
                UserDto  userDto      = _mapper.Map <UserDto>(_userDocumentDBprovider.getUserbyId((item.candidates.First().personId)));
                userDto.faceRectangle = item.faceRectangle;
                List <TweetDto> tweets = new List <TweetDto>();
                if (userDto.Twittername != null)
                {
                    List <string> tweetTemps = new List <string>();
                    tweetTemps = _socialMediaProvider.GetMessages(userDto.Twittername);

                    foreach (var t in tweetTemps)
                    {
                        TweetDto tweet = new TweetDto(t);
                        tweets.Add(tweet);
                    }

                    if (tweets.Count == 0)
                    {
                        tweets.Add(noTweetFound);
                    }
                }
                else
                {
                    tweets.Add(noTweetFound);
                }


                userDto.tweets = tweets;
                users.Add(userDto);
            }

            return(users);
        }
Exemplo n.º 9
0
 // POST: api/Tweet
 public bool Post(TweetDto tweetDtoObject)
 {
     if (ModelState.IsValid)
     {
         if (Session.Session.Validate(tweetDtoObject.SessionId))
         {
             TweetBll tweetBll = new TweetBll();
             return(tweetBll.AddTweet(tweetDtoObject));
         }
     }
     return(false);
 }
Exemplo n.º 10
0
        public static TweetDto ToTweetDto(this Status status)
        {
            var dto = new TweetDto()
            {
                Id         = status.StatusID,
                ScreenName = status.User.ScreenNameResponse,
                Text       = status.Text,
                CreatedAt  = status.CreatedAt
            };

            return(dto);
        }
Exemplo n.º 11
0
        public void Save(TweetDto dto)
        {
            if (dto == null)
            {
                throw new ArgumentNullException("Tweet cannot be null!");
            }

            var model = this.mapper.MapTo <Tweet>(dto);

            this.unitOfWork.Tweets.Add(model);
            this.unitOfWork.SaveChanges();
        }
Exemplo n.º 12
0
        public TweetDto MostLiked()
        {
            var      tweet       = glitterDb.Posts.OrderByDescending(i => i.Like_count).ToList();
            TweetDto tweetDetail = new TweetDto();

            tweetDetail.id            = tweet[0].id;
            tweetDetail.Body          = tweet[0].Body;
            tweetDetail.Like_count    = tweet[0].Like_count;
            tweetDetail.User_id       = tweet[0].User_id;
            tweetDetail.dislike_count = tweet[0].dislike_count;
            tweetDetail.Created_at    = tweet[0].Created_at;
            return(tweetDetail);
        }
Exemplo n.º 13
0
        public static TweetModel ToTweetModel(this TweetDto dto)
        {
            var model = new TweetModel()
            {
                Id         = dto.Id,
                ScreenName = dto.ScreenName,
                Text       = dto.Text,
                Selected   = false,
                CreatedAt  = dto.CreatedAt
            };

            return(model);
        }
Exemplo n.º 14
0
        public void AddTweets(TweetDto tweetDto)
        {
            _dbContext.Tweets.Add(new Tweet
            {
                UserId       = tweetDto.UserId,
                TweetText    = tweetDto.TweetText,
                LikeCount    = tweetDto.LikeCount,
                CommentCount = tweetDto.CommentCount,
                RetweetCount = tweetDto.RetweetCount
            });

            _dbContext.SaveChanges();
        }
Exemplo n.º 15
0
        public IActionResult PostNewTweetForAjax(TweetDto tweetDto)
        {
            var tweet = new Tweet
            {
                UserId       = tweetDto.UserId,
                TweetText    = tweetDto.TweetText,
                LikeCount    = 0,
                RetweetCount = 0,
                CommentCount = 0
            };

            _tweetServices.AddTweets(tweetDto);

            return(Json(ModelState.IsValid));
        }
Exemplo n.º 16
0
        public int AddTweet(TweetDto newTweet)
        {
            Post tweet = new Post();

            tweet.Body          = newTweet.Body;
            tweet.User_id       = newTweet.User_id;
            tweet.Like_count    = 0;
            tweet.dislike_count = 0;
            tweet.Created_at    = DateTime.Now;
            glitterDb.Posts.Add(tweet);
            glitterDb.SaveChanges();
            // var postId = glitterDb.Posts.Where(i => i.Created_at == tweet.Created_at).First().id;
            var postId = glitterDb.Posts.OrderByDescending(x => x.id).First().id;

            return(postId);
        }
Exemplo n.º 17
0
        public IActionResult Tweet([FromBody] TweetDto tweetDto)
        {
            // map dto to entity
            var tweet = _mapper.Map <Tweet>(tweetDto);

            try
            {
                // save
                _tweetsService.Tweet(tweet);
                return(Ok());
            }
            catch (AppException ex)
            {
                // return error message if there was an exception
                return(BadRequest(new { message = ex.Message }));
            }
        }
Exemplo n.º 18
0
        public bool AddTweet(TweetDto newTweet)
        {
            operationOnTweet = new TweetOperation();
            operationOnTag   = new HashTags();
            int tweetId;

            newTweet.Body = newTweet.Body.Trim();
            if (string.IsNullOrEmpty(newTweet.Body))
            {
                return(false);
            }
            tweetId = operationOnTweet.AddTweet(newTweet);

            tagList = SplitTweet(newTweet.Body);
            tagId   = operationOnTag.AddHashTag(tagList);
            TweetTagMap(tweetId, tagId);
            return(true);
        }
Exemplo n.º 19
0
        public void Invokes_SaveChanges_When_Tweet_Is_Created()
        {
            //Arrange
            var unitOfWorkMock            = new Mock <IUnitOfWork>();
            var mapperMock                = new Mock <IMappingProvider>();
            var twitterApiCallServiceMock = new Mock <ITwitterApiCallService>();
            var tweetTagServiceMock       = new Mock <ITweetTagService>();
            var tagServiceMock            = new Mock <ITagService>();
            var dateTimeParserMock        = new Mock <IDateTimeParser>();
            var repoMock = new Mock <IGenericRepository <Tweet> >();

            var tweetDto = new TweetDto
            {
                TweetId = "1",
                Text    = "Tweet text",
                OriginalTweetCreatedOn = DateTime.Now,
            };

            var tweet = new Tweet
            {
                TweetId = tweetDto.TweetId,
                Text    = tweetDto.Text,
                OriginalTweetCreatedOn = tweetDto.OriginalTweetCreatedOn,
                FolloweeId             = "1"
            };

            var tweetCollection = new List <Tweet> {
                tweet
            };

            repoMock.Setup(r => r.AllAndDeleted).Returns(tweetCollection.AsQueryable());
            unitOfWorkMock.Setup(u => u.Tweets).Returns(repoMock.Object);
            unitOfWorkMock.Setup(u => u.Tweets.Add(It.IsAny <Tweet>())).Verifiable();

            var sut = new TweetService(mapperMock.Object, unitOfWorkMock.Object,
                                       twitterApiCallServiceMock.Object, tweetTagServiceMock.Object,
                                       tagServiceMock.Object, dateTimeParserMock.Object);

            //Act
            sut.Save(tweetDto);

            //Assert
            unitOfWorkMock.Verify(v => v.SaveChanges(), Times.Once);
        }
Exemplo n.º 20
0
 public bool UpdateTweet(TweetDto newTweet)
 {
     operationOnTweet = new TweetOperation();
     operationOnTag   = new HashTags();
     mapper           = new PostTagMapOperation();
     newTweet.Body    = newTweet.Body.Trim();
     tagList          = SplitTweet(newTweet.Body);
     if (string.IsNullOrEmpty(newTweet.Body))
     {
         return(false);
     }
     tagId = mapper.RetrieveTagId(newTweet.id);
     mapper.Remove(newTweet.id);
     operationOnTag.RemoveHashtag(tagId);
     tagId = operationOnTag.AddHashTag(tagList);
     operationOnTweet.EditTweet(newTweet);
     TweetTagMap(newTweet.id, tagId);
     return(true);
 }
Exemplo n.º 21
0
        public IActionResult CreateTweet([FromBody] TweetDto dto)
        {
            if (!User.Identity.IsAuthenticated)
            {
                return(BadRequest("Unauthenticated user"));
            }

            var tweet = new Tweet
            {
                Content  = dto.Content,
                DateTime = DateTime.Now,
                AuthorId = _userManager.GetUserId(User)
            };

            _context.Add(tweet);
            _context.SaveChanges();

            return(Ok(UpdateTweetFeed()));
        }
Exemplo n.º 22
0
        public ActionResult GetTweet()
        {
            var myID = SessionSet <User> .Get("Login").ID;

            List <TweetDto> list = new List <TweetDto>();

            list.Clear();
            var             myTweets = _db.Tweets.Where(k => k.UserID == myID).ToList();
            List <TweetDto> myList   = new List <TweetDto>();

            foreach (var item in myTweets)
            {
                var      user = _db.Users.Where(k => k.ID == item.UserID).First();
                TweetDto yeni = new TweetDto()
                {
                    ID          = item.ID,
                    UserID      = item.UserID,
                    CreatedDate = item.CreatedDate,
                    TweetBody   = item.TweetBody,
                    UserName    = user.UserName
                };
                myList.Add(yeni);
            }
            var fList = (from u in _br.Query <FriendShip>()
                         join t in _br.Query <Tweet>()
                         on u.FriendID equals t.UserID
                         where u.UserID == myID
                         select new TweetDto()
            {
                ID = t.ID,
                UserID = t.UserID,
                TweetBody = t.TweetBody,
                UserName = u.Friend.UserName,
                CreatedDate = t.CreatedDate
            }).Distinct().ToList();
            var concatList = fList.Concat(myList);

            list = concatList.OrderByDescending(k => k.CreatedDate).ToList();

            return(View(list));
        }
Exemplo n.º 23
0
        public ActionResult FriendProfile(int id)
        {
            var             friendTweet = _db.Tweets.Where(k => k.UserID == id).ToList();
            List <TweetDto> fList       = new List <TweetDto>();

            foreach (var item in friendTweet)
            {
                var      user = _db.Users.Where(k => k.ID == item.UserID).First();
                TweetDto yeni = new TweetDto()
                {
                    ID          = item.ID,
                    UserID      = item.UserID,
                    CreatedDate = item.CreatedDate,
                    TweetBody   = item.TweetBody,
                    UserName    = user.UserName
                };
                fList.Add(yeni);
            }
            Session["TweetUserId"] = id;
            return(View(fList.OrderByDescending(k => k.CreatedDate).ToList()));
        }
Exemplo n.º 24
0
        /// <summary>
        /// Gets all tweets of user and his/her followee.
        /// </summary>
        /// <param name="uId">The u identifier.</param>
        /// <returns></returns>
        public IList <TweetDto> GetAllTweets(int uId)
        {
            var followeeList = (from i in glitterDb.Connections where i.Follower_id == uId select i.Followee_id).ToList();

            followeeList.Add(uId);
            TweetDto tweetDetail;

            foreach (var personId in followeeList)
            {
                var result     = glitterDb.Posts.Where(i => i.User_id == personId).ToList();
                var personName = (from i in glitterDb.Users where i.id == personId select i.Firstname).ToString();
                var person     = glitterDb.Users.Where(i => i.id == personId).SingleOrDefault();
                personName = person.Firstname + person.Lastname;
                foreach (var item in result)
                {
                    tweetDetail = new TweetDto();

                    tweetDetail.id            = item.id;
                    tweetDetail.Body          = item.Body;
                    tweetDetail.User_id       = item.User_id;
                    tweetDetail.User_name     = personName;
                    tweetDetail.Created_at    = item.Created_at;
                    tweetDetail.Like_count    = item.Like_count;
                    tweetDetail.dislike_count = item.dislike_count;
                    //var react = (from post in glitterDb.PostReactions where post.id == item.id && post.user_id == uId select post.Reaction).SingleOrDefault();
                    var x = glitterDb.PostReactions.Where(i => i.Post_id == item.id && i.user_id == uId).SingleOrDefault();
                    if (x != null)
                    {
                        tweetDetail.reaction = x.Reaction;
                    }
                    else
                    {
                        tweetDetail.reaction = null;
                    }
                    tweetList.Add(tweetDetail);
                }
            }
            return(tweetList);
        }
Exemplo n.º 25
0
        public async Task ReturnTweetDtoObject_WhenInvokedWithValidParameters()
        {
            //Arrange
            var unitOfWorkMock      = new Mock <IUnitOfWork>();
            var mappingProviderMock = new Mock <IMappingProvider>();
            var userRepositoryMock  = new Mock <IUserRepository>();
            var tweetRepositoryMock = new Mock <ITweetRepository>();

            var tweetId = "30";
            var tweet   = new Tweet()
            {
                Text = "Netflix&Chill"
            };
            var expectedResult = new TweetDto()
            {
                Text = "Netflix&Chill"
            };

            tweetRepositoryMock
            .Setup(x => x.Get(tweetId))
            .ReturnsAsync(tweet);

            mappingProviderMock
            .Setup(x => x.MapTo <TweetDto>(tweet))
            .Returns(expectedResult);

            var tweetService = new TweetService(
                unitOfWorkMock.Object,
                mappingProviderMock.Object,
                userRepositoryMock.Object,
                tweetRepositoryMock.Object);

            //Act
            var actualResult = await tweetService.GetTweetById(tweetId);

            //Assert
            Assert.IsNotNull(actualResult);
            Assert.AreEqual(actualResult.Text, expectedResult.Text);
        }
Exemplo n.º 26
0
        public ActionResult MyProfile()
        {
            var myID = SessionSet <User> .Get("Login").ID;

            var             myTweets = _db.Tweets.Where(k => k.UserID == myID).ToList();
            List <TweetDto> myList   = new List <TweetDto>();

            foreach (var item in myTweets)
            {
                var      user = _db.Users.Where(k => k.ID == item.UserID).First();
                TweetDto yeni = new TweetDto()
                {
                    ID          = item.ID,
                    UserID      = item.UserID,
                    CreatedDate = item.CreatedDate,
                    TweetBody   = item.TweetBody,
                    UserName    = user.UserName
                };
                myList.Add(yeni);
            }
            return(View(myList.OrderByDescending(k => k.CreatedDate).ToList()));
        }
Exemplo n.º 27
0
 private void OnTweet(object sender, TweetDto tweet)
 {
     _twitterService.ProcessTweet(tweet);
 }
Exemplo n.º 28
0
 public TweetModel(TweetDto dto)
 {
     Date = dto.Date;
     Text = dto.Text;
     Name = dto.Name;
 }