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; } }
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; } }
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; } }
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; } }
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); }
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; } }