Exemple #1
0
        /// <summary>
        /// Add a user.
        /// </summary>
        /// <param name="profile"></param>
        public void AddUser(ConModels.User profile)
        {
            lock (SyncObject)
            {
                var old = AllUsers.FirstOrDefault(p => p.Id == profile.Id);
                if (old != null)
                {
                    throw new Exception("User is already in cache");
                }

                var addit = new ConModels.User() { Id = profile.Id };
                CopyProperties(addit, profile);
                AllUsers.Add(addit);
            }
        }
Exemple #2
0
 /// <summary>
 /// Rebuild the cache entirely.
 /// </summary>
 public void Refresh()
 {
     Logger.Info("User cache refreshing...");
     lock (SyncObject)
     {
         AllUsers = new List<User>();
         foreach (var us in Users.GetUsers())
         {
             var user = new ConModels.User() { Id = us.Id };
             CopyProperties(user, us);
             AllUsers.Add(user);
         }
     }
     Logger.Info("User cache refreshed.");
 }
Exemple #3
0
        /// <summary>
        /// Rebuild the cache entirely.
        /// </summary>
        public void Refresh()
        {
            List<ConModels.User> users = new List<ConModels.User>();
            var ubad = new Dictionary<string, List<ConModels.User>>();
            using (IDataReader reader = DataManager.GetDataReader("dbo.Membership_GetUsers", CommandType.StoredProcedure))
            {
                while (reader.Read())
                {
                    var profile = new ConModels.User(true);
                    profile.PersonGUID = (System.Guid)reader["UserID"];
                    profile.UserName = GetString(reader, "UserName");
                    profile.LastName = GetString(reader, "LastName");
                    profile.FirstName = GetString(reader, "FirstName");
                    profile.Organization = GetString(reader, "Organization");
                    profile.SetValue("Title", GetString(reader, "Title"));
                    profile.SetValue("PrimaryContact", GetString(reader, "PrimaryContact"));
                    profile.BusinessEmail = GetString(reader, "LoweredBusinessEmail");
                    profile.RecoveryEmail = GetString(reader, "LoweredEmail");
                    users.Add(profile);

                    var app = GetString(reader, "LoweredApplicationName");
                    List<ConModels.User> uba = null;
                    if (!ubad.TryGetValue(app, out uba))
                    {
                        uba = new List<ConModels.User>();
                        ubad.Add(app, uba);
                    }
                    uba.Add(profile);
                }
            }

            // replace cache
            lock (SyncObject)
            {
                AllUsers = users;
                UsersByApplication = ubad;
            }
        }
        public void CreateUserTest()
        {
            ContactsRepository target = container.Resolve<ContactsRepository>();
            Guid id = Guid.Parse("E4C7BDA6-0D28-4A82-8FD6-D76A212C7E3E");
            User profile = new ConModels.User()
            {
                Id = id,
                RecoveryEmail = "*****@*****.**",
                UserName = "******",
                Organization = "Testing",
                HomeEmail = "*****@*****.**"
            };
            Guid expected = id;
            Guid actual;
            actual = target.CreateUser(profile);
            Assert.AreEqual(expected, actual);

            // get by name
            var byname = target.GetUserByName("testuser");
            Assert.AreEqual("testuser", byname.UserName);
            Assert.AreEqual("*****@*****.**", byname.HomeEmail);

            // get by ID
            var byid = target.GetUserById(id);
            Assert.AreEqual("testuser", byname.UserName);
            Assert.AreEqual("*****@*****.**", byname.RecoveryEmail);

            // now delete user
            target.DeleteUser(id);
        }