Exemplo n.º 1
0
        public void InvokeUserCreate(Authentication authentication, UserSerializationInfo userInfo)
        {
            this.CremaHost.DebugMethod(authentication, this, nameof(InvokeUserCreate), userInfo.ID, userInfo.Authority, userInfo.CategoryPath);
            try
            {
                var categories = from UserCategory item in this.Context.Categories
                                 select item.Path;

                var users    = from User item in this.Context.Users select item.SerializationInfo;
                var userList = users.ToList();
                userList.Add(userInfo);

                var serializationInfo = new UserContextSerializationInfo()
                {
                    Version    = CremaSchema.VersionValue,
                    Categories = categories.ToArray(),
                    Users      = userList.ToArray(),
                };

                var xml = DataContractSerializerUtility.GetString(serializationInfo, true);

                this.Repository.Modify(this.Context.UserFilePath, xml);
            }
            catch (Exception e)
            {
                this.CremaHost.Error(e);
                this.Repository.Revert();
                throw e;
            }
        }
Exemplo n.º 2
0
        public void InvokeUserUnban(Authentication authentication, User user)
        {
            this.CremaHost.DebugMethod(authentication, this, nameof(InvokeUserUnban), user);

            try
            {
                var userInfo = user.SerializationInfo;
                userInfo.BanInfo = (BanSerializationInfo)BanInfo.Empty;

                var categories = from UserCategory item in this.Context.Categories
                                 select item.Path;

                var users = from User item in this.Context.Users
                            select userInfo.ID == item.ID ? userInfo : item.SerializationInfo;

                var serializationInfo = new UserContextSerializationInfo()
                {
                    Version    = CremaSchema.VersionValue,
                    Categories = categories.ToArray(),
                    Users      = users.ToArray(),
                };

                var xml = DataContractSerializerUtility.GetString(serializationInfo, true);
                this.Repository.Modify(this.Context.UserFilePath, xml);
            }
            catch (Exception e)
            {
                this.CremaHost.Error(e);
                this.Repository.Revert();
                throw e;
            }
        }
Exemplo n.º 3
0
        public void InvokeCategoryCreate(Authentication authentication, string name, string parentPath)
        {
            this.CremaHost.DebugMethod(authentication, this, nameof(InvokeCategoryCreate), name, parentPath);

            try
            {
                var categories = from UserCategory item in this.Context.Categories
                                 where item != this.Root
                                 select item.Path;

                var categoryList = categories.ToList();
                categoryList.Add(new CategoryName(parentPath, name));

                var users = from User item in this.Context.Users
                            select item.SerializationInfo;

                var serializationInfo = new UserContextSerializationInfo()
                {
                    Version    = CremaSchema.VersionValue,
                    Categories = categoryList.OrderBy(item => item).ToArray(),
                    Users      = users.ToArray(),
                };

                var xml = DataContractSerializerUtility.GetString(serializationInfo, true);
                this.Repository.Modify(this.Context.UserFilePath, xml);
            }
            catch (Exception e)
            {
                this.CremaHost.Error(e);
                this.Repository.Revert();
                throw e;
            }
        }
Exemplo n.º 4
0
        public void InvokeCategoryDelete(Authentication authentication, UserCategory category)
        {
            this.CremaHost.DebugMethod(authentication, this, nameof(InvokeCategoryDelete), category);

            try
            {
                var categories = from UserCategory item in this.Context.Categories
                                 where item != this.Root || item.Path.StartsWith(category.Path) == false
                                 select item.Path;

                var users = from User item in this.Context.Users
                            select item.SerializationInfo;

                var serializationInfo = new UserContextSerializationInfo()
                {
                    Version    = CremaSchema.VersionValue,
                    Categories = categories.ToArray(),
                    Users      = users.ToArray(),
                };

                var xml = DataContractSerializerUtility.GetString(serializationInfo, true);
                this.Repository.Modify(this.Context.UserFilePath, xml);
            }
            catch (Exception e)
            {
                this.CremaHost.Error(e);
                this.Repository.Revert();
                throw e;
            }
        }
Exemplo n.º 5
0
        private void WriteUsers()
        {
            var categories = from UserCategory item in this.Categories
                             where item != this.Root
                             select item.Path;
            var users = from User item in this.Users
                        select item.SerializationInfo;

            var serializationInfo = new UserContextSerializationInfo()
            {
                Version    = CremaSchema.VersionValue,
                Categories = categories.ToArray(),
                Users      = users.ToArray(),
            };

            var xml = DataContractSerializerUtility.GetString(serializationInfo, true);
        }
Exemplo n.º 6
0
        public void InvokeCategoryMove(Authentication authentication, UserCategory category, string parentPath)
        {
            this.CremaHost.DebugMethod(authentication, this, nameof(InvokeCategoryMove), category, parentPath);

            try
            {
                var categoryPath = (string)new CategoryName(parentPath, category.Name);

                var categories = from UserCategory item in this.Context.Categories
                                 where item != this.Root
                                 select item.Path;

                var users = from User item in this.Context.Users
                            select item.SerializationInfo;

                var categoryArray = categories.ToArray();
                var userArray     = users.ToArray();

                for (var i = 0; i < categoryArray.Length; i++)
                {
                    categoryArray[i] = Regex.Replace(categoryArray[i], "^" + category.Path, categoryPath);
                }

                for (var i = 0; i < userArray.Length; i++)
                {
                    userArray[i].CategoryPath = Regex.Replace(userArray[i].CategoryPath, "^" + category.Path, categoryPath);
                }

                var serializationInfo = new UserContextSerializationInfo()
                {
                    Version    = CremaSchema.VersionValue,
                    Categories = categoryArray,
                    Users      = userArray,
                };

                var xml = DataContractSerializerUtility.GetString(serializationInfo, true);
                this.Repository.Modify(this.Context.UserFilePath, xml);
            }
            catch (Exception e)
            {
                this.CremaHost.Error(e);
                this.Repository.Revert();
                throw e;
            }
        }