Constellation.Foundation.ModelMapping 9.1.6.15984

VERSION 9.1 is compiled for Sitecore 9.1 use and will not work on earlier versions.
Requires Sitecore 9.1
Requires .NET 4.7.1

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:
var modelMapper = (IModelMapper)ServiceLocator.ServiceProvider.GetService(typeof(IModelMapper)); // Dependency Injection of an IModelMapper is supported

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

When using Item or ItemList extensions for mapping, the context IModelMapper is requested from the ServiceLocator, so any moc objects you use for testing are supported with these extension methods.

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.

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

Install-Package Constellation.Foundation.ModelMapping -Version 9.1.6.15984
dotnet add package Constellation.Foundation.ModelMapping --version 9.1.6.15984
<PackageReference Include="Constellation.Foundation.ModelMapping" Version="9.1.6.15984" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Constellation.Foundation.ModelMapping --version 9.1.6.15984
The NuGet Team does not provide support for this client. Please contact its maintainers for support.

Release Notes

SVG image mapping now supports mapping to string or HtmlString. Appropriate map status and logging now present.

This package is not used by any popular GitHub repositories.

Version History

Version Downloads Last updated
9.1.6.15984 135 6/4/2019
9.1.5.27908 91 6/3/2019
9.1.4.28433 88 5/28/2019
9.1.3.23444 122 4/11/2019
9.1.2.24353 139 3/6/2019
9.1.1.23876 157 1/18/2019
9.1.0.16301 189 12/7/2018
9.0.33.27934 143 10/25/2018
9.0.32.25356 133 10/20/2018
9.0.31.30043 139 10/19/2018
9.0.30.20651 138 10/18/2018
9.0.30.16759 143 10/18/2018
9.0.29.16036 142 10/18/2018
9.0.28.29823 164 10/17/2018
9.0.27.22655 138 10/16/2018
9.0.26.31767 141 10/14/2018
9.0.25.30713 131 10/14/2018
9.0.24.28294 163 10/14/2018
9.0.23.20463 213 7/23/2018
9.0.22.29260 216 7/3/2018
9.0.21.16778 241 5/31/2018
9.0.20.26586 210 5/25/2018
9.0.19.21403 246 5/18/2018
9.0.18.17384 274 2/20/2018
9.0.17.20638 259 2/12/2018
9.0.17.17874 253 2/12/2018
9.0.16.23947 231 1/12/2018
9.0.15.30124 255 1/11/2018
9.0.14.22754 243 1/11/2018
9.0.13.26948 212 1/10/2018
9.0.13.20538 251 1/10/2018
9.0.12.19321 253 1/10/2018
9.0.11.23261 249 1/8/2018
9.0.10.18305 258 12/8/2017
9.0.9.27813 310 12/6/2017
9.0.9.24928 244 12/6/2017
9.0.9.19108 237 12/6/2017
9.0.8.28378 219 12/5/2017
9.0.7.25385 212 12/5/2017
9.0.6.28191 207 12/4/2017
9.0.5.22638 223 12/3/2017
9.0.4.21382 217 12/3/2017
9.0.4.21146 209 12/3/2017
9.0.3.27874 247 12/1/2017
9.0.1.27414 208 11/30/2017
9.0.1.18427 221 11/30/2017
9.0.0.35644 244 11/29/2017
9.0.0.30418 217 11/29/2017
9.0.0.27220 211 11/29/2017