public async Task <(bool success, string errorMessage)> InstallAsync(string userName, string password, string email, string mobile) { try { await SyncDatabaseAsync(); var administrator = new Administrator { UserName = userName, Email = email, Mobile = mobile }; await AdministratorRepository.InsertAsync(administrator, password); await AdministratorRepository.AddUserToRoleAsync(userName, PredefinedRole.ConsoleAdministrator.GetValue()); await UserMenuRepository.ResetAsync(); return(true, string.Empty); } catch (Exception ex) { return(false, ex.Message); } }
public virtual async Task SetUserMenusAsync(Guid userId, IEnumerable <Guid> menuIds) { using (var unitOfWork = UnitOfWorkManager.Begin()) { var userMenus = await UserMenuRepository.GetListByUserIdAsync(userId); // 移除不存在的菜单 // TODO: 升级框架版本解决未能删除不需要菜单的问题 // userMenus.RemoveAll(x => !menuIds.Contains(x.MenuId)); var dels = userMenus.Where(x => !menuIds.Contains(x.MenuId)); if (dels.Any()) { await UserMenuRepository.DeleteManyAsync(dels); } var adds = menuIds.Where(menuId => !userMenus.Any(x => x.MenuId == menuId)); if (adds.Any()) { var addInMenus = adds.Select(menuId => new UserMenu(GuidGenerator.Create(), menuId, userId, CurrentTenant.Id)); await UserMenuRepository.InsertAsync(addInMenus); } await unitOfWork.SaveChangesAsync(); } }
public virtual async Task SeedUserMenuAsync( Guid userId, Menu menu, Guid?tenantId = null, CancellationToken cancellationToken = default) { if (!await UserMenuRepository.UserHasInMenuAsync(userId, menu.Name, cancellationToken)) { var userMenu = new UserMenu(GuidGenerator.Create(), menu.Id, userId, tenantId); await UserMenuRepository.InsertAsync(userMenu); var childrens = await MenuRepository.GetChildrenAsync(menu.Id); foreach (var children in childrens) { await SeedUserMenuAsync(userId, children, tenantId, cancellationToken); } } }
public virtual async Task SetUserMenusAsync(Guid userId, IEnumerable <Guid> menuIds) { await UserMenuRepository.SetMemberMenusAsync(userId, menuIds); }