public static Models.Person MapFrom(this External.LoanObject loanObject, PersonFieldList fields, Models.Person person = null)
        {
            bool changed = false;

            changed = changed || loanObject.ContainsValues(fields.FirstName, fields.LastName, fields.DateOfBirth);


            if (changed)
            {
                if (person == null)
                {
                    person = new Person();
                }

                MappingUtil.SetValue(loanObject, fields.FirstName, (val) => person.FirstName     = val, person.FirstName);
                MappingUtil.SetValue(loanObject, fields.LastName, (val) => person.LastName       = val, person.LastName);
                MappingUtil.SetValue(loanObject, fields.DateOfBirth, (val) => person.DateOfBirth = val, person.DateOfBirth);
            }

            return(person);
        }
 public static void MapTo(this Models.Person person, External.LoanObject loanObject, PersonFieldList fields)
 {
     loanObject.MapValue(fields.FirstName, person.FirstName);
     loanObject.MapValue(fields.LastName, person.LastName);
     loanObject.MapValue(fields.DateOfBirth, person.DateOfBirth);
 }