public static Contact ToDomain(this ContactDTO contact)
 {
     return(new Contact
     {
         ID = contact.ID,
         ContactType = contact.ContactType,
         Name = contact.Name,
         Position = contact.Position,
         HomePhone = contact.HomePhone,
         Mobile = contact.Mobile,
         WorkPhone = contact.WorkPhone,
         ClientID = contact.ClientID,
         CompanyID = contact.CompanyID,
         Concurrency = contact.Concurrency,
         CreateDate = contact.CreateDate,
         ChangeDate = contact.ChangeDate
     });
 }
        public static object ToDataShapeObject(this ContactDTO contact, List <string> lstOfFields)
        {
            if (!lstOfFields.Any())
            {
                return(contact);
            }
            else
            {
                ExpandoObject objectToReturn = new ExpandoObject();
                foreach (var field in lstOfFields)
                {
                    var fieldValue = contact.GetType()
                                     .GetProperty(field, BindingFlags.IgnoreCase | BindingFlags.Public | BindingFlags.Instance)
                                     .GetValue(contact, null);

                    ((IDictionary <string, object>)objectToReturn).Add(field, fieldValue);
                }
                return(objectToReturn);
            }
        }