Constellation.Foundation.ModelMapping 9.0.26.31767

Constellation is a collection of utilities for .NET CMS implementers.

The Foundation.ModelMapping library is inspired by AutoMapper and is designed to provide a quick, non-ORM method of
mapping Sitecore Items to ViewModels. String properties on your ViewModel will be mapped to FieldRendered values from fields with the
same names. Integer and DateTime property types can also be handled automatically, although you will not get page editor support
for these types. There are a number of Attributes that you can assign to your ViewModel's properties to change the behavior of the Mapper.

Usage: TModel viewModel = ModelMapper.MapItemToNew<TModel>(sourceItem);
Or: TModel viewmodel = item.MapToNew<TModel>();
Or: ModelMapper.MapTo(item, model);

Constraints:
- Your ViewModel must have a public, parameterless constructor.
- Only Writable, Public Instance properties will be mapped.
- Within Sitecore, your field names can be human-legible. ModelMapper will attempt to convert the field name to a valid Property name. Simpler names work best.
You can use the Field's Display Name for better human legibility and keep the Field's actual name closer to a legit C# entity name.
- ViewModel properties can be:
- - Strings
- - HtmlStrings (recommended for RichText and FieldRenderer)
- - Integers
- - Decimals
- - DateTimes
- - Other ViewModels (recommended for DropLink, DropTree)
- - ICollection Generics of other ViewModels (recommended for Multilist, Treelist)
- - Random Plain Old Classes as long as they are Where T: class, new()

The following Model properties are mapped to Item properties rather than Item fields:
- ID - Maps to the Item.ID - Make sure you use Sitecore.Data.ID as the property type.
- Name - Maps to the Item.Name
- DisplayName - Maps to Item.DisplayName
- Url - Should be a string, not a Uri. Causes the current context LinkManager to generate a Url for the Item.
- Parent - Maps to the ViewModel you provide based on the Item.Parent.

Support for XML Field Attributes
- ImageField.Alt - use Model.FieldNameAlt
- ImageField.Height - use Model.FieldNameHeight
- GeneralLink.Target - use Model.FieldNameTarget
- etc.

Support for LinkField.TargetItem - use Model.FieldNameTargetItem and supply a class with public properties and a parameterless constructor.
Support for MultilistField.GetItems - use Model.FieldName and supply a generic ICollection<T> where "T" is new() and has properties you can map.

Now with the ability to map ICollection<Item> to ICollection<TModel>

Extensible! See the Constellation.Foundation.ModelMapping.config file to change the way Fields are processed.

Configured for use with Sitecore 9.0.
Requires Sitecore 9.0 NuGet packages, available here: https://sitecore.myget.org/F/sc-packages/api/v3/index.json

There is a newer version of this package available.
See the version list below for details.
Install-Package Constellation.Foundation.ModelMapping -Version 9.0.26.31767
dotnet add package Constellation.Foundation.ModelMapping --version 9.0.26.31767
<PackageReference Include="Constellation.Foundation.ModelMapping" Version="9.0.26.31767" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Constellation.Foundation.ModelMapping --version 9.0.26.31767
The NuGet Team does not provide support for this client. Please contact its maintainers for support.

Release Notes

Mapping plans are now specific to Model type and Item template ID to allow for mapping different Item types to the same Model.

This package is not used by any popular GitHub repositories.

Version History

Version Downloads Last updated
9.1.7.27091 0 12/6/2019
9.1.6.15984 148 6/4/2019
9.1.5.27908 93 6/3/2019
9.1.4.28433 91 5/28/2019
9.1.3.23444 124 4/11/2019
9.1.2.24353 141 3/6/2019
9.1.1.23876 158 1/18/2019
9.1.0.16301 192 12/7/2018
9.0.33.27934 146 10/25/2018
9.0.32.25356 137 10/20/2018
9.0.31.30043 142 10/19/2018
9.0.30.20651 140 10/18/2018
9.0.30.16759 146 10/18/2018
9.0.29.16036 145 10/18/2018
9.0.28.29823 167 10/17/2018
9.0.27.22655 143 10/16/2018
9.0.26.31767 144 10/14/2018
9.0.25.30713 135 10/14/2018
9.0.24.28294 167 10/14/2018
9.0.23.20463 220 7/23/2018
9.0.22.29260 222 7/3/2018
9.0.21.16778 249 5/31/2018
9.0.20.26586 219 5/25/2018
9.0.19.21403 252 5/18/2018
9.0.18.17384 282 2/20/2018
9.0.17.20638 267 2/12/2018
9.0.17.17874 259 2/12/2018
9.0.16.23947 239 1/12/2018
9.0.15.30124 261 1/11/2018
9.0.14.22754 252 1/11/2018
9.0.13.26948 218 1/10/2018
9.0.13.20538 259 1/10/2018
9.0.12.19321 262 1/10/2018
9.0.11.23261 258 1/8/2018
9.0.10.18305 267 12/8/2017
9.0.9.27813 318 12/6/2017
9.0.9.24928 252 12/6/2017
9.0.9.19108 243 12/6/2017
9.0.8.28378 224 12/5/2017
9.0.7.25385 219 12/5/2017
9.0.6.28191 212 12/4/2017
9.0.5.22638 230 12/3/2017
9.0.4.21382 224 12/3/2017
9.0.4.21146 213 12/3/2017
9.0.3.27874 254 12/1/2017
9.0.1.27414 213 11/30/2017
9.0.1.18427 225 11/30/2017
9.0.0.35644 250 11/29/2017
9.0.0.30418 222 11/29/2017
9.0.0.27220 217 11/29/2017
Show less