private List<string> SetComplexListValues(Business.ManagedItem managedItem, string complexListName, DataTable dtExcelData, DataRow row, bool firstRow) { List<string> errors = new List<string>(); Business.ComplexList complexList = managedItem.FindComplexList(complexListName) as Business.ComplexList; if (complexList != null) { try { if (firstRow) complexList.Clear(); Dictionary<string /*FieldName*/, string /*FieldValue*/> fieldValues = new Dictionary<string, string>(); foreach (DataColumn col in dtExcelData.Columns) { if (SkipColumn(col.ColumnName)) continue; if (fieldValues.ContainsKey(col.ColumnName)) throw new Exception(string.Format("Field {0} is repeated", col.ColumnName)); fieldValues.Add(col.ColumnName, row[col.ColumnName].ToString()); } complexList.Load(fieldValues); } catch (Exception ex) { errors.Add(string.Format("Load of complex list {0} threw exception: {1}.", complexList.Name, ex.Message)); } } else { errors.Add(string.Format("Unable to find complex list {0}.", complexListName)); } if (errors.Count == 0) managedItem.Update(false, Business.Retro.AuditType.Saved); return errors; }
private static void NullOutTerm(Business.ManagedItem managedItem, List<string> undefinedColumns, DataColumn col, Business.Term term) { if (term != null) { term.Clear(); } else { Business.Term complexList = managedItem.FindComplexList(col.ColumnName); if (complexList != null) { complexList.Clear(); } else { undefinedColumns.Add(string.Format("'{0}'", col.ColumnName)); } } }