/// <summary> /// Update contact property /// </summary> /// <param name="model"></param> /// <returns></returns> public ResponseModel UpdateContactData(XEditableModel model) { var contact = GetById(model.Pk); if (contact != null) { var property = ReflectionUtilities.GetAllPropertiesOfType(typeof(ContactManageModel)) .FirstOrDefault(p => p.Name.Equals(model.Name, StringComparison.CurrentCultureIgnoreCase)); if (property != null) { object value = model.Value.ToType(property, WorkContext.CurrentTimezone); #region Validate var manageModel = new ContactManageModel(contact); manageModel.SetProperty(model.Name, value); var validationResults = manageModel.ValidateModel(); if (validationResults.Any()) { return(new ResponseModel { Success = false, Message = validationResults.BuildValidationMessages() }); } #endregion contact.SetProperty(model.Name, value); var response = Update(contact); return(response.SetMessage(response.Success ? T("Contact_Message_UpdateContactInfoSuccessfully") : T("Contact_Message_UpdateContactInfoFailure"))); } return(new ResponseModel { Success = false, Message = T("Contact_Message_PropertyNotFound") }); } return(new ResponseModel { Success = false, Message = T("Contact_Message_ObjectNotFound") }); }