///定义自定义域信息
public class CustomField
{
public Guid Id { get; set; }
public string Name { get; set; }
public string InternalName { get; set; }
public string FullValue { get; set; }
public string Description { get; set; }
public string EntityType { get; set; }
}
/// <summary>
/// 获取自定义域
/// </summary>
/// <param name="projContext"></param>
/// <param name="fieldName"></param>
/// <returns></returns>
private string GetFieldInternalName(ProjectContext projContext, string fieldName)
{
string fieldInternalName = string.Empty;
List<CustomField> customFieldList = new List<CustomField>();
try
{
projContext.Load(projContext.CustomFields);
projContext.ExecuteQuery();
var customFieldEnum = projContext.CustomFields.GetEnumerator();
while (customFieldEnum.MoveNext())
{
var customField = customFieldEnum.Current;
CustomField customFieldData = new CustomField(); //This is your custom class
customFieldData.Id = customField.Id;
customFieldData.Name = customField.Name;
customFieldData.InternalName = customField.InternalName;
customFieldList.Add(customFieldData);
}
projContext.Load(projContext.Projects);
projContext.ExecuteQuery();
foreach (CustomField customField in customFieldList)
{
if (customField.Name.ToString().Equals(fieldName, StringComparison.OrdinalIgnoreCase))
{
fieldInternalName = customField.InternalName.ToString();
return fieldInternalName;
}
}
}
catch (Exception ex) { }
return fieldInternalName;
}
/// <summary>
/// 获取查阅表格
/// </summary>
/// <param name="projContext"></param>
/// <param name="fieldName"></param>
/// <param name="fieldValue"></param>
/// <returns></returns>
private string[] GetLookUpEntries(ProjectContext projContext, string fieldName, string fieldValue)
{
string[] valueSet = new string[] { "" };
List<CustomField> customFieldList = new List<CustomField>();
try
{
projContext.Load(projContext.CustomFields);
projContext.ExecuteQuery();
var customFieldEnum = projContext.CustomFields.GetEnumerator();
while (customFieldEnum.MoveNext())
{
var customField = customFieldEnum.Current;
if (customField.Name.ToString().Equals(fieldName, StringComparison.OrdinalIgnoreCase))
{
var lookupTable = customField.LookupTable;
projContext.Load(lookupTable);
projContext.ExecuteQuery();
var ltEntries = lookupTable.Entries;
projContext.Load(ltEntries);
projContext.ExecuteQuery();
var ltEnum = ltEntries.GetEnumerator();
while (ltEnum.MoveNext())
{
var ltEntry = ltEnum.Current;
CustomField ltValues = new CustomField();
ltValues.InternalName = ltEntry.InternalName;
ltValues.FullValue = ltEntry.FullValue;
ltValues.Description = ltEntry.Description;
customFieldList.Add(ltValues);
}
}
}// end of while
foreach (var value in customFieldList)
{
if (value.FullValue.ToString().Equals(fieldValue, StringComparison.OrdinalIgnoreCase))
{
valueSet = new string[] { value.InternalName.ToString() };
}
}
catch (Exception ex) { }
return valueSet;
}
CSOM获取自定义域和查阅表格
最新推荐文章于 2021-09-09 14:41:00 发布