diff --git a/OpenAuth.App/CategoryManagerApp.cs b/OpenAuth.App/CategoryManagerApp.cs index 37534a0b..85af3000 100644 --- a/OpenAuth.App/CategoryManagerApp.cs +++ b/OpenAuth.App/CategoryManagerApp.cs @@ -1,22 +1,23 @@ -using System; +using Infrastructure; +using OpenAuth.App.ViewModel; using OpenAuth.Domain; using OpenAuth.Domain.Interface; +using System; using System.Collections.Generic; using System.Linq; -using Infrastructure; namespace OpenAuth.App { public class CategoryManagerApp { private ICategoryRepository _repository; - private IOrgRepository _orgRepository; + private IUnitWork _unitWork; public CategoryManagerApp(ICategoryRepository repository, - IOrgRepository orgRepository) + IUnitWork unitWork) { _repository = repository; - _orgRepository = orgRepository; + _unitWork = unitWork; } public int GetCategoryCntInOrg(Guid orgId) @@ -37,29 +38,45 @@ namespace OpenAuth.App } /// - /// 加载一个部门及子部门全部Categorys + /// 加载一个分类及子分类全部Categorys /// - public dynamic Load(Guid parentId, int pageindex, int pagesize) + public GridData Load(Guid parentId, int pageindex, int pagesize) { - IEnumerable Categorys; + IQueryable categories; int total = 0; if (parentId == Guid.Empty) { - Categorys = _repository.LoadCategorys(pageindex, pagesize); + categories = _unitWork.Find(pageindex, pagesize); total = _repository.GetCount(); } else { var ids = GetSubCategories(parentId); - Categorys = _repository.LoadInOrgs(pageindex, pagesize, ids); + categories = _unitWork.Find(pageindex, pagesize, "SortNo", u => ids.Contains(u.Id)); total = _repository.GetCategoryCntInOrgs(ids); } - return new + var query = from c in categories + join category in _unitWork.Find(null) on c.ParentId equals category.Id into temp + from category in temp.DefaultIfEmpty() + select new + { + c.CascadeId, + c.Name, + c.ParentId, + ParentName = category.Name, + c.SortNo, + c.RootName, + c.RootKey, + c.Status, + c.Id + }; + return new GridData() { - total = total, - list = Categorys, - pageCurrent = pageindex + records = total, + total = (int)Math.Ceiling((double)total/pagesize), + rows = query.ToList(), + page = pageindex }; } @@ -68,7 +85,7 @@ namespace OpenAuth.App /// private Guid[] GetSubCategories(Guid orgId) { - var category = Find(orgId); + var category = Find(orgId); var categories = _repository.Find(u => u.CascadeId.Contains(category.CascadeId)).Select(u => u.Id).ToArray(); return categories; } @@ -81,14 +98,14 @@ namespace OpenAuth.App return category; } - public void Delete(Guid id) + public void Delete(Guid[] ids) { - _repository.Delete(id); + _repository.Delete(u =>ids.Contains(u.Id)); } public void AddOrUpdate(Category model) { - Category category = new Category(); + Category category = new Category(); model.CopyTo(category); ChangeModuleCascade(category); @@ -116,7 +133,7 @@ namespace OpenAuth.App if (currentCascadeId <= objCascadeId) currentCascadeId = objCascadeId + 1; } - if (org.ParentId != Guid.Empty) + if (org.ParentId != null && org.ParentId != Guid.Empty) { var parentOrg = _repository.FindSingle(o => o.Id == org.ParentId); if (parentOrg != null) diff --git a/OpenAuth.App/OrgManagerApp.cs b/OpenAuth.App/OrgManagerApp.cs index 446b6941..455273a3 100644 --- a/OpenAuth.App/OrgManagerApp.cs +++ b/OpenAuth.App/OrgManagerApp.cs @@ -134,7 +134,7 @@ namespace OpenAuth.App if (currentCascadeId <= objCascadeId) currentCascadeId = objCascadeId + 1; } - if (org.ParentId != Guid.Empty) + if (org.ParentId != null && org.ParentId != Guid.Empty) { var parentOrg = _repository.FindSingle(o => o.Id == org.ParentId); if (parentOrg != null) diff --git a/OpenAuth.Mvc/BllScripts/categoryManager.js b/OpenAuth.Mvc/BllScripts/categoryManager.js index 85d29c70..6a3c127d 100644 --- a/OpenAuth.Mvc/BllScripts/categoryManager.js +++ b/OpenAuth.Mvc/BllScripts/categoryManager.js @@ -11,74 +11,13 @@ // 分类管理 // *********************************************************************** -//grid列表模块 -function MainGrid() { - var url = '/CategoryManager/Load?parentId='; - var selectedId = '00000000-0000-0000-0000-000000000000'; //ztree选中的模块 - this.maingrid = $('#maingrid').datagrid({ - showToolbar: false, - loadType: 'GET', - filterThead: false, - target: $(this), - columns: [ - {name: 'Id',label: '资源表ID',hide: true}, - { - name: 'CascadeId', - label: '节点语义ID', - width: 100 - }, - { - name: 'Name', - label: '名称', - width: 100 - }, - { - name: 'ParentId', - label: '父节点流水号', - width: 100 - }, - { - name: 'Status', - label: '当前状态', - width: 100, - align: 'center', - items: [{ '0': '默认' }, { '1': '删除' }] - }, - { - name: 'SortNo', - label: '排序号', - width: 100, - align: 'center', - }, - { - name: 'RootKey', - label: '从属行业标识', - width: 100 - }, - { - name: 'RootName', - label: '从属行业名称', - width: 100 - }, - ], - dataUrl: url + selectedId, - fullGrid: true, - showLinenumber: true, - showCheckboxcol: true, - paging: true, - filterMult: false, - showTfoot: false, - +$(function () { + $("#ParentName").on("click", function () { + parent.reload(); }); - this.reload = function (id) { - if (id != undefined) selectedId = id; - this.maingrid.datagrid('reload', { dataUrl: url+ selectedId }); - }; -}; -MainGrid.prototype = new Grid(); -var list = new MainGrid(); +}); -//左边分类导航树 +//左边导航 var ztree = function () { var url = '/CategoryManager/LoadForTree'; var setting = { @@ -95,39 +34,106 @@ var ztree = function () { rootPId: 'null' } }, - callback: { onClick: zTreeOnClick } + callback: { + onClick: function (event, treeId, treeNode) { + list.reload(treeNode.Id); + } + } }; - $.getJSON(url, function (json) { - $.fn.zTree.init($("#tree"), setting, json).expandAll(true); - }); - function zTreeOnClick(event, treeId, treeNode) { - list.reload(treeNode.Id); - } + var load = function () { + $.getJSON(url, function (json) { + var zTreeObj = $.fn.zTree.init($("#orgtree"), setting, json); + list.reload(); + zTreeObj.expandAll(true); + }); + }; + load(); return { - reload:function() { - $.getJSON(url, function (json) { - $.fn.zTree.init($("#tree"), setting, json).expandAll(true); - }); - } + reload: load } }(); +//grid列表模块 +function MainGrid() { + var url = '/CategoryManager/Load?parentId='; + var selectedId = '00000000-0000-0000-0000-000000000000'; //ztree选中的模块 + this.maingrid = $('#maingrid') + .jqGrid({ + colModel: [ + { + name: 'Id', + index: 'Id', + hidden: true + }, + { + index: 'CascadeId', + name: 'CascadeId', + label: '节点语义ID' + }, + { + index: 'Name', + name: 'Name', + label: '分类名称' + }, + { + index: 'ParentName', + name: 'ParentName', + label: '上级分类' + }, + { + index: 'ParentId', + name: 'ParentId', + hidden: true + }, -//编辑时,选择上级弹出的树 -var parentTree = function () { - var nameDom = "#ParentName"; - var idDom = "#ParentId"; + { + index: 'SortNo', + name: 'SortNo', + label: '排序号' + + } + ], + url: url + selectedId, + datatype: "json", + + viewrecords: true, + rowNum: 18, + pager: "#grid-pager", + altRows: true, + height: 'auto', + multiselect: true, + multiboxonly: true, + + loadComplete: function () { + var table = this; + setTimeout(function () { + updatePagerIcons(table); + }, + 0); + } + }).jqGrid('navGrid', "#grid-pager", { + edit: false, add: false, del: false, refresh: false, search: false + }); + + this.reload = function (id) { + if (id != undefined) selectedId = id; + this.maingrid.jqGrid("setGridParam", { url: url + selectedId }) + .trigger("reloadGrid", [{ page: 1 }]); //重载JQGrid + + }; +}; +MainGrid.prototype = new Grid(); +var list = new MainGrid(); +var vm = new Vue({ + el: '#editDlg' +}); + +//上级机构选择框 +var parent = function () { //ztree搜索框 var zTreeObj; var setting = { - view: { - selectedMulti: false - }, - check: { - enable: true, - chkStyle: "radio", //单选 - radioType: "all" - }, + view: { selectedMulti: false }, data: { key: { name: 'Name', @@ -141,112 +147,113 @@ var parentTree = function () { } }, callback: { - onClick: zTreeOnClick, - onCheck: zTreeCheck + onClick: onClick } }; + var showMenu = function () { + $("#menuContent").css({ left: "10px", top: $("#ParentName").outerHeight() + "px" }).slideDown("fast"); + $("body").bind("mousedown", onBodyDown); + }; + function onClick(e, treeId, treeNode) { + var nodes = zTreeObj.getSelectedNodes(); - function zTreeCheck(event, treeId, treeNode) { - var nodes = zTreeObj.getCheckedNodes(true); - var ids = nodes.map(function (e) { return e.Id; }).join(","); - var names = nodes.map(function (e) { return e.Name; }).join(","); - - $(nameDom).val(names); - $(idDom).val(ids); + for (var i = 0, l = nodes.length; i < l; i++) { + vm.$set('ParentName', nodes[i].Name); + vm.$set('ParentId', nodes[i].Id); + break; + } + hideMenu(); } - function zTreeOnClick(event, treeId, treeNode) { - zTreeObj.checkNode(treeNode, !treeNode.checked, true, true); - event.preventDefault(); + function onBodyDown(event) { + if (!(event.target.id == "menuContent" || $(event.target).parents("#menuContent").length > 0)) { + hideMenu(); + } + } + function hideMenu() { + $("#menuContent").fadeOut("fast"); + $("body").unbind("mousedown", onBodyDown); } - return { - show:function() { - $.getJSON('/CategoryManager/LoadForTree', function (json) { - zTreeObj = $.fn.zTree.init($('#j_select_tree1'), setting, json); - var orgstr = $(idDom).val(); - var name = ''; - if (orgstr != '') { - var nodeIds = orgstr.split(','); - $.each(nodeIds, function () { - var node = zTreeObj.getNodeByParam("Id", this, null); - name += ',' + node.Name; - zTreeObj.checkNode(node, true, true); - }); - $(nameDom).val(name.substr(1)); //显示名称 + reload: function () { + var index = layer.load(); + $.getJSON("/CategoryManager/LoadForTree", { + page: 1, rows: 10000 + }, function (json) { + layer.close(index); + if (json.length == 0) { + vm.$set('ParentName', ''); + vm.$set('ParentId', ''); + return; } + zTreeObj = $.fn.zTree.init($("#org"), setting, json); zTreeObj.expandAll(true); + showMenu(); }); } - }; + } }(); //添加(编辑)对话框 var editDlg = function () { var update = false; var show = function () { - BJUI.dialog({ id: 'editDlg', title: '分类管理', target: '#editDlg' }); - $("#btnSave").on("click", function() { - editDlg.save(); + layer.open({ + type: 1, + skin: 'layui-layer-rim', //加上边框 + title: "用户管理", //不显示标题 + area: ['400px', '300px'], //宽高 + content: $('#editDlg'), //捕获的元素 + btn: ['保存', '关闭'], + yes: function (index, layero) { + $.post("/CategoryManager/Add", vm.$data, function (data) { + layer.msg(data.Message); + if (data.Status) { + list.reload(); + ztree.reload(); + } + }, "json"); + }, + cancel: function (index) { + layer.close(index); + } }); } return { add: function () { //弹出添加 update = false; show(); - $.CurrentDialog.find("form")[0].reset(); //reset方法只能通过dom调用 - $("#Id").val('00000000-0000-0000-0000-000000000000'); - $("#SortNo").val(0); - parentTree.show(); + vm.$set('$data', { + Id: '00000000-0000-0000-0000-000000000000', + SortNo: 0 + }); }, update: function (ret) { //弹出编辑框 update = true; show(); - $("#Id").val(ret.Id); - $("#Name").val(ret.Name); - $("#ParentId").val(ret.ParentId); - $('#Status').selectpicker('val', ret.Status); - $("#SortNo").val(ret.SortNo); - $("#RootKey").val(ret.RootKey); - $("#RootName").val(ret.RootName); - parentTree.show(); - }, - save: function() { //编辑-->保存 - $('#editForm').isValid(function (v) { - if (!v) return; //验证没通过 - $("#editForm").bjuiajax('ajaxForm', { - reload: false, - callback: function (json) { - if (json.statusCode == "400") { - $(this).alertmsg('warn', json.message); - return null; - } - list.reload(); - ztree.reload(); - } - }); - }); + vm.$set('$data', ret); } }; }(); - //删除 function del() { - var selected = list.getSelectedObj(); + var selected = list.getSelectedProperties("Id"); if (selected == null) return; - $.post('/CategoryManager/Delete?Id=' + selected.Id, function (data) { - if (data.statusCode == "200") { + $.post('/CategoryManager/Delete', + { ids: selected }, + function (data) { + if (data.Status) { list.reload(); ztree.reload(); } else { - $(this).alertmsg('warn', data.message); + layer.msg(data.Message); } }, "json"); } -//编辑 +//自定义的编辑按钮 function edit() { var selected = list.getSelectedObj(); if (selected == null) { @@ -255,14 +262,10 @@ function edit() { editDlg.update(selected); } -//添加 function add() { editDlg.add(); } -//刷新 function refresh() { list.reload(); -} - -//@@ sourceURL=categoryManager.js \ No newline at end of file +} \ No newline at end of file diff --git a/OpenAuth.Mvc/BllScripts/grid.js b/OpenAuth.Mvc/BllScripts/grid.js index ee3f6b52..9ca511b2 100644 --- a/OpenAuth.Mvc/BllScripts/grid.js +++ b/OpenAuth.Mvc/BllScripts/grid.js @@ -13,16 +13,17 @@ // *********************************************************************** function Grid() { - this.maingrid = undefined; + this.selectObjs = function () { var ids = this.maingrid.jqGrid('getGridParam', 'selarrrow'); if (ids.length == 0) { return null; } var ret = new Array(); + var maingrid = this.maingrid; $(ids).each(function () { - var obj = this.maingrid.jqGrid('getRowData', this); - ret.push(obj.Account); + var obj =maingrid.jqGrid('getRowData', this); + ret.push(obj); }); return ret; }; diff --git a/OpenAuth.Mvc/BllScripts/orgManager.js b/OpenAuth.Mvc/BllScripts/orgManager.js index 31c7ae29..d8c7e316 100644 --- a/OpenAuth.Mvc/BllScripts/orgManager.js +++ b/OpenAuth.Mvc/BllScripts/orgManager.js @@ -4,7 +4,7 @@ }); }); -//左边分类导航树 +//左边导航 var ztree = function () { var url = '/OrgManager/LoadOrg'; var setting = { @@ -212,6 +212,7 @@ var editDlg = function () { show(); vm.$set('$data', null); vm.$set('Id', '00000000-0000-0000-0000-000000000000'); + vm.$set('SortNo', 0); }, update: function (ret) { //弹出编辑框 update = true; @@ -252,6 +253,4 @@ function add() { function refresh() { list.reload(); -} - -//@@ sourceURL=OrgManager.js \ No newline at end of file +} \ No newline at end of file diff --git a/OpenAuth.Mvc/Controllers/CategoryManagerController.cs b/OpenAuth.Mvc/Controllers/CategoryManagerController.cs index 1cda1401..cfa26f36 100644 --- a/OpenAuth.Mvc/Controllers/CategoryManagerController.cs +++ b/OpenAuth.Mvc/Controllers/CategoryManagerController.cs @@ -54,12 +54,12 @@ namespace OpenAuth.Mvc.Controllers } return JsonHelper.Instance.Serialize(Result); } - - public string Delete(Guid Id) + [HttpPost] + public string Delete(Guid[] ids) { try { - _app.Delete(Id); + _app.Delete(ids); } catch (Exception e) { diff --git a/OpenAuth.Mvc/Images/left_menuForOutLook.gif b/OpenAuth.Mvc/Images/left_menuForOutLook.gif new file mode 100644 index 00000000..c252f0f8 Binary files /dev/null and b/OpenAuth.Mvc/Images/left_menuForOutLook.gif differ diff --git a/OpenAuth.Mvc/Images/left_menuForOutLook.png b/OpenAuth.Mvc/Images/left_menuForOutLook.png new file mode 100644 index 00000000..36e8acfa Binary files /dev/null and b/OpenAuth.Mvc/Images/left_menuForOutLook.png differ diff --git a/OpenAuth.Mvc/Views/CategoryManager/Index.cshtml b/OpenAuth.Mvc/Views/CategoryManager/Index.cshtml index 8f837152..0daffdbd 100644 --- a/OpenAuth.Mvc/Views/CategoryManager/Index.cshtml +++ b/OpenAuth.Mvc/Views/CategoryManager/Index.cshtml @@ -2,80 +2,86 @@ Layout = "~/Views/Shared/_Layout.cshtml"; } -@{ Html.RenderAction("MenuHeader", "Home");} -
-
-
-
    -
    - -
    -
    -
    -
    + + + +
    +
    +
    +
    +
    +
    +
    +
    +
    +
      +
      +
      +
      +
      +
      +
      +
      + @Html.Action("MenuHeader", "Home") +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      - - \ No newline at end of file + + \ No newline at end of file diff --git a/OpenAuth.Mvc/Views/OrgManager/Index.cshtml b/OpenAuth.Mvc/Views/OrgManager/Index.cshtml index 9f401927..f762c21f 100644 --- a/OpenAuth.Mvc/Views/OrgManager/Index.cshtml +++ b/OpenAuth.Mvc/Views/OrgManager/Index.cshtml @@ -47,38 +47,38 @@
      - - - + + + diff --git a/OpenAuth.Mvc/obj/Release/Package/PackageTmp/BllScripts/categoryManager.js b/OpenAuth.Mvc/obj/Release/Package/PackageTmp/BllScripts/categoryManager.js new file mode 100644 index 00000000..85d29c70 --- /dev/null +++ b/OpenAuth.Mvc/obj/Release/Package/PackageTmp/BllScripts/categoryManager.js @@ -0,0 +1,268 @@ +// *********************************************************************** +// Assembly : OpenAuth.Mvc +// Author : yubaolee +// Created : 04-13-2016 +// +// Last Modified By : yubaolee +// Last Modified On : 04-14-2016 +// Contact me : www.cnblogs.com/yubaolee +// *********************************************************************** +// File: categoryManager.js +// 分类管理 +// *********************************************************************** + +//grid列表模块 +function MainGrid() { + var url = '/CategoryManager/Load?parentId='; + var selectedId = '00000000-0000-0000-0000-000000000000'; //ztree选中的模块 + this.maingrid = $('#maingrid').datagrid({ + showToolbar: false, + loadType: 'GET', + filterThead: false, + target: $(this), + columns: [ + {name: 'Id',label: '资源表ID',hide: true}, + { + name: 'CascadeId', + label: '节点语义ID', + width: 100 + }, + { + name: 'Name', + label: '名称', + width: 100 + }, + { + name: 'ParentId', + label: '父节点流水号', + width: 100 + }, + { + name: 'Status', + label: '当前状态', + width: 100, + align: 'center', + items: [{ '0': '默认' }, { '1': '删除' }] + }, + { + name: 'SortNo', + label: '排序号', + width: 100, + align: 'center', + }, + { + name: 'RootKey', + label: '从属行业标识', + width: 100 + }, + { + name: 'RootName', + label: '从属行业名称', + width: 100 + }, + ], + dataUrl: url + selectedId, + fullGrid: true, + showLinenumber: true, + showCheckboxcol: true, + paging: true, + filterMult: false, + showTfoot: false, + + }); + this.reload = function (id) { + if (id != undefined) selectedId = id; + this.maingrid.datagrid('reload', { dataUrl: url+ selectedId }); + }; +}; +MainGrid.prototype = new Grid(); +var list = new MainGrid(); + +//左边分类导航树 +var ztree = function () { + var url = '/CategoryManager/LoadForTree'; + var setting = { + view: { selectedMulti: false }, + data: { + key: { + name: 'Name', + title: 'Name' + }, + simpleData: { + enable: true, + idKey: 'Id', + pIdKey: 'ParentId', + rootPId: 'null' + } + }, + callback: { onClick: zTreeOnClick } + }; + $.getJSON(url, function (json) { + $.fn.zTree.init($("#tree"), setting, json).expandAll(true); + }); + function zTreeOnClick(event, treeId, treeNode) { + list.reload(treeNode.Id); + } + + return { + reload:function() { + $.getJSON(url, function (json) { + $.fn.zTree.init($("#tree"), setting, json).expandAll(true); + }); + } + } +}(); + + +//编辑时,选择上级弹出的树 +var parentTree = function () { + var nameDom = "#ParentName"; + var idDom = "#ParentId"; + var zTreeObj; + var setting = { + view: { + selectedMulti: false + }, + check: { + enable: true, + chkStyle: "radio", //单选 + radioType: "all" + }, + data: { + key: { + name: 'Name', + title: 'Name' + }, + simpleData: { + enable: true, + idKey: 'Id', + pIdKey: 'ParentId', + rootPId: 'null' + } + }, + callback: { + onClick: zTreeOnClick, + onCheck: zTreeCheck + } + }; + + function zTreeCheck(event, treeId, treeNode) { + var nodes = zTreeObj.getCheckedNodes(true); + var ids = nodes.map(function (e) { return e.Id; }).join(","); + var names = nodes.map(function (e) { return e.Name; }).join(","); + + $(nameDom).val(names); + $(idDom).val(ids); + } + function zTreeOnClick(event, treeId, treeNode) { + zTreeObj.checkNode(treeNode, !treeNode.checked, true, true); + event.preventDefault(); + } + + return { + show:function() { + $.getJSON('/CategoryManager/LoadForTree', function (json) { + zTreeObj = $.fn.zTree.init($('#j_select_tree1'), setting, json); + var orgstr = $(idDom).val(); + var name = ''; + if (orgstr != '') { + var nodeIds = orgstr.split(','); + $.each(nodeIds, function () { + var node = zTreeObj.getNodeByParam("Id", this, null); + name += ',' + node.Name; + zTreeObj.checkNode(node, true, true); + }); + $(nameDom).val(name.substr(1)); //显示名称 + } + zTreeObj.expandAll(true); + }); + } + }; +}(); + +//添加(编辑)对话框 +var editDlg = function () { + var update = false; + var show = function () { + BJUI.dialog({ id: 'editDlg', title: '分类管理', target: '#editDlg' }); + $("#btnSave").on("click", function() { + editDlg.save(); + }); + } + return { + add: function () { //弹出添加 + update = false; + show(); + $.CurrentDialog.find("form")[0].reset(); //reset方法只能通过dom调用 + $("#Id").val('00000000-0000-0000-0000-000000000000'); + $("#SortNo").val(0); + parentTree.show(); + }, + update: function (ret) { //弹出编辑框 + update = true; + show(); + $("#Id").val(ret.Id); + $("#Name").val(ret.Name); + $("#ParentId").val(ret.ParentId); + $('#Status').selectpicker('val', ret.Status); + $("#SortNo").val(ret.SortNo); + $("#RootKey").val(ret.RootKey); + $("#RootName").val(ret.RootName); + parentTree.show(); + }, + save: function() { //编辑-->保存 + $('#editForm').isValid(function (v) { + if (!v) return; //验证没通过 + $("#editForm").bjuiajax('ajaxForm', { + reload: false, + callback: function (json) { + if (json.statusCode == "400") { + $(this).alertmsg('warn', json.message); + return null; + } + list.reload(); + ztree.reload(); + } + }); + }); + } + }; +}(); + + +//删除 +function del() { + var selected = list.getSelectedObj(); + if (selected == null) return; + + $.post('/CategoryManager/Delete?Id=' + selected.Id, function (data) { + if (data.statusCode == "200") { + list.reload(); + ztree.reload(); + } + else { + $(this).alertmsg('warn', data.message); + } + }, "json"); +} + +//编辑 +function edit() { + var selected = list.getSelectedObj(); + if (selected == null) { + return; + } + editDlg.update(selected); +} + +//添加 +function add() { + editDlg.add(); +} + +//刷新 +function refresh() { + list.reload(); +} + +//@@ sourceURL=categoryManager.js \ No newline at end of file diff --git a/OpenAuth.Mvc/obj/Release/Package/PackageTmp/Views/CategoryManager/Index.cshtml b/OpenAuth.Mvc/obj/Release/Package/PackageTmp/Views/CategoryManager/Index.cshtml new file mode 100644 index 00000000..b72b3e91 --- /dev/null +++ b/OpenAuth.Mvc/obj/Release/Package/PackageTmp/Views/CategoryManager/Index.cshtml @@ -0,0 +1,81 @@ +@{ + Layout = "~/Views/Shared/_BjuiLayout.cshtml"; +} + +@{ Html.RenderAction("MenuHeader", "Home");} +
      +
      +
      +
        +
        + +
        +
        +
        +
        +
        + + + + + + \ No newline at end of file diff --git a/OpenAuth.UnitTest/OpenAuth.UnitTest.csproj b/OpenAuth.UnitTest/OpenAuth.UnitTest.csproj index 70090ac0..0b91b931 100644 --- a/OpenAuth.UnitTest/OpenAuth.UnitTest.csproj +++ b/OpenAuth.UnitTest/OpenAuth.UnitTest.csproj @@ -125,6 +125,7 @@ + diff --git a/OpenAuth.UnitTest/TestOrg.cs b/OpenAuth.UnitTest/TestOrg.cs new file mode 100644 index 00000000..96c6f18f --- /dev/null +++ b/OpenAuth.UnitTest/TestOrg.cs @@ -0,0 +1,46 @@ +using System; +using Microsoft.VisualStudio.TestTools.UnitTesting; +using OpenAuth.App; +using OpenAuth.App.ViewModel; +using OpenAuth.Domain; + +namespace OpenAuth.UnitTest +{ + [TestClass] + public class TestOrg : TestBase + { + private OrgManagerApp _app; + + public TestOrg() + { + _app = AutofacExt.GetFromFac(); + } + + + [TestMethod] + public void Add() + { + try + { + for (int i = 0; i < 2; i++) + { + var random = new Random(); + int val = random.Next(); + _app.AddOrUpdate(new Org + { + Id = Guid.Empty, + Name = "test" + val, + CreateTime = DateTime.Now, + ParentId = null, + ParentName = "", + SortNo = 1 + }); + } + } + catch (Exception e) + { + Console.WriteLine(e.Message); + } + } + } +}