BlogEngine.Core.Providers.XmlMembershipProvider.ReadMembershipDataStore C# (CSharp) Method

ReadMembershipDataStore() private method

Builds the internal cache of users.
private ReadMembershipDataStore ( ) : void
return void
        private void ReadMembershipDataStore()
        {
            lock (this)
            {
                if (this.users == null)
                {
                    this.users = new Dictionary<Guid, Dictionary<string, MembershipUser>>();
                }

                if (!this.users.ContainsKey(Blog.CurrentInstance.Id))
                {
                    this.users[Blog.CurrentInstance.Id] = new Dictionary<string, MembershipUser>(16, StringComparer.OrdinalIgnoreCase);
                    var doc = new XmlDocument();
                    doc.Load(XmlFullyQualifiedPath);
                    var nodes = doc.GetElementsByTagName("User");

                    foreach (var user in
                        nodes.Cast<XmlNode>().Select(
                            node => new MembershipUser(
                                        this.Name,
                                        // Provider name
                                        node["UserName"].InnerText,
                                        // Username
                                        node["UserName"].InnerText,
                                        // providerUserKey
                                        node["Email"].InnerText,
                                        // Email
                                        string.Empty,
                                        // passwordQuestion
                                        node["Password"].InnerText,
                                        // Comment
                                        true,
                                        // approved
                                        false,
                                        // isLockedOut
                                        DateTime.Now,
                                        // creationDate
                                        DateTime.Parse(node["LastLoginTime"].InnerText, CultureInfo.InvariantCulture),
                                        // lastLoginDate
                                        DateTime.Now,
                                        // lastActivityDate
                                        DateTime.Now,
                                        // lastPasswordChangedDate
                                        new DateTime(1980, 1, 1))))
                    {
                        this.users[Blog.CurrentInstance.Id].Add(user.UserName, user);
                    }
                }
            }
        }