diff --git a/Src/Dlhis.Sys/Dlhis.Sys.csproj b/Src/Dlhis.Sys/Dlhis.Sys.csproj
index 8a6887a8..763d284c 100644
--- a/Src/Dlhis.Sys/Dlhis.Sys.csproj
+++ b/Src/Dlhis.Sys/Dlhis.Sys.csproj
@@ -18,10 +18,12 @@
+
+
diff --git a/Src/Dlhis.Sys/Dockerfile b/Src/Dlhis.Sys/Dockerfile
index d0ee9cec..036437ee 100644
--- a/Src/Dlhis.Sys/Dockerfile
+++ b/Src/Dlhis.Sys/Dockerfile
@@ -6,17 +6,17 @@ EXPOSE 80
FROM mcr.microsoft.com/dotnet/sdk:6.0 AS build
WORKDIR /src
-COPY ["Src/Dlhis.Permission/Dlhis.Permission.csproj", "Src/Dlhis.Permission/"]
+COPY ["Src/Dlhis.Sys/Dlhis.Sys.csproj", "Src/Dlhis.Sys/"]
COPY ["Src/Dlhis.Entity/Dlhis.Entity.csproj", "Src/Dlhis.Entity/"]
-RUN dotnet restore "Src/Dlhis.Permission/Dlhis.Permission.csproj"
+RUN dotnet restore "Src/Dlhis.Sys/Dlhis.Sys.csproj"
COPY . .
-WORKDIR "/src/Src/Dlhis.Permission"
-RUN dotnet build "Dlhis.Permission.csproj" -c Release -o /app/build
+WORKDIR "/src/Src/Dlhis.Sys"
+RUN dotnet build "Dlhis.Sys.csproj" -c Release -o /app/build
FROM build AS publish
-RUN dotnet publish "Dlhis.Permission.csproj" -c Release -o /app/publish /p:UseAppHost=false
+RUN dotnet publish "Dlhis.Sys.csproj" -c Release -o /app/publish /p:UseAppHost=false
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
-ENTRYPOINT ["dotnet", "Dlhis.Permission.dll"]
\ No newline at end of file
+ENTRYPOINT ["dotnet", "Dlhis.Sys.dll"]
\ No newline at end of file
diff --git a/Src/Dlhis.Sys/Menu/Controllers/MenusController.cs b/Src/Dlhis.Sys/Menu/Controllers/MenusController.cs
index bc162d0b..d301c770 100644
--- a/Src/Dlhis.Sys/Menu/Controllers/MenusController.cs
+++ b/Src/Dlhis.Sys/Menu/Controllers/MenusController.cs
@@ -8,6 +8,9 @@ using Dlhis.Entity.Sys.Enums;
namespace Dlhis.Sys.Menu.Controllers;
+///
+/// 菜单
+///
[Authorize]
[Route("api/[controller]")]
[ApiController]
@@ -23,14 +26,11 @@ public class MenusController : ControllerBase
///
/// 菜单列表
///
+ /// 菜单平台类型 PlatformEnumType
///
[HttpGet("list")]
- public async Task> GetListAsync([EnumDataType(typeof(PlatformEnumType))] PlatformEnumType? platform)
+ public async Task> GetListAsync([EnumDataType(typeof(PlatformEnumType))] PlatformEnumType? platform = PlatformEnumType.PCAdmin)
{
- if (!platform.HasValue)
- {
- platform = PlatformEnumType.UserMobile;
- }
return await _menuService.GetListAsync(platform.Value);
}
@@ -59,17 +59,19 @@ public class MenusController : ControllerBase
///
/// 当前类型的权限分配
///
- /// 权限类型
+ /// 权限分配类型 MenuAssignmentTypeEnumType
/// 类型对应的唯一值
///
[HttpGet("assignments")]
- public async Task> GetAssignmentsAsync([EnumDataType(typeof(MenuPermissionTypeEnumType))] MenuPermissionTypeEnumType permissionType, [Required] string uniqueValue)
+ public async Task> GetAssignmentsAsync(
+ [EnumDataType(typeof(MenuAssignmentTypeEnumType))] MenuAssignmentTypeEnumType uniqueType,
+ [Required] string uniqueValue)
{
- return await _menuService.GetAssignmentCodesAsync(permissionType, uniqueValue);
+ return await _menuService.GetAssignmentCodesAsync(uniqueType, uniqueValue);
}
///
- /// 获取所有权限分配
+ /// 获取我的所有权限
///
///
[HttpGet("assignments/all")]
@@ -79,7 +81,7 @@ public class MenusController : ControllerBase
}
///
- /// 我的菜单
+ /// 获取我的菜单
///
///
[HttpGet("my")]
@@ -89,7 +91,7 @@ public class MenusController : ControllerBase
}
///
- /// 重置
+ /// 重置所有路由
///
///
///
diff --git a/Src/Dlhis.Sys/Menu/Request/MenuPermissionAssignmentRequest.cs b/Src/Dlhis.Sys/Menu/Request/MenuPermissionAssignmentRequest.cs
index d7945625..09860fb1 100644
--- a/Src/Dlhis.Sys/Menu/Request/MenuPermissionAssignmentRequest.cs
+++ b/Src/Dlhis.Sys/Menu/Request/MenuPermissionAssignmentRequest.cs
@@ -6,10 +6,10 @@ namespace Dlhis.Sys.Menu.Request;
public class MenuPermissionAssignmentRequest
{
///
- /// 权限类型
+ /// 权限类型 MenuAssignmentTypeEnumType
///
- [EnumDataType(typeof(MenuPermissionTypeEnumType))]
- public MenuPermissionTypeEnumType UniqueType { get; set; }
+ [EnumDataType(typeof(MenuAssignmentTypeEnumType))]
+ public MenuAssignmentTypeEnumType UniqueType { get; set; }
///
/// 唯一值
diff --git a/Src/Dlhis.Sys/Menu/Request/SaveMenuRequest.cs b/Src/Dlhis.Sys/Menu/Request/SaveMenuRequest.cs
index 4e72baab..a7f6ae81 100644
--- a/Src/Dlhis.Sys/Menu/Request/SaveMenuRequest.cs
+++ b/Src/Dlhis.Sys/Menu/Request/SaveMenuRequest.cs
@@ -60,13 +60,13 @@ public class SaveMenuRequest : IValidatableObject
public int Sequence { get; set; }
///
- /// 菜单类型
+ /// 菜单类型 MenuEnumType
///
[EnumDataType(typeof(MenuEnumType))]
public MenuEnumType MenuType { get; set; }
///
- /// 平台
+ /// 平台 PlatformEnumType
///
[EnumDataType(typeof(PlatformEnumType))]
public PlatformEnumType Platform { get; set; }
diff --git a/Src/Dlhis.Sys/Menu/Response/MenuResponse.cs b/Src/Dlhis.Sys/Menu/Response/MenuResponse.cs
index cc1400ab..0f84c250 100644
--- a/Src/Dlhis.Sys/Menu/Response/MenuResponse.cs
+++ b/Src/Dlhis.Sys/Menu/Response/MenuResponse.cs
@@ -68,12 +68,6 @@ public class MenuResponse
///
public PlatformEnumType Platform { get; set; }
-
- ///
- /// 手机端才会有
- ///
- public List HotelIds { get; set; } = new List();
-
///
/// 子菜单
///
diff --git a/Src/Dlhis.Sys/Menu/Services/IMenuService.cs b/Src/Dlhis.Sys/Menu/Services/IMenuService.cs
index 5e19b56c..8a1646ba 100644
--- a/Src/Dlhis.Sys/Menu/Services/IMenuService.cs
+++ b/Src/Dlhis.Sys/Menu/Services/IMenuService.cs
@@ -5,7 +5,7 @@ using Dlhis.Sys.Menu.Response;
namespace Dlhis.Sys.Menu.Services;
-public interface IMenuService
+public interface IMenuService : IScopeDependency
{
Task> GetListAsync(PlatformEnumType platform);
@@ -13,7 +13,7 @@ public interface IMenuService
Task AssignmentAsync(MenuPermissionAssignmentRequest request);
- Task> GetAssignmentCodesAsync(MenuPermissionTypeEnumType permissionType, string uniqueData);
+ Task> GetAssignmentCodesAsync(MenuAssignmentTypeEnumType permissionType, string uniqueData);
Task> GetAllAssignmentPermissionsAsync();
diff --git a/Src/Dlhis.Sys/Menu/Services/Implements/MenuService.cs b/Src/Dlhis.Sys/Menu/Services/Implements/MenuService.cs
index 5606c08b..10cffed3 100644
--- a/Src/Dlhis.Sys/Menu/Services/Implements/MenuService.cs
+++ b/Src/Dlhis.Sys/Menu/Services/Implements/MenuService.cs
@@ -2,8 +2,10 @@
using Dlhis.Entity.Sys.Enums;
using Dlhis.Sys.Menu.Request;
using Dlhis.Sys.Menu.Response;
+using Dlhis.User.Api;
using Kurisu.AspNetCore.Utils.Extensions;
using Kurisu.Core.User.Abstractions;
+using Kurisu.SqlSugar.Attributes;
using Kurisu.SqlSugar.Services;
using Mapster;
@@ -13,11 +15,13 @@ public class MenuService : IMenuService
{
private readonly IDbContext _dbContext;
private readonly ICurrentUser _currentUser;
+ private readonly IUserApi _userApi;
- public MenuService(IDbContext dbContext, ICurrentUser currentUser)
+ public MenuService(IDbContext dbContext, ICurrentUser currentUser, IUserApi userApi)
{
_dbContext = dbContext;
_currentUser = currentUser;
+ _userApi = userApi;
}
public async Task> GetListAsync(PlatformEnumType platform)
@@ -37,6 +41,7 @@ public class MenuService : IMenuService
return top;
}
+ [Transactional]
public async Task SaveMenuAsync(SaveMenuRequest request)
{
await CheckAsync(request);
@@ -57,27 +62,9 @@ public class MenuService : IMenuService
}
}
-
- private async Task ChangeIfCodeEditAsync(string beforeCode, string pcode)
- {
- if (beforeCode != pcode)
- {
- //修改下级的PCode为当前的code
- var menus = await _dbContext.Queryable().Where(x => x.PCode == beforeCode).ToListAsync();
- menus.ForEach(x => { x.PCode = pcode; });
-
- //修改权限code为当前的code,避免权限丢失
- var permissions = await _dbContext.Queryable().Where(x => x.Code == beforeCode).ToListAsync();
- permissions.ForEach(x => { x.Code = pcode; });
-
- await _dbContext.UpdateAsync(menus);
- await _dbContext.UpdateAsync(permissions);
- }
- }
-
public async Task AssignmentAsync(MenuPermissionAssignmentRequest request)
{
- (request.UniqueType == MenuPermissionTypeEnumType.Role).ThrowIfTrue("暂不支持角色分配");
+ (request.UniqueType == MenuAssignmentTypeEnumType.Role).ThrowIfTrue("暂不支持角色分配");
//清空覆盖
var permissionsToDelete = await _dbContext.Queryable()
@@ -98,15 +85,57 @@ public class MenuService : IMenuService
await _dbContext.InsertAsync(permissions);
}
- public Task> GetAssignmentCodesAsync(MenuPermissionTypeEnumType permissionType, string uniqueData)
+ public async Task> GetAssignmentCodesAsync(MenuAssignmentTypeEnumType uniqueType, string uniqueData)
{
- throw new NotImplementedException();
+ var permissionCodes = await _dbContext.Queryable()
+ .Where(x => x.UniqueType == uniqueType)
+ .Where(x => x.UniqueValue == uniqueData)
+ .Select(x => x.Code)
+ .ToListAsync();
+
+ var menus = await GetListAsync(PlatformEnumType.PCAdmin);
+
+ foreach (var menu in menus)
+ {
+ if (menu.Items.Any())
+ {
+ var codes = RecursionHandler(menu.Items, permissionCodes);
+ permissionCodes.RemoveAll(x => codes.Contains(x));
+ }
+ }
+
+ return permissionCodes;
+
+ static List RecursionHandler(List menus, List innerPermissions)
+ {
+ var codes = new HashSet();
+ foreach (var menu in menus)
+ {
+ if (menu.Items.Any())
+ {
+ var innerPermissionCodes = RecursionHandler(menu.Items, innerPermissions);
+ foreach (var item in innerPermissionCodes)
+ {
+ codes.Add(item);
+ }
+ }
+
+ if (!innerPermissions.Contains(menu.Code))
+ {
+ foreach (var item in menu.Items.Select(x => x.Code))
+ {
+ codes.Add(item);
+ }
+ }
+ }
+
+ return codes.ToList();
+ }
}
public async Task> GetAllAssignmentPermissionsAsync()
{
var all = await GetAllAssignmentCodesAsync();
-
return await _dbContext.Queryable().Where(x => all.Contains(x.Code)).Select(x => x.Permission).ToListAsync();
}
@@ -238,20 +267,34 @@ public class MenuService : IMenuService
private async Task> GetAllAssignmentCodesAsync()
{
- var user = await _dbContext.Queryable().Where(x => x.Id == _currentUser.GetIntSubjectId()).FirstAsync();
- if (user == null)
+ var userApiResult = await _userApi.GetUserByIdAsync(_currentUser.GetIntSubjectId());
+ (userApiResult.Code == Kurisu.Core.Result.ApiStateCode.Success).ThrowIfFalse(userApiResult.Msg);
+ var user = userApiResult.Data;
+
+ // var groupCodes = await GetAssignmentCodesAsync(MenuPermissionTypeEnumType.Group, manager.usergrp);
+
+ //user
+ var userCodes = await GetAssignmentCodesAsync(MenuAssignmentTypeEnumType.User, user.Id.ToString());
+ var all = userCodes;// gP.Concat(uP).Distinct().ToList();
+
+ return all;
+ }
+
+
+ private async Task ChangeIfCodeEditAsync(string beforeCode, string pcode)
+ {
+ if (beforeCode != pcode)
{
- return new List();
+ //修改下级的PCode为当前的code
+ var menus = await _dbContext.Queryable().Where(x => x.PCode == beforeCode).ToListAsync();
+ menus.ForEach(x => { x.PCode = pcode; });
+
+ //修改权限code为当前的code,避免权限丢失
+ var permissions = await _dbContext.Queryable().Where(x => x.Code == beforeCode).ToListAsync();
+ permissions.ForEach(x => { x.Code = pcode; });
+
+ await _dbContext.UpdateAsync(menus);
+ await _dbContext.UpdateAsync(permissions);
}
-
- // var gP = await GetAssignmentCodesAsync(MenuPermissionTypeEnumType.Group, manager.usergrp);
- //
- // //user
- // var uP = await GetAssignmentCodesAsync(MenuPermissionTypeEnumType.User, manager.account);
- // var all = gP.Concat(uP).Distinct().ToList();
-
- //return all;
-
- return new List();
}
}
\ No newline at end of file
diff --git a/Src/Dlhis.Sys/Program.cs b/Src/Dlhis.Sys/Program.cs
index 2f2202fc..2539a772 100644
--- a/Src/Dlhis.Sys/Program.cs
+++ b/Src/Dlhis.Sys/Program.cs
@@ -1,21 +1,20 @@
using Kurisu.AspNetCore.Startup;
using Kurisu.Startup;
-namespace Dlhis.Sys
+namespace Dlhis.Sys;
+
+class Program
{
- class Program
+ static void Main(string[] args)
{
- static void Main(string[] args)
- {
- KurisuHost.Run(true, args);
- }
+ KurisuHost.Run(true, args);
}
+}
- public class Startup : DefaultStartup
+public class Startup : DefaultStartup
+{
+ public Startup(IConfiguration configuration) : base(configuration)
{
- public Startup(IConfiguration configuration) : base(configuration)
- {
- }
}
}
\ No newline at end of file
diff --git a/Src/Dlhis.Sys/Properties/launchSettings.json b/Src/Dlhis.Sys/Properties/launchSettings.json
index b5d66c45..f52c9c8c 100644
--- a/Src/Dlhis.Sys/Properties/launchSettings.json
+++ b/Src/Dlhis.Sys/Properties/launchSettings.json
@@ -1,20 +1,12 @@
{
"profiles": {
- "Dlhis.Permission": {
+ "Dlhis.Sys": {
"commandName": "Project",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
},
"dotnetRunMessages": true,
"applicationUrl": "http://localhost:5003"
- },
- "Docker": {
- "commandName": "Docker",
- "launchUrl": "{Scheme}://{ServiceHost}:{ServicePort}",
- "environmentVariables": {
- "ASPNETCORE_URLS": "http://+:80"
- },
- "publishAllPorts": true
}
}
}
\ No newline at end of file
diff --git a/Src/Dlhis.Sys/SqlSugarPack.cs b/Src/Dlhis.Sys/SqlSugarPack.cs
new file mode 100644
index 00000000..26d783d6
--- /dev/null
+++ b/Src/Dlhis.Sys/SqlSugarPack.cs
@@ -0,0 +1,14 @@
+using Kurisu.AspNetCore.Startup;
+using Kurisu.SqlSugar.Extensions;
+
+namespace Dlhis.Sys;
+
+public class SqlSugarPack : BaseAppPack
+{
+ public override bool IsBeforeUseRouting { get; }
+
+ public override void ConfigureServices(IServiceCollection services)
+ {
+ services.AddSqlSugar();
+ }
+}
diff --git a/Src/Dlhis.Sys/appsettings.Development.json b/Src/Dlhis.Sys/appsettings.Development.json
index 0c208ae9..b6aea76a 100644
--- a/Src/Dlhis.Sys/appsettings.Development.json
+++ b/Src/Dlhis.Sys/appsettings.Development.json
@@ -4,5 +4,9 @@
"Default": "Information",
"Microsoft.AspNetCore": "Warning"
}
+ },
+ "InternalRequest": {
+ "CommonRequestUrl": "http://common",
+ "UserRequestUrl": "http://localhost:5010"
}
}
diff --git a/Src/Dlhis.Sys/appsettings.json b/Src/Dlhis.Sys/appsettings.json
index 369aba6b..808230bd 100644
--- a/Src/Dlhis.Sys/appsettings.json
+++ b/Src/Dlhis.Sys/appsettings.json
@@ -6,13 +6,26 @@
}
},
"AllowedHosts": "*",
+ "InternalRequest": {
+ "CommonRequestUrl": "http://common",
+ "UserRequestUrl": "http://user"
+ },
+ "SqlSugarOptions": {
+ "DefaultConnectionString": "server=192.168.199.124;port=3306;userid=root;password=dlhis123;database=yikatong;charset=utf8mb4;",
+ "SlaveConnectionString": [],
+ "Timeout": 30,
+ "SlowSqlTime": 1,
+ "EnableSqlLog": true
+ },
"SwaggerOptions": {
"Enable": true,
"Authority": "https://yikatong.isawesome.cn/oauth2",
"ClientId": "4fb184324eac4180",
"ClientSecret": "8ac8f235152f1524",
"Scopes": {
- "openid": "openid"
+ "openid": "openid",
+ "profile": "profile",
+ "yikatong": "yikatong"
}
},
"IdentityServerOptions": {
diff --git a/Src/Dlhis.User.Api/Dlhis.User.Api.csproj b/Src/Dlhis.User.Api/Dlhis.User.Api.csproj
new file mode 100644
index 00000000..71b4a337
--- /dev/null
+++ b/Src/Dlhis.User.Api/Dlhis.User.Api.csproj
@@ -0,0 +1,13 @@
+
+
+
+ net6.0
+ enable
+ disable
+
+
+
+
+
+
+
diff --git a/Src/Dlhis.User.Api/IUserApi.cs b/Src/Dlhis.User.Api/IUserApi.cs
new file mode 100644
index 00000000..1e52028b
--- /dev/null
+++ b/Src/Dlhis.User.Api/IUserApi.cs
@@ -0,0 +1,13 @@
+using Dlhis.User.Api.Response;
+using Kurisu.Core.Result;
+using Kurisu.RemoteCall.Attributes;
+
+namespace Dlhis.User.Api;
+
+[EnableRemoteClient(Name = "user-service", BaseUrl = "${InternalRequest:UserRequestUrl}")]
+public interface IUserApi
+{
+ [Auth]
+ [Get("/api/users")]
+ Task> GetUserByIdAsync(int id);
+}
\ No newline at end of file
diff --git a/Src/Dlhis.User.Api/Response/UserResponse.cs b/Src/Dlhis.User.Api/Response/UserResponse.cs
new file mode 100644
index 00000000..391341d2
--- /dev/null
+++ b/Src/Dlhis.User.Api/Response/UserResponse.cs
@@ -0,0 +1,28 @@
+namespace Dlhis.User.Api.Response;
+
+public class UserResponse
+{
+ public int Id { get; set; }
+
+ public string UserName { get; set; }
+
+ public string NormalizedUserName { get; set; }
+
+ public string Email { get; set; }
+
+ public string NormalizedEmail { get; set; }
+
+ public bool EmailConfirmed { get; set; }
+
+ public string PhoneNumber { get; set; }
+
+ public string PhoneNumberConfirmed { get; set; }
+
+ public bool TwoFactorEnabled { get; set; }
+
+ public bool LockoutEnd { get; set; }
+
+ public bool LockoutEnabled { get; set; }
+
+ public int AccessFailedCount { get; set; }
+}
diff --git a/Src/Dlhis.User/Dlhis.User.csproj b/Src/Dlhis.User/Dlhis.User.csproj
index 6ac4aa28..b15a865e 100644
--- a/Src/Dlhis.User/Dlhis.User.csproj
+++ b/Src/Dlhis.User/Dlhis.User.csproj
@@ -4,6 +4,8 @@
net6.0
disable
enable
+ Linux
+ ..\..
diff --git a/Src/Dlhis.User/Identity/Controllers/RolesController.cs b/Src/Dlhis.User/Identity/Controllers/RolesController.cs
index 0f8e0f99..be7468ac 100644
--- a/Src/Dlhis.User/Identity/Controllers/RolesController.cs
+++ b/Src/Dlhis.User/Identity/Controllers/RolesController.cs
@@ -7,6 +7,9 @@ using Microsoft.AspNetCore.Mvc;
namespace Dlhis.User.Identity.Controllers;
+///
+/// 角色
+///
[Authorize(Roles = "admin")]
[Route("api/[controller]")]
[ApiController]
@@ -19,6 +22,11 @@ public class RolesController : ControllerBase
_roleService = roleService;
}
+ ///
+ /// 获取角色分页
+ ///
+ ///
+ ///
[HttpGet]
public async Task> GetPageAsync(RolePageRequest request)
{
diff --git a/Src/Dlhis.User/Identity/Controllers/UsersController.cs b/Src/Dlhis.User/Identity/Controllers/UsersController.cs
index 0700500c..e0d5d519 100644
--- a/Src/Dlhis.User/Identity/Controllers/UsersController.cs
+++ b/Src/Dlhis.User/Identity/Controllers/UsersController.cs
@@ -7,6 +7,9 @@ using Microsoft.AspNetCore.Mvc;
namespace Dlhis.User.Identity.Controllers;
+///
+/// 用户
+///
[Authorize(Roles = "admin")]
[Route("api/[controller]")]
[ApiController]
@@ -29,4 +32,21 @@ public class UsersController : ControllerBase
{
return await _userService.GetPageAsync(request);
}
+
+ ///
+ /// 获取用户列表
+ ///
+ ///
+ [HttpGet("list")]
+ public async Task> GetUsersAsync()
+ {
+ return await _userService.GetUsersAsync();
+ }
+
+ [Authorize]
+ [HttpGet]
+ public async Task GetUserByIdAsync(int id)
+ {
+ return await _userService.GetUserByIdAsync(id);
+ }
}
diff --git a/Src/Dlhis.User/Identity/Services/IUserService.cs b/Src/Dlhis.User/Identity/Services/IUserService.cs
index 227bdf6e..e07ac0d6 100644
--- a/Src/Dlhis.User/Identity/Services/IUserService.cs
+++ b/Src/Dlhis.User/Identity/Services/IUserService.cs
@@ -9,4 +9,8 @@ public interface IUserService : IScopeDependency
Task> GetPageAsync(UserPageRequest request);
Task ResetAccessFailedCountAsync(int id);
+
+ Task> GetUsersAsync();
+
+ Task GetUserByIdAsync(int id);
}
diff --git a/Src/Dlhis.User/Identity/Services/Implements/UserService.cs b/Src/Dlhis.User/Identity/Services/Implements/UserService.cs
index b4c0844a..e7ebc36a 100644
--- a/Src/Dlhis.User/Identity/Services/Implements/UserService.cs
+++ b/Src/Dlhis.User/Identity/Services/Implements/UserService.cs
@@ -38,4 +38,17 @@ public class UserService : IUserService
user.AccessFailedCount = 0;
await _dbContext.UpdateAsync(user);
}
+
+ public async Task> GetUsersAsync()
+ {
+ //todo tenant
+ var users = await _dbContext.Queryable().Select().ToListAsync();
+ return users;
+ }
+
+ public async Task GetUserByIdAsync(int id)
+ {
+ var user = await _dbContext.Queryable().Where(x => x.Id == id).Select().FirstAsync();
+ return user;
+ }
}
diff --git a/Src/Dlhis.User/Properties/launchSettings.json b/Src/Dlhis.User/Properties/launchSettings.json
index ebd6db88..67846e57 100644
--- a/Src/Dlhis.User/Properties/launchSettings.json
+++ b/Src/Dlhis.User/Properties/launchSettings.json
@@ -1,13 +1,13 @@
-{
- "$schema": "https://json.schemastore.org/launchsettings.json",
+{
"profiles": {
"Dlhis.User": {
"commandName": "Project",
- "dotnetRunMessages": true,
- "applicationUrl": "http://localhost:5010",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
- }
+ },
+ "dotnetRunMessages": true,
+ "applicationUrl": "http://localhost:5010"
}
- }
-}
+ },
+ "$schema": "https://json.schemastore.org/launchsettings.json"
+}
\ No newline at end of file