ow
This commit is contained in:
1 parent
fcbeba7287
commit
f2f5807372
33 files changed
+1399
-1444
No files matched your search
@@ -117,9 +117,24 @@ namespace CloudBuilder.Master.Service
|
||||
|
||||
if (d == null) return data;
|
||||
|
||||
IRepository<FamilyTreePermissionUserViewEntity> repositoryPermission = repository.GetRepository<IRepository<FamilyTreePermissionUserViewEntity>>();
|
||||
|
||||
|
||||
data.FamilyTree = new FamilyTreeDisplayData(d);
|
||||
data.CurrentPerson = new FamilyPersonData();
|
||||
|
||||
data.FamilyTreePermissions = repositoryPermission.DetachedEntities.Where(x => x.TreeId == key).ToArray();
|
||||
|
||||
if (data.FamilyTreePermissions.Any())
|
||||
{
|
||||
data.IsManager = data.FamilyTreePermissions.Where(x => x.UserName == service.UserId && x.ManagerIndc == YesNoPolicy.YES).Any();
|
||||
}
|
||||
|
||||
if(!data.IsManager && data.FamilyTreePermissions.Any())
|
||||
{
|
||||
data.FamilyTreePermissions = data.FamilyTreePermissions.Where(x => x.UserName == service.UserId && x.ValidIndc == YesNoPolicy.NO).ToArray();
|
||||
}
|
||||
|
||||
IRepository<FamilyPersonEntity> repositoryFamilyPerson = repository.GetRepository<IRepository<FamilyPersonEntity>>();
|
||||
|
||||
var currentPerson = personId;
|
||||
@@ -248,6 +263,21 @@ namespace CloudBuilder.Master.Service
|
||||
|
||||
repository.InsertNow(d);
|
||||
|
||||
FamilyTreePermissionEntity treePermissionEntity = new FamilyTreePermissionEntity();
|
||||
treePermissionEntity.TreeId = d.TreeId;
|
||||
treePermissionEntity.PersonId = d.AncestorPersonId;
|
||||
treePermissionEntity.UserName = service.UserId;
|
||||
treePermissionEntity.ManagerIndc = YesNoPolicy.YES;
|
||||
treePermissionEntity.ValidIndc = YesNoPolicy.YES;
|
||||
InsertFamilyTreePermission(treePermissionEntity);
|
||||
|
||||
IRepository<FamilyPersonEntity> repositoryPerson = repository.GetRepository<IRepository<FamilyPersonEntity>>();
|
||||
FamilyPersonEntity familyPerson;
|
||||
|
||||
familyPerson = repositoryPerson.DetachedEntities.Where(x => x.PersonId == d.AncestorPersonId).FirstOrDefault()!;
|
||||
familyPerson.TreeId = d.TreeId;
|
||||
repositoryPerson.UpdateNow(familyPerson);
|
||||
|
||||
var currentPerson = d.AncestorPersonId;
|
||||
|
||||
if (data.CurrentPerson != null && data.CurrentPerson.FamilyPerson != null && !string.IsNullOrEmpty(data.CurrentPerson.FamilyPerson.PersonId))
|
||||
@@ -268,16 +298,74 @@ namespace CloudBuilder.Master.Service
|
||||
return FindByCurrentPerson(d.TreeId, currentPerson);
|
||||
}
|
||||
|
||||
|
||||
public void InsertFamilyTreePermission(FamilyTreePermissionEntity treePermissionEntity)
|
||||
{
|
||||
IRepository<FamilyTreePermissionEntity> repositoryPermission = repository.GetRepository<IRepository<FamilyTreePermissionEntity>>();
|
||||
repositoryPermission.InsertNow(treePermissionEntity);
|
||||
}
|
||||
|
||||
[PermissionOperate(name: MasterPermissionPolicy.FamilyTree, operate: Operate.Find)]
|
||||
[UnitOfWork]
|
||||
public void RequestFamilyTreePermission(string treeId, string currentPersonId)
|
||||
{
|
||||
IRepository<FamilyTreePermissionEntity> repositoryPermission = repository.GetRepository<IRepository<FamilyTreePermissionEntity>>();
|
||||
FamilyTreePermissionEntity treePermissionEntity = repositoryPermission.DetachedEntities.Where(x => x.TreeId == treeId && x.PersonId == currentPersonId && service.UserId == x.UserName).FirstOrDefault()!;
|
||||
|
||||
if (treePermissionEntity != null) return;
|
||||
|
||||
treePermissionEntity = new FamilyTreePermissionEntity();
|
||||
treePermissionEntity.TreeId = treeId;
|
||||
treePermissionEntity.PersonId = currentPersonId;
|
||||
treePermissionEntity.UserName = service.UserId;
|
||||
treePermissionEntity.ManagerIndc = YesNoPolicy.NO;
|
||||
treePermissionEntity.ValidIndc = YesNoPolicy.NO;
|
||||
InsertFamilyTreePermission(treePermissionEntity);
|
||||
}
|
||||
|
||||
[PermissionOperate(name: MasterPermissionPolicy.FamilyTree, operate: Operate.Find)]
|
||||
[UnitOfWork]
|
||||
public void ApproveFamilyTreePermission(string treeId, string currentPersonId, string userName, string managerIndc)
|
||||
{
|
||||
IRepository<FamilyTreePermissionEntity> repositoryPermission = repository.GetRepository<IRepository<FamilyTreePermissionEntity>>();
|
||||
FamilyTreePermissionEntity treePermissionEntity = repositoryPermission.DetachedEntities.Where(x => x.TreeId == treeId && x.PersonId == currentPersonId && userName == x.UserName).FirstOrDefault()!;
|
||||
if (treePermissionEntity == null) return;
|
||||
|
||||
treePermissionEntity.ManagerIndc = managerIndc;
|
||||
treePermissionEntity.ValidIndc = YesNoPolicy.YES;
|
||||
|
||||
repositoryPermission.UpdateNow(treePermissionEntity);
|
||||
}
|
||||
|
||||
[PermissionOperate(name: MasterPermissionPolicy.FamilyTree, operate: Operate.Find)]
|
||||
[UnitOfWork]
|
||||
public void RejectFamilyTreePermission(string treeId, string currentPersonId, string userName)
|
||||
{
|
||||
IRepository<FamilyTreePermissionEntity> repositoryPermission = repository.GetRepository<IRepository<FamilyTreePermissionEntity>>();
|
||||
FamilyTreePermissionEntity treePermissionEntity = repositoryPermission.DetachedEntities.Where(x => x.TreeId == treeId && x.PersonId == currentPersonId && userName == x.UserName).FirstOrDefault()!;
|
||||
if (treePermissionEntity == null) return;
|
||||
|
||||
repositoryPermission.DeleteNow(treePermissionEntity);
|
||||
}
|
||||
|
||||
private void SaveSpouseMaps(string personId, FamilyTreeSpouseMapViewEntity[] maps)
|
||||
{
|
||||
IRepository<FamilyTreeSpouseMapViewEntity> repositoryMapView = repository.GetRepository<IRepository<FamilyTreeSpouseMapViewEntity>>();
|
||||
IRepository<FamilyTreeSpouseMapEntity> repositoryMap = repository.GetRepository<IRepository<FamilyTreeSpouseMapEntity>>();
|
||||
IRepository<FamilyPersonEntity> repositoryPerson = repository.GetRepository<IRepository<FamilyPersonEntity>>();
|
||||
FamilyPersonEntity familyPerson;
|
||||
|
||||
FamilyTreeSpouseMapViewEntity[] olds = repositoryMapView.Entities.Where(x => x.PersonId == personId).ToArray();
|
||||
if (olds != null && olds.Length > 0)
|
||||
{
|
||||
foreach (FamilyTreeSpouseMapViewEntity old in olds)
|
||||
{
|
||||
familyPerson = repositoryPerson.DetachedEntities.Where(x => x.PersonId == old.PersonId).FirstOrDefault()!;
|
||||
if (familyPerson != null)
|
||||
{
|
||||
repositoryPerson.DeleteNow(familyPerson);
|
||||
}
|
||||
|
||||
repositoryMap.DeleteNow(new FamilyTreeSpouseMapEntity()
|
||||
{
|
||||
TreeId = old.TreeId,
|
||||
@@ -289,8 +377,16 @@ namespace CloudBuilder.Master.Service
|
||||
|
||||
if (maps == null || maps.Length == 0) return;
|
||||
int i = 1;
|
||||
|
||||
foreach (FamilyTreeSpouseMapViewEntity map in maps.OrderBy(x => x.Orderby).ToArray())
|
||||
{
|
||||
familyPerson = repositoryPerson.DetachedEntities.Where(x => x.PersonId == map.PersonId && string.IsNullOrEmpty(x.TreeId)).FirstOrDefault()!;
|
||||
if (familyPerson != null)
|
||||
{
|
||||
familyPerson.TreeId = map.TreeId;
|
||||
repositoryPerson.Update(familyPerson);
|
||||
}
|
||||
|
||||
repositoryMap.InsertNow(new FamilyTreeSpouseMapEntity()
|
||||
{
|
||||
TreeId = map.TreeId,
|
||||
@@ -309,55 +405,25 @@ namespace CloudBuilder.Master.Service
|
||||
}
|
||||
}
|
||||
|
||||
private void SaveParentMaps(string personId, FamilyTreeChildrenMapViewEntity[] maps)
|
||||
{
|
||||
IRepository<FamilyTreeChildrenMapViewEntity> repositoryMapView = repository.GetRepository<IRepository<FamilyTreeChildrenMapViewEntity>>();
|
||||
IRepository<FamilyTreeChildrenMapEntity> repositoryMap = repository.GetRepository<IRepository<FamilyTreeChildrenMapEntity>>();
|
||||
FamilyTreeChildrenMapViewEntity[] olds = repositoryMapView.Entities.Where(x => x.ChildrenId == personId).ToArray();
|
||||
if (olds != null && olds.Length > 0)
|
||||
{
|
||||
foreach (FamilyTreeChildrenMapViewEntity old in olds)
|
||||
{
|
||||
repositoryMap.DeleteNow(new FamilyTreeChildrenMapEntity()
|
||||
{
|
||||
TreeId = old.TreeId,
|
||||
ChildrenId = personId,
|
||||
PersonId = old.PersonId
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
if (maps == null || maps.Length == 0) return;
|
||||
|
||||
int maxOrderBy = 0;
|
||||
foreach (FamilyTreeChildrenMapViewEntity map in maps)
|
||||
{
|
||||
FamilyTreeChildrenMapViewEntity[] oldMaps = repositoryMapView.Entities.Where(x => x.PersonId == map.PersonId).ToArray();
|
||||
|
||||
if (oldMaps != null && oldMaps.Count() > 0) maxOrderBy = oldMaps.Max(x => x.Orderby);
|
||||
|
||||
repositoryMap.InsertNow(new FamilyTreeChildrenMapEntity()
|
||||
{
|
||||
TreeId = map.TreeId,
|
||||
ChildrenId = personId,
|
||||
PersonId = map.PersonId,
|
||||
Orderby = oldMaps == null ? 1 : maxOrderBy + 1
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
private void SaveSonMaps(string personId, FamilyTreeChildrenMapViewEntity[] maps)
|
||||
{
|
||||
IRepository<FamilyTreeChildrenMapViewEntity> repositoryMapView = repository.GetRepository<IRepository<FamilyTreeChildrenMapViewEntity>>();
|
||||
IRepository<FamilyTreeChildrenMapEntity> repositoryMap = repository.GetRepository<IRepository<FamilyTreeChildrenMapEntity>>();
|
||||
IRepository<FamilyPersonEntity> repositoryPerson = repository.GetRepository<IRepository<FamilyPersonEntity>>();
|
||||
FamilyPersonEntity familyPerson;
|
||||
|
||||
FamilyTreeChildrenMapViewEntity[] olds = repositoryMapView.Entities.Where(x => x.PersonId == personId).ToArray();
|
||||
if (olds != null && olds.Length > 0)
|
||||
{
|
||||
foreach (FamilyTreeChildrenMapViewEntity old in olds)
|
||||
{
|
||||
familyPerson = repositoryPerson.DetachedEntities.Where(x => x.PersonId == old.PersonId).FirstOrDefault()!;
|
||||
if (familyPerson != null)
|
||||
{
|
||||
repositoryPerson.DeleteNow(familyPerson);
|
||||
}
|
||||
|
||||
repositoryMap.DeleteNow(new FamilyTreeChildrenMapEntity()
|
||||
{
|
||||
TreeId = old.TreeId,
|
||||
@@ -369,8 +435,16 @@ namespace CloudBuilder.Master.Service
|
||||
|
||||
if (maps == null || maps.Length == 0) return;
|
||||
int i = 1;
|
||||
|
||||
foreach (FamilyTreeChildrenMapViewEntity map in maps.OrderBy(x => x.Orderby).ToArray())
|
||||
{
|
||||
familyPerson = repositoryPerson.DetachedEntities.Where(x => x.PersonId == map.PersonId && string.IsNullOrEmpty(x.TreeId)).FirstOrDefault()!;
|
||||
if (familyPerson != null)
|
||||
{
|
||||
familyPerson.TreeId = map.TreeId;
|
||||
repositoryPerson.Update(familyPerson);
|
||||
}
|
||||
|
||||
repositoryMap.InsertNow(new FamilyTreeChildrenMapEntity()
|
||||
{
|
||||
TreeId = map.TreeId,
|
||||
@@ -439,6 +513,15 @@ namespace CloudBuilder.Master.Service
|
||||
if (ent == null) return;
|
||||
repository.DeleteNow(ent);
|
||||
|
||||
IRepository<FamilyPersonEntity> repositoryPerson = repository.GetRepository<IRepository<FamilyPersonEntity>>();
|
||||
FamilyPersonEntity familyPerson;
|
||||
|
||||
familyPerson = repositoryPerson.DetachedEntities.Where(x => x.PersonId == ent.AncestorPersonId).FirstOrDefault()!;
|
||||
if (familyPerson != null)
|
||||
{
|
||||
repositoryPerson.DeleteNow(familyPerson);
|
||||
}
|
||||
|
||||
DeleteSpouses(ent.AncestorPersonId);
|
||||
DeleteChildrens(ent.AncestorPersonId);
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user