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)); }
/// <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); }
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()); }
public TweetService(TweetDto tweetDto, IMapper mapper, MemberDto memberDto, TweetRepository tweetRepository, Tweet tweet) { _tweetDto = tweetDto; _mapper = mapper; _memberDto = memberDto; _tweetRepository = tweetRepository; _tweet = tweet; }
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 }
// 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); }
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(); }
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); }
// 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); }
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); }
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(); }
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); }
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); }
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(); }
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)); }
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); }
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 })); } }
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); }
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); }
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); }
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())); }
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)); }
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())); }
/// <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); }
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); }
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())); }
private void OnTweet(object sender, TweetDto tweet) { _twitterService.ProcessTweet(tweet); }
public TweetModel(TweetDto dto) { Date = dto.Date; Text = dto.Text; Name = dto.Name; }