public async Task SaveWorkgroup(Entities.Workgroup group, Guid ouid) { var ou = await EntityStore.LoadAsync <Entities.OrgUnit>(ouid); ou.Name = group.Name; using (var txn = await Transaction.BeginAsync()) { await EntityStore.SaveAsync(group, txn); await EntityStore.SaveAsync(ou, txn); await txn.CommitAsync(); } }
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); }
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); }
public async Task SaveWorkgroup(Entities.Workgroup group, Guid ouid) { var ou = await Entities.OrgUnit.LoadAsync(ouid); bool nameChanged = ou.Name != group.Name; if (nameChanged) { ou.Name = group.Name; } using var conn = await SqlStore.Default.OpenConnectionAsync(); using var txn = conn.BeginTransaction(); await SqlStore.Default.SaveAsync(group, txn); if (nameChanged) { await SqlStore.Default.SaveAsync(ou, txn); } txn.Commit(); }