Ejemplo n.º 1
0
        // TODO: Properties are mapping in reverse
        // Data models for userFollowers table should change.
        public async Task Follow(string senderId, string reciverId)
        {
            var entity = this.followerRepository
                         .AllWithDeleted()
                         .FirstOrDefault(x => x.RevicerId == reciverId && x.SenderId == senderId);

            var sender  = this.userService.GetUserId(senderId);
            var revicer = this.userService.GetUserId(reciverId);

            if (entity == null || !entity.IsDeleted)
            {
                var insertEntity = new UserFollowers()
                {
                    Sender      = sender,
                    Revicer     = revicer,
                    IsFollowing = true,
                };
                await this.followerRepository.AddAsync(insertEntity);
            }
            else
            {
                entity.IsFollowing = true;
                this.followerRepository.Undelete(entity);
            }

            await this.notificationsService.AddNotificationAsync(sender, revicer, NotificationType.Follow);

            await this.followerRepository.SaveChangesAsync();
        }
Ejemplo n.º 2
0
        public JsonResult FollowUser(UserFollowers ufTable)
        {
            ufTable.TimeStamp = DateTime.Now;
            var userId = User.Identity.GetUserId();
            var result = _userService.FollowUser(ufTable, userId);

            return(Json(result));
        }
Ejemplo n.º 3
0
 public void UpdateInfo(TwitterUser user)
 {
     UserTweets          = user.StatusesCount;
     TweetCount.Text     = UserTweets.ToString();
     UserFollowing       = user.FriendsCount;
     FollowingCount.Text = UserFollowing.ToString();
     UserFollowers       = user.FollowersCount;
     FollowersCount.Text = UserFollowers.ToString();
 }
 public UserFollowers AddUser(string user)
 {
     var usr = userFollowers.FirstOrDefault(u => u.User == user);
     if (usr == null)
     {
         usr = new UserFollowers { User = user, Followers = new HashSet<string>() };
         userFollowers.Add(usr);
     }
     return usr;
 }
        public void InMemoryDBUserFollowerRepository_AddUser_AddSuccess_User()
        {
            var expectedUser = new UserFollowers {
                User = "******", Followers = new HashSet <string>()
            };

            var result = inMemoryDBUserFollower.AddUser("Alice");

            Assert.AreEqual(expectedUser, result);
        }
        public void UserFollowersService_AddUser_AddSuccess_User()
        {
            var expectedUser = new UserFollowers {
                User = "******", Followers = new HashSet <string>()
            };

            var result = userFollowersService.AddUser("Javier");

            Assert.AreEqual(expectedUser, result);
        }
        public void InMemoryDBUserFollowerRepository_GetUser_ExistUser_User()
        {
            inMemoryDBUserFollower.AddUser("Alice");

            var expected = new UserFollowers {
                User = "******", Followers = new HashSet <string>()
            };

            var result = inMemoryDBUserFollower.GetUser("Alice");

            Assert.AreEqual(expected, result);
        }
        public void UserFollowersService_FollowUser_ExistUser_User()
        {
            var expected = new UserFollowers {
                User = "******", Followers = new HashSet <string> {
                    "Bob"
                }
            };

            var result = userFollowersService.FollowUser("Alice", "Bob");

            Assert.AreEqual(expected, result);
        }
Ejemplo n.º 9
0
        public BaseResponse FollowUser(UserFollowers ufTable, string userId)
        {
            var result = new BaseResponse();

            try
            {
                var internalUserId = _context.UserTable.Where(x => x.AspNetUserId == userId).Single().Id;
                ufTable.FollowingUserId = internalUserId;
                _context.UserFollowerTable.Add(ufTable);
                _context.SaveChanges();
                result.Message = "Now you follow this user";
                result.Success = true;
            }
            catch (Exception ex)
            {
                result.Success = false;
                result.Message = ex.Message;
            }
            return(result);
        }
Ejemplo n.º 10
0
        public static string ImportFollowers(InstagraphContext context, string jsonString)
        {
            var deserializedFollowers = JsonConvert.DeserializeObject <FollowerDto[]>(jsonString);

            var sb = new StringBuilder();

            var followers = new List <UserFollowers>();

            foreach (var dto in deserializedFollowers)
            {
                int?userId     = context.Users.FirstOrDefault(u => u.Username == dto.User)?.Id;
                int?followerId = context.Users.FirstOrDefault(u => u.Username == dto.Follower)?.Id;

                if (userId == null || followerId == null)
                {
                    sb.AppendLine(errorMsg);
                    continue;
                }

                bool allreadyFollowing = followers.Any(f => f.UserId == userId &&
                                                       f.FollowerId == followerId);

                if (allreadyFollowing)
                {
                    sb.AppendLine(errorMsg);
                    continue;
                }
                var userFollower = new UserFollowers()
                {
                    UserId     = userId.Value,
                    FollowerId = followerId.Value
                };

                followers.Add(userFollower);
                sb.AppendLine(String.Format(succsessMSg, $"Follower {dto.Follower} to User {dto.User}"));
            }

            context.UsersFollowers.AddRange(followers);
            context.SaveChanges();
            return(sb.ToString().Trim());
        }
Ejemplo n.º 11
0
        public List <UserFollowers> GetUserFollowers(UserFollowersID Id)
        {
            List <UserFollowers> results = new List <UserFollowers>();

            dataProvider.ExecuteCmd(
                (Id.GetShortList)? "Users_FollowersTop5" : "Users_Followers",
                inputParamMapper: param =>
            {
                param.AddWithValue("@Id", Id.Id);
            },
                singleRecordMapper: (reader, resultSetNumber) =>
            {
                UserFollowers model = new UserFollowers();
                model.Followers     = (int)reader["Followers"];
                model.ReceiverId    = (int)reader["ReceiverId"];
                model.AvatarUrl     = (string)reader["AvatarUrl"];
                model.FirstName     = (string)reader["FirstName"];
                model.LastName      = (string)reader["LastName"];
                model.Type          = (string)reader["Type"];
                results.Add(model);
            });
            return(results);
        }