Example #1
0
        private T GetHydratedDTO <T>(RDO objectRdo, ObjectFieldsDepthLevel depthLevel)
            where T : BaseDto, new()
        {
            T dto = objectRdo.ToHydratedDto <T>();

            PopulateChoices(dto, objectRdo);
            switch (depthLevel)
            {
            case ObjectFieldsDepthLevel.OnlyParentObject:
                break;

            case ObjectFieldsDepthLevel.FirstLevelOnly:
                PopulateChildrenRecursively <T>(dto, objectRdo, ObjectFieldsDepthLevel.OnlyParentObject);
                break;

            case ObjectFieldsDepthLevel.FullyRecursive:
                PopulateChildrenRecursively <T>(dto, objectRdo, ObjectFieldsDepthLevel.FullyRecursive);
                break;

            default:
                throw new ArgumentOutOfRangeException(nameof(depthLevel));
            }

            return(dto);
        }
Example #2
0
        internal T GetDTO <T>(int artifactID, ObjectFieldsDepthLevel depthLevel)
            where T : BaseDto, new()
        {
            RDO objectRdo = GetRdo(artifactID);

            switch (depthLevel)
            {
            case ObjectFieldsDepthLevel.FirstLevelOnly:
                return(objectRdo.ToHydratedDto <T>());

            case ObjectFieldsDepthLevel.FullyRecursive:
                T dto = objectRdo.ToHydratedDto <T>();
                PopulateChildrenRecursively <T>(dto, objectRdo, depthLevel);
                return(dto);

            default:
                return(objectRdo.ToHydratedDto <T>());
            }
        }
Example #3
0
        public T GetRelativityObject <T>(int artifactId, ObjectFieldsDepthLevel depthLevel)
            where T : BaseDto, new()
        {
            RDO objectRdo = GetRdo(artifactId);

            T theObject = objectRdo.ToHydratedDto <T>();

            if (depthLevel != ObjectFieldsDepthLevel.OnlyParentObject)
            {
                PopulateChildrenRecursively <T>(theObject, objectRdo, depthLevel);
            }

            return(theObject);
        }