我正面临着TFS的问题 我试图按日期范围提取提交(Id范围对我不起作用,因为它返回按字母顺序排序的修订版,而不是基于创建时间。所以我从未在指定范围内获得修订。)
GitCommitRef.Committer.Date
以UTF格式返回
但是GitQueryCommitsCriteria.FromDate
要求用户在UserProfile->Locale->TimeZone
中设置的格式为日期
寻找.Net api来提取这个值。我知道下面的REST api(虽然无法找到它的等效.net api),但它并没有为我提供其他用户的时区价值。
http://tfsemea1.ta.philips.com:8080/tfs/TPC_Region13//_api/_common/GetUserProfile?__v=5
如何获得任何用户的时区价值?
或者我如何使ID范围工作?
答案 0 :(得分:0)
根据我的测试,我找不到具有.net API的有效用户的Time Zone
属性。
您可以使用以下示例代码获取用户列表(很遗憾找不到用户的时区):
注意:您需要安装Microsoft.TeamFoundationServer.ExtendedClient Nuget包。
using System;
using Microsoft.TeamFoundation.Client;
using Microsoft.TeamFoundation.Framework.Client;
using Microsoft.TeamFoundation.Framework.Common;
namespace ConsoleApplication3
{
class Program
{
static void Main(string[] args)
{
TfsConfigurationServer tcs = new TfsConfigurationServer(new Uri("http://server:8080/tfs"));
IIdentityManagementService ims = tcs.GetService<IIdentityManagementService>();
TeamFoundationIdentity tfi = ims.ReadIdentity(IdentitySearchFactor.AccountName, "[TEAM FOUNDATION]\\Team Foundation Valid Users", MembershipQuery.Expanded, ReadIdentityOptions.None);
TeamFoundationIdentity[] ids = ims.ReadIdentities(tfi.Members, MembershipQuery.None, ReadIdentityOptions.None);
foreach (TeamFoundationIdentity id in ids)
{
if (id.Descriptor.IdentityType == "System.Security.Principal.WindowsIdentity")
{ Console.WriteLine(id.DisplayName); }
{ Console.WriteLine(id.UniqueName); }
}
Console.ReadLine();
}
}
}
目前还没有这样的REST API来获取所有用户及其个人资料。
我们只能使用REST API获取当前的登录用户配置文件。因此,作为一种解决方法,您可以要求所有用户检查并将时区备份给您。
不知道ID范围。