/// <summary>
        /// Gets the fee line item description.
        /// </summary>
        /// <param name="fee">The fee.</param>
        /// <param name="item">The item.</param>
        /// <param name="quantity">The quantity.</param>
        /// <returns></returns>
        private static string GetFeeLineItemDescription(RegistrationTemplateFee fee, RegistrationTemplateFeeItem item, int quantity)
        {
            var useFeeNameOnly = item.Name.IsNullOrWhiteSpace() || (fee.FeeType == RegistrationFeeType.Single && fee.Name == item.Name);
            var name           = useFeeNameOnly ? fee.Name : $"{fee.Name} - {item.Name}";
            var formattedCost  = item.Cost.FormatAsCurrency().Trim();
            var costDesc       = fee.AllowMultiple ? $"{quantity} @ {formattedCost}" : formattedCost;

            return($"{name} ({costDesc})");
        }
 /// <summary>
 /// Clones this RegistrationTemplateFeeItem object to a new RegistrationTemplateFeeItem object
 /// </summary>
 /// <param name="source">The source.</param>
 /// <param name="deepCopy">if set to <c>true</c> a deep copy is made. If false, only the basic entity properties are copied.</param>
 /// <returns></returns>
 public static RegistrationTemplateFeeItem Clone(this RegistrationTemplateFeeItem source, bool deepCopy)
 {
     if (deepCopy)
     {
         return(source.Clone() as RegistrationTemplateFeeItem);
     }
     else
     {
         var target = new RegistrationTemplateFeeItem();
         target.CopyPropertiesFrom(source);
         return(target);
     }
 }
 /// <summary>
 /// Copies the properties from another RegistrationTemplateFeeItem object to this RegistrationTemplateFeeItem object
 /// </summary>
 /// <param name="target">The target.</param>
 /// <param name="source">The source.</param>
 public static void CopyPropertiesFrom(this RegistrationTemplateFeeItem target, RegistrationTemplateFeeItem source)
 {
     target.Id                        = source.Id;
     target.Cost                      = source.Cost;
     target.ForeignGuid               = source.ForeignGuid;
     target.ForeignKey                = source.ForeignKey;
     target.IsActive                  = source.IsActive;
     target.MaximumUsageCount         = source.MaximumUsageCount;
     target.Name                      = source.Name;
     target.Order                     = source.Order;
     target.RegistrationTemplateFeeId = source.RegistrationTemplateFeeId;
     target.CreatedDateTime           = source.CreatedDateTime;
     target.ModifiedDateTime          = source.ModifiedDateTime;
     target.CreatedByPersonAliasId    = source.CreatedByPersonAliasId;
     target.ModifiedByPersonAliasId   = source.ModifiedByPersonAliasId;
     target.Guid                      = source.Guid;
     target.ForeignId                 = source.ForeignId;
 }