//----------------------------------------------------------------------- // // Copyright (c) 2009 Deltares. All rights reserved. // // B. Faassen // barry.faassen@deltares.nl // 9-2-2009 // // Defines a mapping class which can be used in the DtoAssemler for // creating mappings between class properties and xml attributes // //----------------------------------------------------------------------- using System; namespace Deltares.Standard { /// /// Importance or the requiremen for a value in the domain object /// before it can be used in a dto /// public enum DtoPropertyImportance { /// /// Use this setting when the property or attribute must have a value /// Required, /// /// Use this setting when the property or attribute value is optional /// Optional } /// /// Defines a mapping class which can be used in the DtoAssemler for creating /// mappings between class properties and xml attributes /// public class DtoPropertyAttriubteMapping { /// /// Holds the property to attribute translation rule /// private Func toAttributeTranslationRule; /// /// Holds the attribute to property translation rule. /// private Func toPropTranslationRule; /// /// Initializes a new instance of the DtoPropertyAttriubteMapping class /// public DtoPropertyAttriubteMapping() { this.Importance = DtoPropertyImportance.Optional; } /// /// Gets or sets the name of the property in the domain object /// public string PropertyName { get; set; } /// /// Gets or sets the name of the xml attribute of the dto /// public string AttributeName { get; set; } /// /// Gets or sets the importance of the value. Required or optional? /// public DtoPropertyImportance Importance { get; set; } /// /// Gets or sets the attribute to property translation rule /// /// /// Use this property when a string value in the xml needs to be specifically translated. This can be useful /// in scenario's when a string value needs to be translated to a specific enum value. /// For example when the enum string value "Belgian Bessel" needs to be translated to the enum type CoordinateSystem.BelgianBessel /// public Func ToPropertyTranslationRule { get { return this.toPropTranslationRule; } set { this.toPropTranslationRule = new Func(value); } } /// /// Gets or sets the property to attribute translation rule /// /// /// Use this property when a property value needs to be translated to a specific string value. /// For example when the enum type CoordinateSystem.BelgianBessel needs to be translated to the enum string value "Belgian Bessel" /// public Func ToAttributeTranslationRule { get { return this.toAttributeTranslationRule; } set { this.toAttributeTranslationRule = new Func(value); } } } }