public dynamic Create(MailingHistoryResult mailingHistory, List <string> listofFields) { List <string> lstOfFieldsToWorkWith = new List <string>(listofFields); if (!lstOfFieldsToWorkWith.Any()) { return(mailingHistory); } else { ExpandoObject objectToReturn = new ExpandoObject(); foreach (var field in lstOfFieldsToWorkWith) { if (field == "") { return(mailingHistory); } var propertyInfo = mailingHistory.GetType() .GetProperty(field, BindingFlags.IgnoreCase | BindingFlags.Public | BindingFlags.Instance); if (propertyInfo != null) { var fieldValue = propertyInfo .GetValue(mailingHistory, null); ((IDictionary <String, Object>)objectToReturn).Add(field, fieldValue); } } return(objectToReturn); } }
public List <MailingHistoryResult> BuildMailingHistory(DataSet ds) { List <MailingHistoryResult> mailHisotryList = new List <MailingHistoryResult>(); try { var table = ds.Tables[0]; foreach (DataRow row in table.Rows) { MailingHistoryResult mailing = new MailingHistoryResult(); mailing.MailingRef = row["MAILING_REF"]?.ToString(); mailing.SelectRefNumber = row["SELECT_REF_NUMBER"]?.ToString(); if (row["MAILED_DATE"] == null) { mailing.MailedDate = null; } else { mailing.MailedDate = DateTime.Parse(row["MAILED_DATE"].ToString()); } mailing.MailedSourceCode = row["MAILED_SOURCE_CODE"]?.ToString(); mailing.LetterCode = row["LETTER_CODE"]?.ToString(); mailing.Channel = row["CHANNEL"]?.ToString(); mailing.CompanyCode = row["COMPANY_CODE"]?.ToString(); mailing.SelectDescription = row["SELECT_DESCRIPTION"]?.ToString(); mailing.ProductCode = row["PRODUCT_CODE"]?.ToString(); mailHisotryList.Add(mailing); } } catch (Exception ex) { _logger.Info("MailingHistoryRepository.BuildMailingHistory:" + "ErrorTag: " + ErrorTagProvider.ErrorTagDatabase + " -- " + ex.Message, ex); throw new Exception(string.Format(DatabaseMessage.DatabaseException, ErrorTagProvider.ErrorTagDatabase)); } return(mailHisotryList); }