Constellation.Foundation.ModelMapping
9.0.12.19321
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.
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.
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
See the version list below for details.
Install-Package Constellation.Foundation.ModelMapping -Version 9.0.12.19321
dotnet add package Constellation.Foundation.ModelMapping --version 9.0.12.19321
<PackageReference Include="Constellation.Foundation.ModelMapping" Version="9.0.12.19321" />
paket add Constellation.Foundation.ModelMapping --version 9.0.12.19321
Release Notes
Gracefully handle being handed a null source or collection for casting.
Dependencies
-
- Constellation.Foundation.Data (>= 9.0.1.20794)
GitHub Usage
This package is not used by any popular GitHub repositories.
Version History
Version | Downloads | Last updated | ||
---|---|---|---|---|
9.1.8.25631 | 0 | 12/9/2019 | ||
9.1.7.27091 | 17 | 12/6/2019 | ||
9.1.6.15984 | 153 | 6/4/2019 | ||
9.1.5.27908 | 95 | 6/3/2019 | ||
9.1.4.28433 | 93 | 5/28/2019 | ||
9.1.3.23444 | 125 | 4/11/2019 | ||
9.1.2.24353 | 142 | 3/6/2019 | ||
9.1.1.23876 | 159 | 1/18/2019 | ||
9.1.0.16301 | 193 | 12/7/2018 | ||
9.0.33.27934 | 147 | 10/25/2018 | ||
9.0.32.25356 | 138 | 10/20/2018 | ||
9.0.31.30043 | 143 | 10/19/2018 | ||
9.0.30.20651 | 141 | 10/18/2018 | ||
9.0.30.16759 | 147 | 10/18/2018 | ||
9.0.29.16036 | 146 | 10/18/2018 | ||
9.0.28.29823 | 168 | 10/17/2018 | ||
9.0.27.22655 | 144 | 10/16/2018 | ||
9.0.26.31767 | 145 | 10/14/2018 | ||
9.0.25.30713 | 136 | 10/14/2018 | ||
9.0.24.28294 | 168 | 10/14/2018 | ||
9.0.23.20463 | 221 | 7/23/2018 | ||
9.0.22.29260 | 223 | 7/3/2018 | ||
9.0.21.16778 | 250 | 5/31/2018 | ||
9.0.20.26586 | 220 | 5/25/2018 | ||
9.0.19.21403 | 253 | 5/18/2018 | ||
9.0.18.17384 | 283 | 2/20/2018 | ||
9.0.17.20638 | 268 | 2/12/2018 | ||
9.0.17.17874 | 260 | 2/12/2018 | ||
9.0.16.23947 | 240 | 1/12/2018 | ||
9.0.15.30124 | 262 | 1/11/2018 | ||
9.0.14.22754 | 253 | 1/11/2018 | ||
9.0.13.26948 | 219 | 1/10/2018 | ||
9.0.13.20538 | 260 | 1/10/2018 | ||
9.0.12.19321 | 263 | 1/10/2018 | ||
9.0.11.23261 | 259 | 1/8/2018 | ||
9.0.10.18305 | 268 | 12/8/2017 | ||
9.0.9.27813 | 319 | 12/6/2017 | ||
9.0.9.24928 | 253 | 12/6/2017 | ||
9.0.9.19108 | 244 | 12/6/2017 | ||
9.0.8.28378 | 225 | 12/5/2017 | ||
9.0.7.25385 | 220 | 12/5/2017 | ||
9.0.6.28191 | 213 | 12/4/2017 | ||
9.0.5.22638 | 231 | 12/3/2017 | ||
9.0.4.21382 | 225 | 12/3/2017 | ||
9.0.4.21146 | 214 | 12/3/2017 | ||
9.0.3.27874 | 255 | 12/1/2017 | ||
9.0.1.27414 | 214 | 11/30/2017 | ||
9.0.1.18427 | 226 | 11/30/2017 | ||
9.0.0.35644 | 251 | 11/29/2017 | ||
9.0.0.30418 | 223 | 11/29/2017 | ||
9.0.0.27220 | 218 | 11/29/2017 |