private static List <ContactTypeLookUpData> CreateRoleHierarchy(List <MEContactTypeLookup> flattenedRoles, string parentId) { var docsToAdd = new List <MEContactTypeLookup>(flattenedRoles.Where(r => r.ParentId.ToString() == parentId.ToString())); var roleHierarchy = new List <ContactTypeLookUpData>(); foreach (var flattenedRole in docsToAdd) { var role = new ContactTypeLookUpData { Id = flattenedRole.Id.ToString(), Name = flattenedRole.Name, Role = flattenedRole.Role, Group = (ContactLookUpGroupType)flattenedRole.GroupId, ParentId = flattenedRole.ParentId.ToString() }; if (flattenedRoles.Any(r => r.ParentId.ToString() == flattenedRole.Id.ToString())) { role.Children = CreateRoleHierarchy(flattenedRoles, flattenedRole.Id.ToString()); } roleHierarchy.Add(role); } return(roleHierarchy); }
public void ContactTypeLookUpParentIdShouldBeNull_Test() { ContactTypeLookUpData cData = new ContactTypeLookUpData() { Id = "56ea0c2c64e91cf53bbfca5f", Name = "Doctor", Role = "Doctor(M.D)", CreatedOn = DateTime.UtcNow, Group = ContactLookUpGroupType.CareTeam, ParentId = "000000000000000000000000" }; var ct = Mapper.Map <ContactTypeLookUp>(cData); Assert.IsNull(ct.ParentId); }
public GetContactTypeLookUpDataResponse GetContactTypeLookUps(DTO.GetContactTypeLookUpDataRequest request) { var response = new GetContactTypeLookUpDataResponse(); List <MEContactTypeLookup> data = null; var contactTypeLookupHierarchy = new List <ContactTypeLookUpData>(); var repository = _factory.GetContactTypeLookUpRepository(request, RepositoryType.ContactTypeLookUp); if (repository == null) { throw new Exception("The repository is null"); } data = (List <MEContactTypeLookup>)repository.GetContactTypeLookUps((ContactLookUpGroupType)request.GroupType); if (request.FlattenData) { foreach (var flattenedRole in data) { var role = new ContactTypeLookUpData { Id = flattenedRole.Id.ToString(), Name = flattenedRole.Name, Role = flattenedRole.Role, Group = (ContactLookUpGroupType)flattenedRole.GroupId, ParentId = flattenedRole.ParentId.ToString() }; contactTypeLookupHierarchy.Add(role); } } else { contactTypeLookupHierarchy = CreateRoleHierarchy(data, "000000000000000000000000"); } response.ContactTypeLookUps = contactTypeLookupHierarchy; response.Version = 1.0; return(response); }