public EntityCollection RetrieveTimeZones()
        {
            var request = new GetAllTimeZonesWithDisplayNameRequest {LocaleId = 1033};
            var response = (GetAllTimeZonesWithDisplayNameResponse) service.Execute(request);

            return response.EntityCollection;
        }
Example #2
0
        public async Task GetAllTimeZonesWithDisplayName_Deserialize_Correct()
        {
            const string jsonContent = @"
            {
                ""value"": [ 
                    {
                        ""timezonecode"": 0,
                        ""timezonedefinitionid"": ""30343341-5cdc-4def-a8ac-7d76187548d2"",
                        ""versionnumber"": 743832113,
                        ""userinterfacename"":""(GMT-12:00) International Date Line West"",
                        ""bias"": 720
                    },
                    {
                        ""timezonecode"": 1,
                        ""timezonedefinitionid"": ""a6d443d7-e9a0-406e-86a2-853d65d17098"",
                        ""versionnumber"": 743832117,
                        ""userinterfacename"": ""(GMT+13:00) Samoa"",
                        ""bias"": -780
                    },
                    {
                        ""timezonecode"": 2,
                        ""timezonedefinitionid"": ""fa16509c-06a9-4ef1-8cb1-883f812f74e1"",
                        ""versionnumber"": 743832127,
                        ""userinterfacename"": ""(GMT-10:00) Hawaii"",
                        ""bias"": 600
                    }
                ]
            }";

            var apiResponse = new HttpResponseMessage(HttpStatusCode.OK)
            {
                Content = new StringContent(jsonContent, System.Text.Encoding.UTF8, "application/json")
            };

            var httpClient = new HttpClient(new MockedHttpMessageHandler(apiResponse));
            var crmClient  = FakeCrmWebApiClient.Create(httpClient);

            var apiRequest = new GetAllTimeZonesWithDisplayNameRequest(localeId: 1033);
            var result     = await crmClient.ExecuteAsync(apiRequest);

            result.Entities.Should().HaveCount(3);

            result.Entities.First(x => x.GetAttributeValue <int>("timezonecode") == 0).Should().NotBeNull();
            result.Entities.First(x => x.GetAttributeValue <int>("timezonecode") == 1).Should().NotBeNull();
            result.Entities.First(x => x.GetAttributeValue <int>("timezonecode") == 2).Should().NotBeNull();

            result.Entities.First(x => x.GetAttributeValue <int>("timezonecode") == 2)
            .GetAttributeValue <double>("bias")
            .Should().Be(600);

            result.Entities.First(x => x.GetAttributeValue <int>("timezonecode") == 2)
            .GetAttributeValue <string>("userinterfacename")
            .Should().Be("(GMT-10:00) Hawaii");

            result.Entities.First(x => x.GetAttributeValue <int>("timezonecode") == 2)
            .GetAttributeValue <Guid>("timezonedefinitionid")
            .Should()
            .Be(Guid.Parse("fa16509c-06a9-4ef1-8cb1-883f812f74e1"));
        }
Example #3
0
        public EntityCollection RetrieveTimeZones()
        {
            var request = new GetAllTimeZonesWithDisplayNameRequest {
                LocaleId = 1033
            };
            var response = (GetAllTimeZonesWithDisplayNameResponse)service.Execute(request);

            return(response.EntityCollection);
        }
        public void GetAllTimeZonesWithDisplayName_When_LocaleId_Present_Query_IsCorrect()
        {
            var crmRequest = new GetAllTimeZonesWithDisplayNameRequest(1033);

            var query = crmRequest.QueryString();

            query.Should()
            .Be(
                "timezonedefinitions/Microsoft.Dynamics.CRM.GetAllTimeZonesWithDisplayName(LocaleId=@LocaleId)?@LocaleId=1033");
        }
        /// <summary>
        /// Retrieve all the time zone definitions for the specified locale and to return only the <c>Display Name</c> attribute.
        /// <para>
        /// For more information look at https://msdn.microsoft.com/en-us/library/microsoft.crm.sdk.messages.getalltimezoneswithdisplaynamerequest(v=crm.8).aspx
        /// </para>
        /// </summary>
        /// <param name="localeId">
        /// <see cref="LocaleId"/> info.
        /// For more information look at https://msdn.microsoft.com/en-us/library/ms912047(WinEmbedded.10).aspx
        /// </param>
        /// <returns>
        /// <see cref="EntityCollection"/> for <c>Timezone</c> data
        /// </returns>
        public EntityCollection GetAllTimezoneData(LocaleId localeId)
        {
            GetAllTimeZonesWithDisplayNameRequest request = new GetAllTimeZonesWithDisplayNameRequest()
            {
                LocaleId = (int)localeId
            };

            var serviceResponse = (GetAllTimeZonesWithDisplayNameResponse)this.OrganizationService.Execute(request);

            return(serviceResponse.EntityCollection);
        }
Example #6
0
        public async Task GetAllTimeZonesWithDisplayName_When_LocaleId_Present_Query_IsCorrect()
        {
            Uri requestUri = null;

            var httpClient = new HttpClient(new MockedHttpMessageHandler((request) =>
            {
                requestUri = request.RequestUri;
                return(Task.FromResult(new HttpResponseMessage(HttpStatusCode.NoContent)));
            }));

            var crmRequest = new GetAllTimeZonesWithDisplayNameRequest(1033);
            var crmClient  = FakeCrmWebApiClient.Create(httpClient);
            await crmClient.ExecuteAsync(crmRequest);

            // ^2 index from end
            requestUri.Segments[^ 2].Should().Be("timezonedefinitions/");
Example #7
0
        protected override void OnInit(EventArgs e)
        {
            base.OnInit(e);

            if (Items.Count > 0)
            {
                return;
            }

            var empty = new ListItem(string.Empty, string.Empty);

            empty.Attributes["label"] = " ";
            Items.Add(empty);

            var context = CrmConfigurationManager.CreateContext(ContextName);

            if (LanguageCode == 0)
            {
                var organization = context.CreateQuery("organization").FirstOrDefault();

                if (organization == null)
                {
                    ADXTrace.Instance.TraceError(TraceCategory.Application, "Failed to retrieve organization.");
                }
                else
                {
                    LanguageCode = organization.GetAttributeValue <int?>("languagecode") ?? 0;
                }
            }

            if (LanguageCode == 0)
            {
                LanguageCode = 1033;
            }

            var request = new GetAllTimeZonesWithDisplayNameRequest {
                LocaleId = LanguageCode
            };

            var response = (GetAllTimeZonesWithDisplayNameResponse)context.Execute(request);

            foreach (var timeZoneDefinition in response.EntityCollection.Entities.OrderBy(o => o.GetAttributeValue <string>("userinterfacename")))
            {
                Items.Add(new ListItem(timeZoneDefinition.GetAttributeValue <string>("userinterfacename"), timeZoneDefinition.GetAttributeValue <int>("timezonecode").ToString(CultureInfo.InvariantCulture)));
            }
        }