Entity GetEntityByParyId(EntityReference partyid, out string[] emailFieldsNames) { emailFieldsNames = MetadataEmails.GetEmails(_service, partyid.LogicalName); if (emailFieldsNames == null) { return(null); } var entityFrom = _service.Retrieve(partyid.LogicalName, partyid.Id, new ColumnSet(emailFieldsNames)); return(entityFrom); }
bool GetFrom(Entity email) { var from = email.GetAttributeValue <EntityCollection>("from"); if (from != null & from.Entities != null & from.Entities.Any()) { var emailsend = from.Entities.FirstOrDefault(); var fromPartyId = emailsend.GetAttributeValue <EntityReference>("partyid"); var emailFieldsNames = MetadataEmails.GetEmails(_service, fromPartyId.LogicalName); if (emailFieldsNames == null) { return(true); } var entityFrom = _service.Retrieve(fromPartyId.LogicalName, fromPartyId.Id, new ColumnSet(emailFieldsNames)); if (entityFrom == null) { return(true); } foreach (var fieldsName in emailFieldsNames) { var emailaddress = entityFrom.GetAttributeValue <string>(fieldsName); if (!String.IsNullOrWhiteSpace(emailaddress) && emailaddress == _configemail.ReplyEmail) { _emailModel.message.from_name = _configemail.ReplayLabel; _emailModel.message.reply_to = emailaddress; return(false); } } return(true); } else { return(true); } }