CSOM获取自定义域和查阅表格

///定义自定义域信息
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;
}

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值