Constellation.Foundation.ModelMapping 9.1.7.27091

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.

There is a newer version of this package available.
See the version list below for details.
Install-Package Constellation.Foundation.ModelMapping -Version 9.1.7.27091
dotnet add package Constellation.Foundation.ModelMapping --version 9.1.7.27091
<PackageReference Include="Constellation.Foundation.ModelMapping" Version="9.1.7.27091" />
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.7.27091
The NuGet Team does not provide support for this client. Please contact its maintainers for support.

Release Notes

Fix to config file which had a misspelling of the Sitecore field type "Datetime", resulting in failure to map Datetime fields using the DateFieldMapper.

This package is not used by any popular GitHub repositories.

Version History

Version Downloads Last updated
9.1.11.16238 62 2/28/2020
9.1.10.19264 102 12/20/2019
9.1.9.30419 64 12/19/2019
9.1.8.25631 53 12/9/2019
9.1.7.27091 59 12/6/2019
9.1.6.15984 195 6/4/2019
9.1.5.27908 120 6/3/2019
9.1.4.28433 118 5/28/2019
9.1.3.23444 151 4/11/2019
9.1.2.24353 168 3/6/2019
9.1.1.23876 186 1/18/2019
9.1.0.16301 219 12/7/2018
9.0.33.27934 172 10/25/2018
9.0.32.25356 164 10/20/2018
9.0.31.30043 168 10/19/2018
9.0.30.20651 167 10/18/2018
9.0.30.16759 173 10/18/2018
9.0.29.16036 171 10/18/2018
9.0.28.29823 193 10/17/2018
9.0.27.22655 169 10/16/2018
9.0.26.31767 170 10/14/2018
9.0.25.30713 161 10/14/2018
9.0.24.28294 193 10/14/2018
9.0.23.20463 263 7/23/2018
9.0.22.29260 267 7/3/2018
9.0.21.16778 296 5/31/2018
9.0.20.26586 266 5/25/2018
9.0.19.21403 300 5/18/2018
9.0.18.17384 330 2/20/2018
9.0.17.20638 312 2/12/2018
9.0.17.17874 306 2/12/2018
9.0.16.23947 283 1/12/2018
9.0.15.30124 306 1/11/2018
9.0.14.22754 296 1/11/2018
9.0.13.26948 256 1/10/2018
9.0.13.20538 304 1/10/2018
9.0.12.19321 308 1/10/2018
9.0.11.23261 304 1/8/2018
9.0.10.18305 314 12/8/2017
9.0.9.27813 365 12/6/2017
9.0.9.24928 299 12/6/2017
9.0.9.19108 287 12/6/2017
9.0.8.28378 264 12/5/2017
9.0.7.25385 258 12/5/2017
9.0.6.28191 250 12/4/2017
9.0.5.22638 271 12/3/2017
9.0.4.21382 262 12/3/2017
9.0.4.21146 252 12/3/2017
9.0.3.27874 293 12/1/2017
9.0.1.27414 252 11/30/2017
9.0.1.18427 264 11/30/2017
9.0.0.35644 289 11/29/2017
9.0.0.30418 262 11/29/2017
9.0.0.27220 255 11/29/2017