protected override void Execute(CodeActivityContext eContext) { // Setup var context = eContext.GetExtension <IWorkflowContext>(); var serviceFactory = eContext.GetExtension <IOrganizationServiceFactory>(); var service = serviceFactory.CreateOrganizationService(context.UserId); var codeString = TimeZoneCodeString.Get(eContext); int code; if (String.IsNullOrWhiteSpace(codeString) || !Int32.TryParse(codeString, out code)) { var settings = UserSettings.GetUserSettings(service, context.UserId); code = (int)settings.Attributes["timezonecode"]; } var req = new UtcTimeFromLocalTimeRequest { TimeZoneCode = code, LocalTime = LocalDateTime.Get(eContext) }; var resp = (UtcTimeFromLocalTimeResponse)service.Execute(req); if (resp == null) { return; } UTCDateTime.Set(eContext, resp.UtcTime); }
/// <summary> /// Retrieve <c>LocalTime</c> from <c>UtcTime</c> by <c>TimeZoneCode</c>. /// <para> /// For more information look at https://msdn.microsoft.com/en-us/library/microsoft.crm.sdk.messages.utctimefromlocaltimerequest(v=crm.8).aspx /// </para> /// </summary> /// <param name="localTime"> /// <see cref="DateTime"/> LocalTime /// </param> /// <param name="timezoneCode">You can use <see cref="TimezoneCode"/> data or directly provide Timezone Code.</param> /// <returns> /// <see cref="DateTime"/> UtcTime /// </returns> public DateTime GetUTCTimeFromLocalTime(DateTime localTime, int timezoneCode) { UtcTimeFromLocalTimeRequest request = new UtcTimeFromLocalTimeRequest() { LocalTime = localTime, TimeZoneCode = timezoneCode }; var serviceResponse = (UtcTimeFromLocalTimeResponse)this.OrganizationService.Execute(request); return(serviceResponse.UtcTime); }
public static Result RetrieveUTCTimeFromLocalTime(DateTime localTime, int timeZoneCode, CubeBase Cube) { var request = new UtcTimeFromLocalTimeRequest { TimeZoneCode = timeZoneCode, LocalTime = localTime }; Result result = Cube.XRMActions.Execute<UtcTimeFromLocalTimeRequest, UtcTimeFromLocalTimeResponse>(request); return result; }
public static Result RetrieveUTCTimeFromLocalTime(DateTime localTime, int timeZoneCode, CubeBase Cube) { var request = new UtcTimeFromLocalTimeRequest { TimeZoneCode = timeZoneCode, LocalTime = localTime }; Result result = Cube.XRMActions.Execute <UtcTimeFromLocalTimeRequest, UtcTimeFromLocalTimeResponse>(request); return(result); }
/// <summary> /// Retrieve <c>UtcTime</c> from <c>LocalTime</c> by <see cref="IOrganizationService"/> caller <c>System User</c> 's settings /// <para> /// For more information look at https://msdn.microsoft.com/en-us/library/microsoft.crm.sdk.messages.utctimefromlocaltimerequest(v=crm.8).aspx /// </para> /// </summary> /// <param name="localTime"> /// <see cref="DateTime"/> LocalTime /// </param> /// <returns> /// <see cref="DateTime"/> UtcTime /// </returns> public DateTime GetUTCTimeFromLocalTime(DateTime localTime) { var userSettings = GetCurrentUsersSettings(null); UtcTimeFromLocalTimeRequest request = new UtcTimeFromLocalTimeRequest() { LocalTime = localTime, TimeZoneCode = userSettings.Item2 }; var serviceResponse = (UtcTimeFromLocalTimeResponse)this.OrganizationService.Execute(request); return(serviceResponse.UtcTime); }
/// <summary> /// Convert UTC datetime from UTC datetime /// </summary> /// <param name="localDateTime"></param> /// <param name="timeZoneCode"></param> public DateTime UtcFromLocalDateTime(DateTime localDateTime, int?timeZoneCode) { if (!timeZoneCode.HasValue) { return(localDateTime); } UtcTimeFromLocalTimeRequest orgReq = new UtcTimeFromLocalTimeRequest { TimeZoneCode = timeZoneCode.Value, LocalTime = localDateTime }; return(Execute <UtcTimeFromLocalTimeResponse>(orgReq).UtcTime); }
internal static DateTime RetrieveUTCTimeFromLocalTime(DateTime localTime, int?timeZoneCode, IOrganizationService service) { if (!timeZoneCode.HasValue) { return(DateTime.Now); } var request = new UtcTimeFromLocalTimeRequest { TimeZoneCode = timeZoneCode.Value, LocalTime = localTime }; var response = (UtcTimeFromLocalTimeResponse)service.Execute(request); return(response.UtcTime); }
/// <summary> /// Retrieve <c>UtcTime</c> from <c>LocalTime</c> by specified <c>System User</c> 's settings. /// <para> /// For more information look at https://msdn.microsoft.com/en-us/library/microsoft.crm.sdk.messages.utctimefromlocaltimerequest(v=crm.8).aspx /// </para> /// </summary> /// <param name="localTime"><see cref="DateTime"/> LocalTime</param> /// <param name="userId">Systemuser Id</param> /// <returns> /// <see cref="DateTime"/> UtcTime /// </returns> public DateTime GetUTCTimeFromLocalTime(DateTime localTime, Guid userId) { ExceptionThrow.IfGuidEmpty(userId, "userId"); var userSettings = GetCurrentUsersSettings(userId); UtcTimeFromLocalTimeRequest request = new UtcTimeFromLocalTimeRequest() { LocalTime = localTime, TimeZoneCode = userSettings.Item2 }; var serviceResponse = (UtcTimeFromLocalTimeResponse)this.OrganizationService.Execute(request); return(serviceResponse.UtcTime); }
private static DateTime GetUtcTimeResponse(string time, int crmTimeZoneCode) { var context = new XrmFakedContext(); var organizationService = context.GetOrganizationService(); var localTime = DateTime.SpecifyKind(DateTime.Parse(time), DateTimeKind.Local); var request = new UtcTimeFromLocalTimeRequest { LocalTime = localTime, TimeZoneCode = crmTimeZoneCode }; var response = organizationService.Execute(request) as UtcTimeFromLocalTimeResponse; return(response.UtcTime); }
public static DateTime LocalTimeToUTC(DateTime localTime, int?timeZoneCode, ContextWrapper contextWrapper) { if (!timeZoneCode.HasValue) { return(localTime); } var request = new UtcTimeFromLocalTimeRequest { TimeZoneCode = timeZoneCode.Value, LocalTime = DateTime.SpecifyKind(localTime, DateTimeKind.Local) }; var response = (UtcTimeFromLocalTimeResponse)contextWrapper.service.Execute(request); return(response.UtcTime); }
/// <summary> /// Retrieves the utc time from the local time /// </summary> /// <param name="localTime"></param> private void RetrieveUTCTimeFromLocalTime(DateTime localTime) { if (!_timeZoneCode.HasValue) { return; } var request = new UtcTimeFromLocalTimeRequest { TimeZoneCode = _timeZoneCode.Value, LocalTime = localTime }; var response = (UtcTimeFromLocalTimeResponse)_serviceProxy.Execute(request); Console.WriteLine(String.Concat("Calling UtcTimeFromLocalTimeRequest. Local time: ", localTime.ToString("MM/dd/yyyy HH:mm:ss"), ". UTC time: ", response.UtcTime.ToString("MM/dd/yyyy HH:mm:ss"))); }
protected override void Execute(System.Activities.CodeActivityContext context) { var workflowContext = context.GetExtension <IWorkflowContext>(); var service = this.RetrieveOrganizationService(context); int day = this.Day.Get(context); if (day <= 0 || day > 31) { throw new ArgumentOutOfRangeException("Day outside of valid range (1 - 31)"); } int month = this.MonthOfYearInt.Get(context); if (month < 1 || month > 12) { month = this.MonthOfYearPick.Get(context).Value - 222540000 + 1; } int year = this.Year.Get(context); int hour = this.HourOfDay023.Get(context); int minute = this.Minute.Get(context); DateTime parsedDate = DateTime.MinValue; try { parsedDate = new DateTime(year, month, day, hour, minute, 0, DateTimeKind.Unspecified); } catch (Exception ex) { throw new ArgumentException("Error parsing date: " + ex.Message); } TimeZoneSummary timeZone = StaticMethods.CalculateTimeZoneToUse(this.TimeZoneOption.Get(context), workflowContext, service); UtcTimeFromLocalTimeRequest timeZoneChangeRequest = new UtcTimeFromLocalTimeRequest() { LocalTime = parsedDate, TimeZoneCode = timeZone.MicrosoftIndex }; UtcTimeFromLocalTimeResponse timeZoneResponse = service.Execute(timeZoneChangeRequest) as UtcTimeFromLocalTimeResponse; DateTime adjustedDateTime = timeZoneResponse.UtcTime; this.ModifiedDate.Set(context, adjustedDateTime); }
//public static DateTime Locally(this DateTime? date) //{ // return date == null ? default(DateTime) : RetrieveLocalTimeFromUtcTime2(date.Value); //} /// <summary> /// Retrive the UTC DateTime from Local Date time format. /// </summary> public static DateTime RetrieveUtcTimeFromLocalTime(IOrganizationService service, DateTime localTime) { if (localTime.Kind == DateTimeKind.Utc) { return localTime; // throw new Exception("Вы хотели привести UTC to UTC"); } var retrieveCurrentUsersSettings = service.RetrieveCurrentUsersSettings(); if (retrieveCurrentUsersSettings == null) throw new Exception("Не удалось определить настройки пользователя"); var request = new UtcTimeFromLocalTimeRequest { TimeZoneCode = retrieveCurrentUsersSettings.Value, LocalTime = localTime }; var response = (UtcTimeFromLocalTimeResponse)service.Execute(request); return response.UtcTime; }
//</snippetLocalTimeFromUTCTime> /// <summary> /// Retrieves the utc time from the local time /// </summary> /// <param name="localTime"></param> //<snippetUtcTimeFromLocalTime> private void RetrieveUTCTimeFromLocalTime(DateTime localTime) { if (!_timeZoneCode.HasValue) return; var request = new UtcTimeFromLocalTimeRequest { TimeZoneCode = _timeZoneCode.Value, LocalTime = localTime }; var response = (UtcTimeFromLocalTimeResponse)_serviceProxy.Execute(request); Console.WriteLine(String.Concat("Calling UtcTimeFromLocalTimeRequest. Local time: ", localTime.ToString("MM/dd/yyyy HH:mm:ss"), ". UTC time: ", response.UtcTime.ToString("MM/dd/yyyy HH:mm:ss"))); }