private void HandleLinkedObjectMapping()

in src/DeloitteDigital.Atlas/Mapping/FieldMapping/FieldMapper.cs [29:47]


        private void HandleLinkedObjectMapping<TModel>(TModel model, Item item, IPropertyMeta propertyMeta, IItemMapper itemMapper)
        {
            Guid guid;
            if (!Guid.TryParse(item[propertyMeta.MappingName], out guid))
            {
                return;
            }

            var linkedItem = global::Sitecore.Context.Database.GetItem(new ID(guid));
            if (linkedItem == null)
            {
                return;
            }

            var property = model.GetType().GetProperty(propertyMeta.PropertyName);
            var linkedObject = Activator.CreateInstance(property.PropertyType) as dynamic;
            itemMapper.Map(linkedObject, linkedItem);
            property.SetValue(model, linkedObject);
        }