Exemplo n.º 1
0
        public async Task <Entities.OrgUnit> NewWorkgroup(Guid parentID)
        {
            if (parentID == Guid.Empty)
            {
                throw new Exception("新建组时必须指定上级节点");
            }

            //获取上级
            var parent = await Entities.OrgUnit.LoadAsync(parentID);

            if (parent == null)
            {
                throw new Exception("新建组时无法获取上级节点");
            }
            if (parent.BaseType == Entities.Emploee.TypeId)
            {
                throw new Exception("无法在员工节点新建子节点");
            }

            var workgroup = new Entities.Workgroup(Guid.NewGuid());

            workgroup.Name = "新工作组";
            var ou = new Entities.OrgUnit(Guid.NewGuid());

            ou.Name     = workgroup.Name;
            ou.BaseType = Entities.Workgroup.TypeId;
            ou.BaseId   = workgroup.Id;
            ou.ParentId = parentID;

            //保存并返回
            using var conn = await SqlStore.Default.OpenConnectionAsync();

            using var txn = conn.BeginTransaction();
            await SqlStore.Default.SaveAsync(workgroup, txn);

            await SqlStore.Default.SaveAsync(ou, txn);

            txn.Commit();
            return(ou);
        }
Exemplo n.º 2
0
        public async Task <Entities.OrgUnit> NewWorkgroup(Guid parentID)
        {
            if (parentID == Guid.Empty)
            {
                throw new Exception("新建组时必须指定上级节点");
            }

            //获取上级
            var parent = await EntityStore.LoadAsync <Entities.OrgUnit>(parentID);

            if (parent == null)
            {
                throw new Exception("新建组时无法获取上级节点");
            }
            if (parent.BaseType == Entities.Emploee.TypeId)
            {
                throw new Exception("无法在员工节点新建子节点");
            }

            var workgroup = new Entities.Workgroup();

            workgroup.Name = "新工作组";
            var ou = new Entities.OrgUnit();

            ou.Name     = workgroup.Name;
            ou.BaseType = Entities.Workgroup.TypeId;
            ou.BaseId   = workgroup.Id;
            ou.ParentId = parentID;

            //保存并返回
            using (var txn = await Transaction.BeginAsync())
            {
                await EntityStore.SaveAsync(workgroup, txn);

                await EntityStore.SaveAsync(ou, txn);

                await txn.CommitAsync();
            }
            return(ou);
        }
Exemplo n.º 3
0
        public Task DragEnded(Entities.OrgUnit source, Entities.OrgUnit target, int dropPosition)
        {
            throw new NotImplementedException();
            //TODO: 验证是否允许

            // if (dropPosition == (int)sys.Enums.DropPosition.AsChildNode)
            // {
            //     if (source.ID == target.ID)
            //         throw new System.Exception("节点相同");
            //     sys.DataStore.Default.Save(target); //保存目标节点
            // }
            // else
            // {
            //     if (source.Parent != null)
            //     {
            //         sys.DataStore.Default.Save(source.Parent);
            //     }
            //     else
            //     {
            //         //TODO:需要保存重新设置SortNumber的其他根级对象
            //         sys.DataStore.Default.Save(source);
            //     }
            // }
        }