Esempio n. 1
0
 /// <summary>
 /// Clears all global aliases
 /// </summary>
 public void Clear()
 {
     lock (_lock)
     {
         UserAliases.Clear();
     }
 }
Esempio n. 2
0
 /// <summary>
 /// Sets a global alias
 /// </summary>
 public void Set(GlobalAlias alias)
 {
     lock (_lock)
     {
         UserAliases.SetOrAdd(alias.Keyword, alias.Value);
         UserAliasesChanged?.Invoke(this, EventArgs.Empty);
     }
 }
Esempio n. 3
0
 /// <summary>
 /// Returns true if either a global or local alias is known by the given keyword
 /// </summary>
 public bool IsKnown(string keyword, string contextID)
 {
     lock (_lock)
     {
         keyword = keyword.ToUpperInvariant().Trim();
         return(UserAliases.ContainsKey(keyword) || LocalAliases.ContainsKey(contextID + "_" + keyword));
     }
 }
Esempio n. 4
0
 /// <summary>
 /// Returns true if a global alias is known by the given keyword
 /// </summary>
 public bool IsKnown(string keyword)
 {
     lock (_lock)
     {
         keyword = keyword.ToUpperInvariant().Trim();
         return(UserAliases.ContainsKey(keyword));
     }
 }
Esempio n. 5
0
 /// <summary>
 /// Removes a global alias by keyword
 /// </summary>
 public void Remove(string keyword)
 {
     keyword = keyword.ToUpperInvariant().Trim();
     lock (_lock)
     {
         UserAliases.Remove(keyword);
         UserAliasesChanged?.Invoke(this, EventArgs.Empty);
     }
 }
Esempio n. 6
0
 /// <summary>
 /// Populates global aliases from a list
 /// </summary>
 public void Populate(IEnumerable <GlobalAlias> globalAliases)
 {
     lock (_lock)
     {
         UserAliases.Clear();
         foreach (var alias in globalAliases)
         {
             Set(alias);
         }
         UserAliasesChanged?.Invoke(this, EventArgs.Empty);
     }
 }
Esempio n. 7
0
        private void GetUserAliases()
        {
            if (_userAliasesHandled) return;
            _userAliasesHandled = true;

            var userAliasList = _aliasService.UserAliases.ToArray().Select(kvp => new GlobalAlias(kvp.Key, kvp.Value)).ToList();
            DispatcherHelper.UIDispatcher.InvokeSafe(() =>
            {
                UserAliases.Clear();
                userAliasList.ForEach(UserAliases.Add);
            });

            _userAliasesHandled = false;
        }
        public IEnumerable <string> GetAliases(string id)
        {
            using (PoolItem <DirectoryService> connection = this.directoryServicePool.Take(NullValueHandling.Ignore))
            {
                UserAliasListRequest request = new UserAliasListRequest(connection.Item, id);

                UserAliases result = request.ExecuteWithRetryOnBackoff();

                if (result.AliasesValue == null)
                {
                    return(new List <string>());
                }

                return(result.AliasesValue.Select(t => t.AliasValue));
            }
        }
Esempio n. 9
0
        /// <summary>
        /// Adds an Alias to the User
        /// </summary>
        /// <param name="UserID">ulong UserID of the SocketUser we're saving information for</param>
        /// <param name="Alias">The Alias the User wants to add and keep track of</param>
        /// <returns></returns>
        public AddSuccess AddAlias(ulong UserID, string Alias)
        {
            Aliases tempAliases     = _aliases;
            var     SuccessLevel    = AddSuccess.Unknown;
            bool    SuccessfulWrite = false;

            //See if the user has Saved any Aliases previously
            if (UserAliases.ContainsKey(UserID))
            {
                //If they have make sure they aren't trying to save the same alias again
                if (!UserAliases[UserID].Contains(Alias, StringComparer.InvariantCultureIgnoreCase))
                {
                    UserAliases[UserID].Add(Alias);
                    UserAliases[UserID].Sort(StringComparer.InvariantCultureIgnoreCase);
                    SuccessLevel = AddSuccess.Success;
                }
                else
                {
                    SuccessLevel = AddSuccess.AlreadyExists;
                }
            }
            else              //If this is their first Alias, get the List for them set up.
            {
                var tempList = new List <string>();
                tempList.Add(Alias);
                UserAliases[UserID] = tempList;
                SuccessLevel        = AddSuccess.Success;
            }

            //If we had to make any changes, write them to disk
            if (SuccessLevel != AddSuccess.AlreadyExists)
            {
                SuccessfulWrite = WriteToDisk();
            }
            //Make sure the write was succesful, if not tell the user as such
            if (SuccessfulWrite || SuccessLevel == AddSuccess.AlreadyExists)
            {
                return(SuccessLevel);
            }
            else
            {
                _aliases = tempAliases;
                return(AddSuccess.WriteFailure);
            }
        }