private void ProceedFriendShip(IEnumerable <FriendshipXmlModel> friendships)
        {
            var addedFriendships = 0;
            var addedUsers       = dbContext.UserProfiles.Select(u => u.UserName).ToList();

            foreach (var fr in friendships)
            {
                var firstUser  = GetUser(dbContext, fr.FirstUser, addedUsers);
                var secondUser = GetUser(dbContext, fr.SecondUser, addedUsers);

                var friendship = new Friednship()
                {
                    FirstUser     = firstUser,
                    SecondUser    = secondUser,
                    ApprovingDate = fr.FriendsSince,
                    IsApproved    = fr.Approved
                };

                foreach (var message in fr.Messages)
                {
                    friendship.Messages.Add(new Message()
                    {
                        Author      = message.Author == firstUser.UserName ? firstUser : secondUser,
                        Content     = message.Content,
                        SendingDate = message.SentOn,
                        SeeingDate  = message.SentOn
                    });
                }

                dbContext.Friendships.Add(friendship);
                addedFriendships++;

                if (addedFriendships % 10 == 0)
                {
                    Console.Write('.');
                }

                if (addedFriendships % 100 == 0)
                {
                    Console.WriteLine($"Added {addedFriendships} friendships.");
                    dbContext.SaveChanges();
                    dbContext = new SocialNetworkDBContext();
                }
            }
        }
Exemple #2
0
        public async Task <IActionResult> Unfollow(string shouldUnfollowUser)
        {
            var userFound = await _userManager.FindByNameAsync(shouldUnfollowUser);

            if (userFound == null)
            {
                return(NotFound());
            }
            try
            {
                _socialNetworkDBContext.UserUser.Remove(new UserUser()
                {
                    Ppkfkfollowed = _userManager.GetUserId(User), Ppkfkfollower = userFound.Id
                });
                _socialNetworkDBContext.SaveChanges();
            }
            catch (Exception ex)
            {
                throw ex;
            }

            return(RedirectToAction(nameof(Index), new { Username = shouldUnfollowUser }));
        }