private Officer GetManager(List <OfficerEntity> staffs, OfficerEntity stf) { if (stf.Manager == null) { return(null); } var mng = stf.Manager; var officer = EntityConvertorUtility.ConvertOfficer(mng); return(officer); }
public IEnumerable <Assignment> ListAssignments(bool withDetail) { List <Assignment> list = new List <Assignment>(); using (var ctx = new CaseHandlingDatabaseContext()) { List <AssignmentEntity> results = (from co in ctx.AssignmentEntities select co).ToList(); foreach (var res in results) { var co = EntityConvertorUtility.ConvertCaseOfficer(res); list.Add(co); if (withDetail) { if (!res.CaseReference.IsLoaded) { res.CaseReference.Load(); } co.Case = EntityConvertorUtility.ConvertCaseInfo(res.Case); if (!res.OfficerReference.IsLoaded) { res.OfficerReference.Load(); } co.Officer = EntityConvertorUtility.ConvertOfficer(res.Officer); // loads the officer hierarchy to management Officer officer = co.Officer; OfficerEntity oe = res.Officer; while (oe.ManagerReference != null) { if (!oe.ManagerReference.IsLoaded) { oe.ManagerReference.Load(); } if (oe.Manager == null) { break; } officer.Manager = EntityConvertorUtility.ConvertOfficer(oe.Manager); oe = oe.Manager; officer = officer.Manager; } } } } return(list); }
private void Fill(List <Officer> list, List <OfficerEntity> staffs) { foreach (var stf in staffs) { var officer = EntityConvertorUtility.ConvertOfficer(stf); officer.Manager = GetManager(staffs, stf); Officer mng = officer.Manager; while (mng != null) { mng.Manager = GetManager(staffs, staffs.First(x => x.ID == mng.Identifier)); mng = mng.Manager; } list.Add(officer); } foreach (var officer in list) { FillChilds(list, officer, officer); } }