TimeZoneCode para TimeZoneInfo
Em nosso projeto de CRM de dinâmica de MS, criamos um lote de upload de usuário em massa.
O lote lê de um arquivo do Excel e faz um upload em massa dos usuários.
Uma das coisas que esse lote precisa definir é o timezonecode.
No arquivo excel, o fuso horário será escrito como, por exemplo, "UTC + 1"
O código usado pelo CRM parece ser o timezonecode que o SQL-server está usando como pode ser encontradoAqui.
Qual é a maneira mais limpa de mapear isso?
Minhas ideias até agora:
Atualmente, implementamos nossa própria classe de conversão com valores codificados.
Existe uma maneira melhor? Podemos alavancar a classe .net TimezoneInfo de alguma forma?
Atualizar
Para obter todos os fusos horários do CRM, fizemos o seguinte:
var colSet = new ColumnSet(true);
var query = new QueryExpression(TimeZoneDefinition.EntityLogicalName) { ColumnSet = colSet};
var timeZoneDefs = service.RetrieveMultiple(query).Entities.Select(tz => tz.ToEntity<TimeZoneDefinition>());
Mas parece que as únicas propriedades preenchidas são Id, Code, StandardName e UserInterfaceName. Parece que apenas o nome da interface do usuário contém o deslocamento que estamos procurando.
Existe alguma maneira de garantir que a propriedade Bias seja carregada?