Exemple #1
0
 public void Add(ChatUserIdentity identity)
 {
     _identities.Add(identity);
     if (identity.UserKeyNavigation != null)
     {
         //identity.User.Identities.Add(identity);
     }
 }
Exemple #2
0
 public void Add(ChatUserIdentity identity)
 {
     _identities.Add(identity);
     if (identity.User != null)
     {
         identity.User.Identities.Add(identity);
     }
 }
        public ChatUser GetUserByIdentity(string providerName, string userIdentity)
        {
            ChatUserIdentity identity = getIdentityByIdentity(_db, providerName, userIdentity);

            if (identity != null)
            {
                return(identity.User);
            }
            return(null);
        }
        public static ChatUser GetUser(this IRepository <ChatUserIdentity> repository, ClaimsPrincipal principal)
        {
            string identity     = principal.GetClaimValue(ClaimTypes.NameIdentifier);
            string providerName = principal.GetIdentityProvider();


            ChatUserIdentity chatUserIdentity = repository.Table.FirstOrDefault(u => u.Identity == identity && u.ProviderName == providerName);

            if (chatUserIdentity != null)
            {
                return(chatUserIdentity.User);
            }
            return(null);
        }
Exemple #5
0
        private ChatUser AddUser(string userName, string providerName, string identity, string email)
        {
            if (!IsValidUserName(userName))
            {
                throw new InvalidOperationException(String.Format("'{0}' is not a valid user name.", userName));
            }

            EnsureProviderAndIdentityAvailable(providerName, identity);

            // This method is used in the auth workflow. If the username is taken it will add a number
            // to the user name.
            if (UserExists(userName))
            {
                var usersWithNameLikeMine = _repository.Users.Count(u => u.Name.StartsWith(userName));
                userName += usersWithNameLikeMine;
            }

            var user = new ChatUser
            {
                Name         = userName,
                Status       = (int)UserStatus.Active,
                Hash         = email.ToMD5(),
                Id           = Guid.NewGuid().ToString("d"),
                LastActivity = DateTime.UtcNow,
                IsAdmin      = IsFirstUser()
            };

            var chatUserIdentity = new ChatUserIdentity
            {
                User         = user,
                Email        = email,
                Identity     = identity,
                ProviderName = providerName
            };

            _repository.Add(user);
            _repository.Add(chatUserIdentity);
            _repository.CommitChanges();

            return(user);
        }
Exemple #6
0
 public void Remove(ChatUserIdentity identity)
 {
     _identities.Remove(identity);
 }
 public void Remove(ChatUserIdentity identity)
 {
     _db.Identities.Remove(identity);
     _db.SaveChanges();
 }
 public void Add(ChatUserIdentity identity)
 {
     _db.Identities.Add(identity);
     _db.SaveChanges();
 }
Exemple #9
0
        private bool ProviderAndIdentityExist(string providerName, string identity)
        {
            ChatUserIdentity chatUserIdentity = _chatUserIdentityRepository.Table.FirstOrDefault(u => u.Identity == identity && u.ProviderName == providerName);

            return(chatUserIdentity != null);
        }