feat: 部门增加编码
This commit is contained in:
parent
5f940611aa
commit
3ba18ac948
|
@ -14,7 +14,7 @@
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="Bootstrap.Security.Mvc" Version="2.2.11" />
|
<PackageReference Include="Bootstrap.Security.Mvc" Version="2.2.11" />
|
||||||
<PackageReference Include="Longbow.Configuration" Version="2.2.4" />
|
<PackageReference Include="Longbow.Configuration" Version="2.2.4" />
|
||||||
<PackageReference Include="Longbow.Tasks" Version="1.5.0" />
|
<PackageReference Include="Longbow.Tasks" Version="1.6.0" />
|
||||||
<PackageReference Include="Microsoft.AspNetCore.App" />
|
<PackageReference Include="Microsoft.AspNetCore.App" />
|
||||||
<PackageReference Include="Microsoft.AspNetCore.Mvc.Versioning" Version="3.1.3" />
|
<PackageReference Include="Microsoft.AspNetCore.Mvc.Versioning" Version="3.1.3" />
|
||||||
<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="2.2.3" PrivateAssets="All" />
|
<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="2.2.3" PrivateAssets="All" />
|
||||||
|
|
Binary file not shown.
|
@ -36,7 +36,7 @@ namespace Bootstrap.Admin.Query
|
||||||
var ret = new QueryData<object>();
|
var ret = new QueryData<object>();
|
||||||
ret.total = data.Count();
|
ret.total = data.Count();
|
||||||
data = Order == "asc" ? data.OrderBy(t => t.GroupName) : data.OrderByDescending(t => t.GroupName);
|
data = Order == "asc" ? data.OrderBy(t => t.GroupName) : data.OrderByDescending(t => t.GroupName);
|
||||||
ret.rows = data.Skip(Offset).Take(Limit).Select(g => new { g.Id, g.GroupName, g.Description });
|
ret.rows = data.Skip(Offset).Take(Limit).Select(g => new { g.Id, g.GroupCode, g.GroupName, g.Description });
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -47,6 +47,10 @@
|
||||||
<label class="control-label" for="groupName">部门名称</label>
|
<label class="control-label" for="groupName">部门名称</label>
|
||||||
<input type="text" class="form-control" id="groupName" placeholder="不可为空,50字以内" maxlength="50" data-valid="true" />
|
<input type="text" class="form-control" id="groupName" placeholder="不可为空,50字以内" maxlength="50" data-valid="true" />
|
||||||
</div>
|
</div>
|
||||||
|
<div class="form-group col-sm-6">
|
||||||
|
<label class="control-label" for="groupCode">部门编码</label>
|
||||||
|
<input type="text" class="form-control" id="groupCode" placeholder="不可为空,50字以内" maxlength="50" data-valid="true" />
|
||||||
|
</div>
|
||||||
<div class="form-group col-sm-6">
|
<div class="form-group col-sm-6">
|
||||||
<input type="hidden" id="groupID" />
|
<input type="hidden" id="groupID" />
|
||||||
<label class="control-label" for="groupDesc">部门描述</label>
|
<label class="control-label" for="groupDesc">部门描述</label>
|
||||||
|
|
|
@ -11,6 +11,7 @@ $(function () {
|
||||||
dataBinder: {
|
dataBinder: {
|
||||||
map: {
|
map: {
|
||||||
Id: "#groupID",
|
Id: "#groupID",
|
||||||
|
GroupCode: "#groupCode",
|
||||||
GroupName: "#groupName",
|
GroupName: "#groupName",
|
||||||
Description: "#groupDesc"
|
Description: "#groupDesc"
|
||||||
},
|
},
|
||||||
|
@ -67,6 +68,7 @@ $(function () {
|
||||||
sortName: 'GroupName',
|
sortName: 'GroupName',
|
||||||
queryParams: function (params) { return $.extend(params, { groupName: $("#txt_search_name").val(), description: $("#txt_group_desc").val() }); }, //传递参数(*)
|
queryParams: function (params) { return $.extend(params, { groupName: $("#txt_search_name").val(), description: $("#txt_group_desc").val() }); }, //传递参数(*)
|
||||||
columns: [
|
columns: [
|
||||||
|
{ title: "部门编码", field: "GroupCode", sortable: true },
|
||||||
{ title: "部门名称", field: "GroupName", sortable: true },
|
{ title: "部门名称", field: "GroupName", sortable: true },
|
||||||
{ title: "部门描述", field: "Description", sortable: false }
|
{ title: "部门描述", field: "Description", sortable: false }
|
||||||
],
|
],
|
||||||
|
|
|
@ -5,6 +5,7 @@
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
<PackageReference Include="Bootstrap.Security" Version="1.6.0-preview-1" />
|
||||||
<PackageReference Include="MongoDB.Driver" Version="2.8.1" />
|
<PackageReference Include="MongoDB.Driver" Version="2.8.1" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
|
|
|
@ -230,16 +230,30 @@ namespace Bootstrap.DataAccess.MongoDB
|
||||||
md.UnmapMember(m => m.Menus);
|
md.UnmapMember(m => m.Menus);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
if (!BsonClassMap.IsClassMapRegistered(typeof(BootstrapGroup)))
|
||||||
|
{
|
||||||
|
BsonClassMap.RegisterClassMap<BootstrapGroup>(md =>
|
||||||
|
{
|
||||||
|
md.AutoMap();
|
||||||
|
md.IdMemberMap.SetSerializer(new StringSerializer(BsonType.ObjectId));
|
||||||
|
md.IdMemberMap.SetIgnoreIfDefault(true);
|
||||||
|
});
|
||||||
|
}
|
||||||
if (!BsonClassMap.IsClassMapRegistered(typeof(DataAccess.Group)))
|
if (!BsonClassMap.IsClassMapRegistered(typeof(DataAccess.Group)))
|
||||||
{
|
{
|
||||||
BsonClassMap.RegisterClassMap<DataAccess.Group>(md =>
|
BsonClassMap.RegisterClassMap<DataAccess.Group>(md =>
|
||||||
{
|
{
|
||||||
md.AutoMap();
|
md.AutoMap();
|
||||||
md.IdMemberMap.SetSerializer(new StringSerializer(BsonType.ObjectId));
|
|
||||||
md.IdMemberMap.SetIgnoreIfDefault(true);
|
|
||||||
md.UnmapMember(group => group.Checked);
|
md.UnmapMember(group => group.Checked);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
if (!BsonClassMap.IsClassMapRegistered(typeof(Group)))
|
||||||
|
{
|
||||||
|
BsonClassMap.RegisterClassMap<Group>(md =>
|
||||||
|
{
|
||||||
|
md.AutoMap();
|
||||||
|
});
|
||||||
|
}
|
||||||
if (!BsonClassMap.IsClassMapRegistered(typeof(DataAccess.Role)))
|
if (!BsonClassMap.IsClassMapRegistered(typeof(DataAccess.Role)))
|
||||||
{
|
{
|
||||||
BsonClassMap.RegisterClassMap<DataAccess.Role>(md =>
|
BsonClassMap.RegisterClassMap<DataAccess.Role>(md =>
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
using MongoDB.Driver;
|
using Bootstrap.Security;
|
||||||
|
using MongoDB.Driver;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
|
||||||
|
@ -34,6 +35,7 @@ namespace Bootstrap.DataAccess.MongoDB
|
||||||
{
|
{
|
||||||
DbManager.Groups.InsertOne(new Group()
|
DbManager.Groups.InsertOne(new Group()
|
||||||
{
|
{
|
||||||
|
GroupCode = p.GroupCode,
|
||||||
GroupName = p.GroupName,
|
GroupName = p.GroupName,
|
||||||
Description = p.Description,
|
Description = p.Description,
|
||||||
Roles = new List<string>()
|
Roles = new List<string>()
|
||||||
|
@ -134,14 +136,13 @@ namespace Bootstrap.DataAccess.MongoDB
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="userName"></param>
|
/// <param name="userName"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public override IEnumerable<string> RetrievesByUserName(string userName)
|
public override IEnumerable<BootstrapGroup> RetrievesByUserName(string userName)
|
||||||
{
|
{
|
||||||
var groups = new List<string>();
|
var groups = new List<BootstrapGroup>();
|
||||||
var user = UserHelper.Retrieves().Cast<User>().FirstOrDefault(u => u.UserName == userName);
|
var user = UserHelper.Retrieves().Cast<User>().FirstOrDefault(u => u.UserName == userName);
|
||||||
var group = GroupHelper.Retrieves();
|
var group = GroupHelper.Retrieves();
|
||||||
|
|
||||||
groups.AddRange(user.Groups.Select(r => group.FirstOrDefault(rl => rl.Id == r).GroupName));
|
groups.AddRange(group.Where(g => user.Groups.Any(ug => ug == g.Id)));
|
||||||
if (groups.Count == 0) groups.Add("Default");
|
|
||||||
return groups;
|
return groups;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="Bootstrap.Security.DataAccess" Version="2.2.7" />
|
<PackageReference Include="Bootstrap.Security.DataAccess" Version="2.2.8-preview-1" />
|
||||||
<PackageReference Include="Longbow.Data" Version="2.3.3" />
|
<PackageReference Include="Longbow.Data" Version="2.3.3" />
|
||||||
<PackageReference Include="Longbow.Logging" Version="2.2.9" />
|
<PackageReference Include="Longbow.Logging" Version="2.2.9" />
|
||||||
<PackageReference Include="Longbow.Security.Cryptography" Version="1.3.0" />
|
<PackageReference Include="Longbow.Security.Cryptography" Version="1.3.0" />
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
using Bootstrap.Security.DataAccess;
|
using Bootstrap.Security;
|
||||||
|
using Bootstrap.Security.DataAccess;
|
||||||
using PetaPoco;
|
using PetaPoco;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
@ -10,18 +11,8 @@ namespace Bootstrap.DataAccess
|
||||||
///
|
///
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[TableName("Groups")]
|
[TableName("Groups")]
|
||||||
public class Group
|
public class Group : BootstrapGroup
|
||||||
{
|
{
|
||||||
/// <summary>
|
|
||||||
/// 获得/设置 群组主键ID
|
|
||||||
/// </summary>
|
|
||||||
public string Id { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 获得/设置 群组名称
|
|
||||||
/// </summary>
|
|
||||||
public string GroupName { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 获得/设置 群组描述
|
/// 获得/设置 群组描述
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -84,7 +75,7 @@ namespace Bootstrap.DataAccess
|
||||||
public virtual IEnumerable<Group> RetrievesByUserId(string userId)
|
public virtual IEnumerable<Group> RetrievesByUserId(string userId)
|
||||||
{
|
{
|
||||||
var db = DbManager.Create();
|
var db = DbManager.Create();
|
||||||
return db.Fetch<Group>($"select g.ID, g.GroupName, g.Description, case ug.GroupID when g.ID then 'checked' else '' end Checked from {db.Provider.EscapeSqlIdentifier("Groups")} g left join UserGroup ug on g.ID = ug.GroupID and UserID = @0", userId);
|
return db.Fetch<Group>($"select g.ID, g.GroupCode, g.GroupName, g.Description, case ug.GroupID when g.ID then 'checked' else '' end Checked from {db.Provider.EscapeSqlIdentifier("Groups")} g left join UserGroup ug on g.ID = ug.GroupID and UserID = @0", userId);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -95,7 +86,7 @@ namespace Bootstrap.DataAccess
|
||||||
public virtual IEnumerable<Group> RetrievesByRoleId(string roleId)
|
public virtual IEnumerable<Group> RetrievesByRoleId(string roleId)
|
||||||
{
|
{
|
||||||
var db = DbManager.Create();
|
var db = DbManager.Create();
|
||||||
return db.Fetch<Group>($"select g.ID, g.GroupName, g.Description, case rg.GroupID when g.ID then 'checked' else '' end Checked from {db.Provider.EscapeSqlIdentifier("Groups")} g left join RoleGroup rg on g.ID = rg.GroupID and RoleID = @0", roleId);
|
return db.Fetch<Group>($"select g.ID, g.GroupCode, g.GroupName, g.Description, case rg.GroupID when g.ID then 'checked' else '' end Checked from {db.Provider.EscapeSqlIdentifier("Groups")} g left join RoleGroup rg on g.ID = rg.GroupID and RoleID = @0", roleId);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -157,6 +148,6 @@ namespace Bootstrap.DataAccess
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="userName"></param>
|
/// <param name="userName"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public virtual IEnumerable<string> RetrievesByUserName(string userName) => DbHelper.RetrieveGroupsByUserName(userName);
|
public virtual IEnumerable<BootstrapGroup> RetrievesByUserName(string userName) => DbHelper.RetrieveGroupsByUserName(userName);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
using Bootstrap.Security.DataAccess;
|
using Bootstrap.Security;
|
||||||
|
using Bootstrap.Security.DataAccess;
|
||||||
using Longbow.Cache;
|
using Longbow.Cache;
|
||||||
using Longbow.Data;
|
using Longbow.Data;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
@ -100,6 +101,6 @@ namespace Bootstrap.DataAccess
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="userName"></param>
|
/// <param name="userName"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public static IEnumerable<string> RetrievesByUserName(string userName) => CacheManager.GetOrAdd(string.Format("{0}-{1}", RetrieveGroupsByUserNameDataKey, userName), r => DbContextManager.Create<Group>().RetrievesByUserName(userName), RetrieveGroupsByUserNameDataKey);
|
public static IEnumerable<BootstrapGroup> RetrievesByUserName(string userName) => CacheManager.GetOrAdd(string.Format("{0}-{1}", RetrieveGroupsByUserNameDataKey, userName), r => DbContextManager.Create<Group>().RetrievesByUserName(userName), RetrieveGroupsByUserNameDataKey);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
Groups = [
|
Groups = [
|
||||||
{
|
{
|
||||||
|
"GroupCode": "001",
|
||||||
"GroupName": "Admin",
|
"GroupName": "Admin",
|
||||||
"Description": "系统默认组",
|
"Description": "系统默认组",
|
||||||
"Roles": []
|
"Roles": []
|
||||||
|
|
|
@ -107,7 +107,7 @@ INSERT INTO Navigations (ParentId, Name, `Order`, Icon, Url, Category) VALUES (@
|
||||||
INSERT INTO Navigations (ParentId, Name, `Order`, Icon, Url, Category) VALUES (@@identity - 2, '图标集', 10, 'fa fa-dashboard', '~/Admin/FAIcon', '0');
|
INSERT INTO Navigations (ParentId, Name, `Order`, Icon, Url, Category) VALUES (@@identity - 2, '图标集', 10, 'fa fa-dashboard', '~/Admin/FAIcon', '0');
|
||||||
|
|
||||||
DELETE FROM `Groups` WHERE GroupName = 'Admin';
|
DELETE FROM `Groups` WHERE GroupName = 'Admin';
|
||||||
INSERT INTO `Groups` (GroupName, Description) VALUES ('Admin', '系统默认组');
|
INSERT INTO `Groups` (GroupCode, GroupName, Description) VALUES ('001', 'Admin', '系统默认组');
|
||||||
|
|
||||||
DELETE FROM Roles where RoleName in ('Administrators', 'Default');
|
DELETE FROM Roles where RoleName in ('Administrators', 'Default');
|
||||||
INSERT INTO Roles (RoleName, Description) VALUES ('Administrators', '系统管理员');
|
INSERT INTO Roles (RoleName, Description) VALUES ('Administrators', '系统管理员');
|
||||||
|
|
|
@ -93,6 +93,7 @@ CREATE TABLE Logs(
|
||||||
|
|
||||||
CREATE TABLE `Groups`(
|
CREATE TABLE `Groups`(
|
||||||
ID INTEGER PRIMARY KEY Auto_increment,
|
ID INTEGER PRIMARY KEY Auto_increment,
|
||||||
|
GroupCode VARCHAR (50) NOT NULL,
|
||||||
GroupName VARCHAR (50) NOT NULL,
|
GroupName VARCHAR (50) NOT NULL,
|
||||||
Description VARCHAR (500) NULL
|
Description VARCHAR (500) NULL
|
||||||
);
|
);
|
||||||
|
|
|
@ -107,7 +107,7 @@ INSERT INTO Navigations (ParentId, Name, "order", Icon, Url, Category) VALUES (c
|
||||||
INSERT INTO Navigations (ParentId, Name, "order", Icon, Url, Category) VALUES (currval('navigations_id_seq') - 3, '图标集', 10, 'fa fa-dashboard', '~/Admin/FAIcon', '0');
|
INSERT INTO Navigations (ParentId, Name, "order", Icon, Url, Category) VALUES (currval('navigations_id_seq') - 3, '图标集', 10, 'fa fa-dashboard', '~/Admin/FAIcon', '0');
|
||||||
|
|
||||||
DELETE FROM GROUPS WHERE GroupName = 'Admin';
|
DELETE FROM GROUPS WHERE GroupName = 'Admin';
|
||||||
INSERT INTO Groups (GroupName, Description) VALUES ('Admin', '系统默认组');
|
INSERT INTO Groups (GroupCode, GroupName, Description) VALUES ('001', 'Admin', '系统默认组');
|
||||||
|
|
||||||
DELETE FROM Roles where RoleName in ('Administrators', 'Default');
|
DELETE FROM Roles where RoleName in ('Administrators', 'Default');
|
||||||
INSERT INTO Roles (RoleName, Description) VALUES ('Administrators', '系统管理员');
|
INSERT INTO Roles (RoleName, Description) VALUES ('Administrators', '系统管理员');
|
||||||
|
|
|
@ -93,6 +93,7 @@ CREATE TABLE Logs(
|
||||||
|
|
||||||
CREATE TABLE Groups(
|
CREATE TABLE Groups(
|
||||||
ID SERIAL PRIMARY KEY,
|
ID SERIAL PRIMARY KEY,
|
||||||
|
GroupCode VARCHAR (50) NOT NULL,
|
||||||
GroupName VARCHAR (50) NOT NULL,
|
GroupName VARCHAR (50) NOT NULL,
|
||||||
Description VARCHAR (500) NULL
|
Description VARCHAR (500) NULL
|
||||||
);
|
);
|
||||||
|
|
|
@ -112,7 +112,7 @@ INSERT INTO [Navigations] ([ParentId], [Name], [Order], [Icon], [Url], [Category
|
||||||
INSERT INTO [Navigations] ([ParentId], [Name], [Order], [Icon], [Url], [Category]) VALUES (last_insert_rowid() - 1, '下拉框', 20, 'fa fa-bars', 'http://longbowenterprise.gitee.io/longbow-select/', '0');
|
INSERT INTO [Navigations] ([ParentId], [Name], [Order], [Icon], [Url], [Category]) VALUES (last_insert_rowid() - 1, '下拉框', 20, 'fa fa-bars', 'http://longbowenterprise.gitee.io/longbow-select/', '0');
|
||||||
|
|
||||||
DELETE FROM GROUPS WHERE GroupName = 'Admin';
|
DELETE FROM GROUPS WHERE GroupName = 'Admin';
|
||||||
INSERT INTO [Groups] ([GroupName], [Description]) VALUES ('Admin', '系统默认组');
|
INSERT INTO [Groups] ([GroupCode], [GroupName], [Description]) VALUES ('001', 'Admin', '系统默认组');
|
||||||
|
|
||||||
DELETE FROM Roles where RoleName in ('Administrators', 'Default');
|
DELETE FROM Roles where RoleName in ('Administrators', 'Default');
|
||||||
INSERT INTO [Roles] ([RoleName], [Description]) VALUES ('Administrators', '系统管理员');
|
INSERT INTO [Roles] ([RoleName], [Description]) VALUES ('Administrators', '系统管理员');
|
||||||
|
|
|
@ -93,6 +93,7 @@ CREATE TABLE Logs(
|
||||||
|
|
||||||
CREATE TABLE Groups(
|
CREATE TABLE Groups(
|
||||||
ID INTEGER PRIMARY KEY,
|
ID INTEGER PRIMARY KEY,
|
||||||
|
GroupCode VARCHAR (50) NOT NULL,
|
||||||
GroupName VARCHAR (50) NOT NULL COLLATE NOCASE,
|
GroupName VARCHAR (50) NOT NULL COLLATE NOCASE,
|
||||||
Description VARCHAR (500) NULL
|
Description VARCHAR (500) NULL
|
||||||
);
|
);
|
||||||
|
|
|
@ -110,7 +110,7 @@ INSERT [Navigations] ([ParentId], [Name], [Order], [Icon], [Url], [Category]) VA
|
||||||
INSERT [Navigations] ([ParentId], [Name], [Order], [Icon], [Url], [Category]) VALUES (@@Identity - 2, N'图标集', 10, N'fa fa-dashboard', N'~/Admin/FAIcon', N'0')
|
INSERT [Navigations] ([ParentId], [Name], [Order], [Icon], [Url], [Category]) VALUES (@@Identity - 2, N'图标集', 10, N'fa fa-dashboard', N'~/Admin/FAIcon', N'0')
|
||||||
|
|
||||||
DELETE FROM GROUPS WHERE GroupName = 'Admin'
|
DELETE FROM GROUPS WHERE GroupName = 'Admin'
|
||||||
INSERT [dbo].[Groups] ([GroupName], [Description]) VALUES ('Admin', N'系统默认组')
|
INSERT [dbo].[Groups] ([GroupCode], [GroupName], [Description]) VALUES ('001', 'Admin', N'系统默认组')
|
||||||
|
|
||||||
DELETE FROM Roles where RoleName in ('Administrators', 'Default')
|
DELETE FROM Roles where RoleName in ('Administrators', 'Default')
|
||||||
INSERT [dbo].[Roles] ([RoleName], [Description]) VALUES (N'Administrators', N'系统管理员')
|
INSERT [dbo].[Roles] ([RoleName], [Description]) VALUES (N'Administrators', N'系统管理员')
|
||||||
|
|
|
@ -302,6 +302,7 @@ SET QUOTED_IDENTIFIER ON
|
||||||
GO
|
GO
|
||||||
CREATE TABLE [dbo].[Groups](
|
CREATE TABLE [dbo].[Groups](
|
||||||
[ID] [int] IDENTITY(1,1) NOT NULL,
|
[ID] [int] IDENTITY(1,1) NOT NULL,
|
||||||
|
[GroupCode] [nvarchar](50) NOT NULL,
|
||||||
[GroupName] [nvarchar](50) NOT NULL,
|
[GroupName] [nvarchar](50) NOT NULL,
|
||||||
[Description] [nvarchar](500) NULL,
|
[Description] [nvarchar](500) NULL,
|
||||||
CONSTRAINT [PK_Groups] PRIMARY KEY CLUSTERED
|
CONSTRAINT [PK_Groups] PRIMARY KEY CLUSTERED
|
||||||
|
|
|
@ -32,7 +32,7 @@ namespace Bootstrap.Admin.Api.SqlServer
|
||||||
[Fact]
|
[Fact]
|
||||||
public async void PostAndDelete_Ok()
|
public async void PostAndDelete_Ok()
|
||||||
{
|
{
|
||||||
var ret = await Client.PostAsJsonAsync<Group, bool>("", new Group() { GroupName = "UnitTest-Group", Description = "UnitTest-Desc" });
|
var ret = await Client.PostAsJsonAsync<Group, bool>("", new Group() { GroupCode = "002", GroupName = "UnitTest-Group", Description = "UnitTest-Desc" });
|
||||||
Assert.True(ret);
|
Assert.True(ret);
|
||||||
|
|
||||||
var ids = GroupHelper.Retrieves().Where(d => d.GroupName == "UnitTest-Group").Select(d => d.Id);
|
var ids = GroupHelper.Retrieves().Where(d => d.GroupName == "UnitTest-Group").Select(d => d.Id);
|
||||||
|
|
|
@ -1,6 +1,4 @@
|
||||||
using System;
|
using System.Linq;
|
||||||
using System.Linq;
|
|
||||||
using UnitTest;
|
|
||||||
using Xunit;
|
using Xunit;
|
||||||
|
|
||||||
namespace Bootstrap.DataAccess.SqlServer
|
namespace Bootstrap.DataAccess.SqlServer
|
||||||
|
@ -17,7 +15,7 @@ namespace Bootstrap.DataAccess.SqlServer
|
||||||
[Fact]
|
[Fact]
|
||||||
public void SaveAndDelete_Ok()
|
public void SaveAndDelete_Ok()
|
||||||
{
|
{
|
||||||
var g = new Group() { GroupName = "UnitTest", Description = "UnitTestSave" };
|
var g = new Group() { GroupCode = "002", GroupName = "UnitTest", Description = "UnitTestSave" };
|
||||||
|
|
||||||
// insert
|
// insert
|
||||||
Assert.True(GroupHelper.Save(g));
|
Assert.True(GroupHelper.Save(g));
|
||||||
|
|
Binary file not shown.
Loading…
Reference in New Issue