コード例 #1
0
        protected override void Execute(System.Activities.CodeActivityContext context)
        {
            var workflowContext = context.GetExtension <IWorkflowContext>();
            var service         = this.RetrieveOrganizationService(context);

            DateTime utcDateTime = this.DateToEvaluate.Get(context);

            if (utcDateTime.Kind != DateTimeKind.Utc)
            {
                utcDateTime = utcDateTime.ToUniversalTime();
            }

            TimeZoneSummary             timeZone = StaticMethods.CalculateTimeZoneToUse(this.TimeZoneOption.Get(context), workflowContext, service);
            LocalTimeFromUtcTimeRequest timeZoneChangeRequest = new LocalTimeFromUtcTimeRequest()
            {
                UtcTime = utcDateTime, TimeZoneCode = timeZone.MicrosoftIndex
            };
            LocalTimeFromUtcTimeResponse timeZoneResponse = service.Execute(timeZoneChangeRequest) as LocalTimeFromUtcTimeResponse;
            DateTime adjustedDateTime = timeZoneResponse.LocalTime;

            switch (adjustedDateTime.DayOfWeek)
            {
            case System.DayOfWeek.Sunday:
                this.DayOfWeekPick.Set(context, new OptionSetValue(222540000));
                break;

            case System.DayOfWeek.Monday:
                this.DayOfWeekPick.Set(context, new OptionSetValue(222540001));
                break;

            case System.DayOfWeek.Tuesday:
                this.DayOfWeekPick.Set(context, new OptionSetValue(222540002));
                break;

            case System.DayOfWeek.Wednesday:
                this.DayOfWeekPick.Set(context, new OptionSetValue(222540003));
                break;

            case System.DayOfWeek.Thursday:
                this.DayOfWeekPick.Set(context, new OptionSetValue(222540004));
                break;

            case System.DayOfWeek.Friday:
                this.DayOfWeekPick.Set(context, new OptionSetValue(222540005));
                break;

            case System.DayOfWeek.Saturday:
                this.DayOfWeekPick.Set(context, new OptionSetValue(222540006));
                break;
            }
            this.DayOfWeekName.Set(context, adjustedDateTime.DayOfWeek.ToString());
            this.DayOfMonth.Set(context, adjustedDateTime.Day);
            this.DayOfYear.Set(context, adjustedDateTime.DayOfYear);
            this.HourOfDay023.Set(context, adjustedDateTime.Hour);
            this.Minute.Set(context, adjustedDateTime.Minute);
            this.MonthOfYearInt.Set(context, adjustedDateTime.Month);
            this.MonthOfYearPick.Set(context, new OptionSetValue(222540000 + adjustedDateTime.Month - 1));
            this.MonthOfYearName.Set(context, System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat.GetMonthName(adjustedDateTime.Month));
            this.Year.Set(context, adjustedDateTime.Year);
        }
コード例 #2
0
        protected override void Execute(CodeActivityContext context)
        {
            IWorkflowContext workflowContext = context.GetExtension <IWorkflowContext>();

            IOrganizationServiceFactory serviceFactory = context.GetExtension <IOrganizationServiceFactory>();

            IOrganizationService service = serviceFactory.CreateOrganizationService(workflowContext.UserId);

            DateTime utcDateTime = this.DateToEvaluate.Get(context);

            if (utcDateTime.Kind != DateTimeKind.Utc)

            {
                utcDateTime = utcDateTime.ToUniversalTime();
            }

            var settings = service.Retrieve("usersettings", workflowContext.UserId, new ColumnSet("timezonecode"));

            LocalTimeFromUtcTimeRequest timeZoneChangeRequest = new LocalTimeFromUtcTimeRequest()

            {
                UtcTime = utcDateTime, TimeZoneCode = int.Parse(settings["timezonecode"].ToString())
            };

            LocalTimeFromUtcTimeResponse timeZoneResponse = service.Execute(timeZoneChangeRequest) as LocalTimeFromUtcTimeResponse;

            this.ForammtedDateTimeOutput.Set(context, String.Format("{0:f}", timeZoneResponse.LocalTime));
        }
コード例 #3
0
        public void Can_get_user_today_date()
        {
            var test    = new TestHelper();
            var context = Substitute.For <ITransactionContextBase>();

            context.Service.Returns(test.Service);

            var userId           = Guid.NewGuid();
            var initiatingUserId = Guid.NewGuid();

            context.PluginExecutionContext.InitiatingUserId.Returns(initiatingUserId);

            var userSettings = new UserSettings
            {
                Id = Guid.NewGuid()
            };

            userSettings.Set(e => e.SystemUserId, userId);
            userSettings.Set(e => e.TimeZoneCode, 1234);
            context.Service.RetrieveMultiple(Arg.Any <QueryBase>())
            .Returns(new EntityCollection(new List <Entity> {
                userSettings
            }));

            var utcTime   = new DateTime(2017, 1, 25, 9, 45, 0, DateTimeKind.Utc);
            var localTime = new DateTime(2017, 1, 25, 16, 45, 0, DateTimeKind.Unspecified);

            context.Service.Execute(Arg.Any <LocalTimeFromUtcTimeRequest>())
            .Returns(ci =>
            {
                var request = ci.ArgAt <LocalTimeFromUtcTimeRequest>(0);
                Assert.Equal(1234, request.TimeZoneCode);
                Assert.Equal(utcTime, request.UtcTime);
                var response = new LocalTimeFromUtcTimeResponse
                {
                    ["LocalTime"] = localTime
                };
                return(response);
            });

            var expectedTodayDate      = new DateTime(2017, 1, 24, 17, 0, 0, DateTimeKind.Utc);
            var todayDateValueProvider = new TodayDateValueProvider(context);

            Assert.Equal(initiatingUserId, todayDateValueProvider.UserId);
            todayDateValueProvider.UserId = userId;
            var todayDate = todayDateValueProvider.GetTodayDate(utcTime);

            Assert.Equal(expectedTodayDate, todayDate);
        }
コード例 #4
0
        public void SetPriority3()
        {
            var serviceProvider     = new StubIServiceProvider();
            var pluginContext       = new StubIPluginExecutionContext();
            var organizationService = new StubIOrganizationService();

            pluginContext.PrimaryEntityNameGet = () => "incident";
            pluginContext.PrimaryEntityIdGet   = () => new Guid("54D94FC2-52AD-E511-8158-1458D04DB4D1");
            Microsoft.Xrm.Sdk.ParameterCollection paramCollection = new Microsoft.Xrm.Sdk.ParameterCollection();
            Entity incident = new Entity("incident");

            incident.Id = new Guid("884A078B-0467-E711-80F5-3863BB3C0660");
            incident.Attributes["statuscode"]          = new OptionSetValue(2);
            incident.Attributes["smp_problembuilding"] = new EntityReference("smp_building", new Guid("884A078B-0467-E711-80F5-3863BB3C1560"))
            {
                Name = "building"
            };
            incident.Attributes["new_problemroomnumber"] = new EntityReference("smp_room", new Guid("884A078B-0467-E711-80F5-3863BB3C0560"))
            {
                Name = "room"
            };
            incident.Attributes["caseorigincode"]   = new OptionSetValue(3);
            incident.Attributes["smp_duedate"]      = "2018-01-08";////Convert.ToDateTime(null, CultureInfo.CurrentCulture);
            incident.Attributes["smp_portalsubmit"] = false;
            incident.Attributes["smp_duedatebybuildingtimezone"] = "2018-01-08";
            ////incident.Attributes["smp_occureddatetimebybuildingtimezone"] = "2018-01-08";
            //// incident["smp_submitteddatetime"] = Convert.ToDateTime(null, CultureInfo.CurrentCulture);//new DateTime(2018, 1, 8);
            incident["createdon"] = "2018-01-08";
            incident["smp_problemoccureddatetime"] = "2018-01-08";
            ////incident.Attributes["smp_submitteddatetimebybuildingtimezone"] = "2018-01-08";
            ////incident.Attributes["smp_createddatetimebybuildingtimezone"] = "2018-01-08";
            incident.Attributes["smp_priorityid"] = new EntityReference("smp_priority", Guid.Empty)
            {
                Name = "priority"
            };
            incident.Attributes["smp_problemroomtype"] = new EntityReference("smp_roomtype", new Guid("884A078B-0466-E711-80F5-3863BB3C0560"))
            {
                Name = "roomtype"
            };
            incident.Attributes["smp_problemclassid"] = new EntityReference("smp_problemclass", new Guid("884A078B-0468-E711-80F5-3863BB3C0560"))
            {
                Name = "problemClass"
            };
            incident.Attributes["smp_problemtypeid"] = new EntityReference("smp_problemtype", new Guid("884A078B-0469-E711-80F5-3863BB3C0560"))
            {
                Name = "problemType"
            };
            incident.Attributes["smp_priorityid"] = new EntityReference("smp_priority", Guid.Empty);
            incident.Attributes["smp_contact"]    = new EntityReference("contact", Guid.NewGuid());
            paramCollection.Add("Target", incident);
            pluginContext.InputParametersGet = () => paramCollection;
            Helper.Helper.PluginVariables(serviceProvider, pluginContext, organizationService, 20, "Create", null);

            organizationService.ExecuteOrganizationRequest = QueryBase =>
            {
                if (QueryBase.RequestName == "RetrieveAttribute")
                {
                    PicklistAttributeMetadata picklistAttributeMetadata = new PicklistAttributeMetadata();
                    picklistAttributeMetadata.OptionSet = new OptionSetMetadata();
                    picklistAttributeMetadata.OptionSet.Options.Add(new OptionMetadata(new Label(new LocalizedLabel("+02:30", 1033), (new LocalizedLabel[] { new LocalizedLabel("+02:30", 1033) })), 0));
                    picklistAttributeMetadata.OptionSet.Options.Add(new OptionMetadata(new Label(new LocalizedLabel("+03:30", 1033), (new LocalizedLabel[] { new LocalizedLabel("+03:30", 1033) })), 1));
                    picklistAttributeMetadata.OptionSet.Options.Add(new OptionMetadata(new Label(new LocalizedLabel("-04:30", 1033), (new LocalizedLabel[] { new LocalizedLabel("-04:30", 1033) })), 2));

                    RetrieveAttributeResponse response = new RetrieveAttributeResponse();
                    response.Results.Add("AttributeMetadata", picklistAttributeMetadata);

                    return(response);
                }
                else if (QueryBase.RequestName == "LocalTimeFromUtcTime")
                {
                    LocalTimeFromUtcTimeResponse localTimeResponse = new LocalTimeFromUtcTimeResponse();
                    ////localTimeResponse.Results.Add("", value);
                    DateTime dateTime = Convert.ToDateTime(QueryBase.Parameters["UtcTime"]).AddMinutes(Convert.ToInt32(QueryBase.Parameters["TimeZoneCode"]));
                    localTimeResponse.Results.Add("LocalTime", dateTime);
                    return(localTimeResponse);
                }
                else if (QueryBase.RequestName == "UtcTimeFromLocalTime")
                {
                    UtcTimeFromLocalTimeResponse utcTimeResponse = new UtcTimeFromLocalTimeResponse();
                    DateTime dateTime = Convert.ToDateTime(QueryBase.Parameters["LocalTime"]).AddMinutes(-Convert.ToInt32(QueryBase.Parameters["TimeZoneCode"]));
                    utcTimeResponse.Results.Add("UtcTime", dateTime);
                    return(utcTimeResponse);
                }

                return(null);
            };

            organizationService.RetrieveStringGuidColumnSet = delegate(string entity, Guid guid, ColumnSet secondaryUserColumnSet)
            {
                if (entity == "smp_building")
                {
                    Entity building = new Entity(entity);
                    building.Id = Guid.NewGuid();
                    building["smp_timezoneid"]             = new EntityReference("smp_timezone", Guid.NewGuid());
                    building["smp_isfinancialstatecampus"] = true;
                    return(building);
                }
                else if (entity == "smp_timezone")
                {
                    Entity timeZone = new Entity(entity);
                    timeZone["smp_timezonename"] = "test timezone";
                    timeZone["smp_offset"]       = new OptionSetValue(2);
                    return(timeZone);
                }
                else if (entity == "smp_priority")
                {
                    Entity priority = new Entity(entity);
                    priority["smp_noofminutes"] = 100;
                    return(priority);
                }
                else if (entity == "smp_roomtype")
                {
                    Entity roomType = new Entity(entity);
                    roomType["smp_zone"] = new OptionSetValue(1);
                    return(roomType);
                }

                return(null);
            };
            organizationService.RetrieveMultipleQueryBase = (query) =>
            {
                EntityCollection collection = new EntityCollection();
                string           entityName = string.Empty;
                if (query.GetType().Name.Equals("FetchExpression"))
                {
                    if (((FetchExpression)query).Query.Contains("<entity name='ava_keyvaluepair'>"))
                    {
                        entityName = "ava_keyvaluepair";
                    }
                }
                else if (query.GetType().Name.Equals("QueryExpression"))
                {
                    entityName = ((QueryExpression)query).EntityName;
                }
                else
                {
                    entityName = ((QueryByAttribute)query).EntityName;
                }

                if (entityName == "smp_providermatrix")
                {
                    Entity matrix = new Entity("smp_providermatrix");
                    matrix.Id = new Guid("884A078B-0466-E711-80F5-3863BB3C0560");
                    matrix["smp_primaryproviderid"] = new EntityReference("account", new Guid("884A078B-0467-E711-80F5-3863BB3C1560"));
                    collection.Entities.Add(matrix);
                }
                else if (entityName == "smp_room")
                {
                    Entity room = new Entity(entityName);
                    room["smp_name"]   = "test room";
                    room["smp_roomid"] = new Guid("884A078B-0466-E711-80F5-3863BB3C0679");
                    collection.Entities.Add(room);
                }
                else if (entityName == "account")
                {
                    Entity account = new Entity(entityName);
                    account["accountid"]  = new Guid("884A078B-0467-E711-80F5-3863BB3C1560");
                    account["statuscode"] = 1;
                    collection.Entities.Add(account);
                }
                else if (entityName == "smp_slamatrix")
                {
                    Entity slaMatrix = new Entity(entityName);
                    slaMatrix["smp_priorityid"] = new EntityReference("smp_priority", new Guid("884A078B-0467-E711-80F5-3863BB3C1489"));
                    slaMatrix["smp_starthours"] = 2;
                    slaMatrix["smp_endhours"]   = 1;
                    collection.Entities.Add(slaMatrix);
                }
                else if (entityName == "smp_buildingworkhours")
                {
                    ////Entity buildWorkHours = new Entity(entityName);
                    ////buildWorkHours["smp_starthours"] = new OptionSetValue(1);
                    ////buildWorkHours["smp_endhours"] = new OptionSetValue(2);
                    ////buildWorkHours.FormattedValues["smp_starthours"] = "08:30";
                    ////buildWorkHours.FormattedValues["smp_endhours"] = "08:30";
                    ////collection.Entities.Add(buildWorkHours);
                }
                else if (entityName == "smp_weekdays")
                {
                    Entity weekdays = new Entity(entityName);
                    weekdays["smp_name"] = Convert.ToDateTime("09-03-2017 02:30 AM");
                    collection.Entities.Add(weekdays);
                }
                else if (entityName == "smp_configuration")
                {
                    Entity configuration = new Entity(entityName);
                    configuration["smp_value"] = "Production";
                    collection.Entities.Add(configuration);
                }
                else if (entityName == "systemuser")
                {
                    Entity systemuser = new Entity(entityName);
                    systemuser.Id = Guid.NewGuid();
                    systemuser["systemuserid"] = systemuser.Id;
                    collection.Entities.Add(systemuser);
                }
                else if (entityName == "usersettings")
                {
                    Entity usersettings = new Entity(entityName);
                    usersettings["timezonecode"] = 85;
                    collection.Entities.Add(usersettings);
                }

                return(collection);
            };

            PreServiceRequestCreateSetPriority prioritySet = new PreServiceRequestCreateSetPriority();

            prioritySet.Execute(serviceProvider);
        }
コード例 #5
0
        protected DataTable BuildDataTable(CodeActivityContext context, IWorkflowContext workflowContext, IOrganizationService service)
        {
            TimeZoneSummary timeZone = StaticMethods.CalculateTimeZoneToUse(this.TimeZoneOption.Get(context), workflowContext, service);

            DataTable table = new DataTable()
            {
                TableName = workflowContext.PrimaryEntityName
            };

            table.Columns.AddRange(new DataColumn[] { new DataColumn("Date"), new DataColumn("User"), new DataColumn("Attribute"), new DataColumn("Old Value"), new DataColumn("New Value") });
            DateTime oldestUpdate = DateTime.MinValue;

            if (this.Units != null && this.Number != null && this.Number.Get <int>(context) != 0)
            {
                OptionSetValue value = this.Units.Get <OptionSetValue>(context);
                if (value != null)
                {
                    switch (value.Value)
                    {
                    case 222540000:
                        oldestUpdate = DateTime.Now.AddYears(this.Number.Get <int>(context) * -1);
                        break;

                    case 222540001:
                        oldestUpdate = DateTime.Now.AddMonths(this.Number.Get <int>(context) * -1);
                        break;

                    case 222540002:
                        oldestUpdate = DateTime.Now.AddDays(this.Number.Get <int>(context) * -7);
                        break;

                    case 222540003:
                        oldestUpdate = DateTime.Now.AddDays(this.Number.Get <int>(context) * -1);
                        break;

                    case 222540004:
                        oldestUpdate = DateTime.Now.AddHours(this.Number.Get <int>(context) * -1);
                        break;

                    default:
                        oldestUpdate = DateTime.Now.AddMinutes(this.Number.Get <int>(context) * -1);
                        break;
                    }
                }
            }

            RetrieveRecordChangeHistoryRequest request = new RetrieveRecordChangeHistoryRequest()
            {
                Target     = new EntityReference(workflowContext.PrimaryEntityName, workflowContext.PrimaryEntityId),
                PagingInfo = new PagingInfo()
                {
                    Count = 100, PageNumber = 1
                }
            };
            RetrieveRecordChangeHistoryResponse response = service.Execute(request) as RetrieveRecordChangeHistoryResponse;
            var detailsToInclude = response.AuditDetailCollection.AuditDetails
                                   .Where(ad => ad is AttributeAuditDetail && ad.AuditRecord.Contains("createdon") && ((DateTime)ad.AuditRecord["createdon"]) > oldestUpdate)
                                   .OrderByDescending(ad => ((DateTime)ad.AuditRecord["createdon"]))
                                   .ToList();

            if (detailsToInclude.Any())
            {
                Microsoft.Xrm.Sdk.Messages.RetrieveEntityRequest retrieveEntityRequest = new Microsoft.Xrm.Sdk.Messages.RetrieveEntityRequest()
                {
                    EntityFilters = EntityFilters.Attributes,
                    LogicalName   = workflowContext.PrimaryEntityName
                };
                Microsoft.Xrm.Sdk.Messages.RetrieveEntityResponse retrieveEntityResponse = service.Execute(retrieveEntityRequest) as Microsoft.Xrm.Sdk.Messages.RetrieveEntityResponse;
                EntityMetadata metadata = retrieveEntityResponse.EntityMetadata;

                foreach (var detail in detailsToInclude.Select(d => d as AttributeAuditDetail).Where(d => d.NewValue != null && d.OldValue != null))
                {
                    DateTime dateToModify = (DateTime)detail.AuditRecord["createdon"];
                    if (dateToModify.Kind != DateTimeKind.Utc)
                    {
                        dateToModify = dateToModify.ToUniversalTime();
                    }


                    LocalTimeFromUtcTimeRequest timeZoneChangeRequest = new LocalTimeFromUtcTimeRequest()
                    {
                        UtcTime = dateToModify, TimeZoneCode = timeZone.MicrosoftIndex
                    };
                    LocalTimeFromUtcTimeResponse timeZoneResponse = service.Execute(timeZoneChangeRequest) as LocalTimeFromUtcTimeResponse;
                    DateTime timeZoneSpecificDateTime             = timeZoneResponse.LocalTime;

                    var details = detail.NewValue.Attributes.Keys.Union(detail.OldValue.Attributes.Keys)
                                  .Distinct()
                                  .Select(a =>
                                          new {
                        AttributeName = a,
                        DisplayName   = GetDisplayLabel(metadata, a)
                    })
                                  .OrderBy(a => a.DisplayName);

                    foreach (var item in details)
                    {
                        DataRow newRow = table.NewRow();
                        newRow["User"]      = GetDisplayValue(detail.AuditRecord, "userid");
                        newRow["Date"]      = timeZoneSpecificDateTime.ToString("MM/dd/yyyy h:mm tt");
                        newRow["Attribute"] = item.DisplayName;
                        newRow["Old Value"] = GetDisplayValue(detail.OldValue, item.AttributeName);
                        newRow["New Value"] = GetDisplayValue(detail.NewValue, item.AttributeName);
                        table.Rows.Add(newRow);
                    }
                }
            }
            return(table);
        }
コード例 #6
0
        protected override void Execute(CodeActivityContext context)
        {
            var workflowContext = context.GetExtension <IWorkflowContext>();
            var service         = this.RetrieveOrganizationService(context);

            List <OptionSetValue> values = new List <OptionSetValue>()
            {
                this.Part1.Get <OptionSetValue>(context),
                this.Part2.Get <OptionSetValue>(context),
                this.Part3.Get <OptionSetValue>(context),
                this.Part4.Get <OptionSetValue>(context),
                this.Part5.Get <OptionSetValue>(context),
                this.Part6.Get <OptionSetValue>(context),
                this.Part7.Get <OptionSetValue>(context),
                this.Part8.Get <OptionSetValue>(context),
                this.Part9.Get <OptionSetValue>(context),
                this.Part10.Get <OptionSetValue>(context),
                this.Part11.Get <OptionSetValue>(context),
                this.Part12.Get <OptionSetValue>(context),
                this.Part13.Get <OptionSetValue>(context),
                this.Part14.Get <OptionSetValue>(context),
                this.Part15.Get <OptionSetValue>(context),
                this.Part16.Get <OptionSetValue>(context),
                this.Part17.Get <OptionSetValue>(context),
                this.Part18.Get <OptionSetValue>(context),
                this.Part19.Get <OptionSetValue>(context),
                this.Part20.Get <OptionSetValue>(context)
            };

            values.RemoveAll(osv => osv == null || osv.Value == 222540025);

            TimeZoneSummary timeZone     = StaticMethods.CalculateTimeZoneToUse(this.TimeZoneOption.Get(context), workflowContext, service);
            DateTime        dateToModify = this.DateToModify.Get(context);

            if (dateToModify.Kind != DateTimeKind.Utc)
            {
                dateToModify = dateToModify.ToUniversalTime();
            }


            LocalTimeFromUtcTimeRequest timeZoneChangeRequest = new LocalTimeFromUtcTimeRequest()
            {
                UtcTime = dateToModify, TimeZoneCode = timeZone.MicrosoftIndex
            };
            LocalTimeFromUtcTimeResponse timeZoneResponse = service.Execute(timeZoneChangeRequest) as LocalTimeFromUtcTimeResponse;
            DateTime timeZoneSpecificDateTime             = timeZoneResponse.LocalTime;

            StringBuilder sb = new StringBuilder();

            foreach (OptionSetValue osv in values)
            {
                try
                {
                    switch (osv.Value)
                    {
                    case 222540000:
                        sb.Append(timeZoneSpecificDateTime.ToString("%h"));
                        break;

                    case 222540001:
                        sb.Append(timeZoneSpecificDateTime.ToString("hh"));
                        break;

                    case 222540002:
                        sb.Append(timeZoneSpecificDateTime.ToString("%H"));
                        break;

                    case 222540003:
                        sb.Append(timeZoneSpecificDateTime.ToString("HH"));
                        break;

                    case 222540004:
                        sb.Append(timeZoneSpecificDateTime.ToString("%m"));
                        break;

                    case 222540005:
                        sb.Append(timeZoneSpecificDateTime.ToString("mm"));
                        break;

                    case 222540006:
                        sb.Append(timeZoneSpecificDateTime.ToString("%d"));
                        break;

                    case 222540007:
                        sb.Append(timeZoneSpecificDateTime.ToString("dd"));
                        break;

                    case 222540008:
                        sb.Append(timeZoneSpecificDateTime.ToString("ddd"));
                        break;

                    case 222540009:
                        sb.Append(timeZoneSpecificDateTime.ToString("dddd"));
                        break;

                    case 222540010:
                        sb.Append(timeZoneSpecificDateTime.ToString("%M"));
                        break;

                    case 222540011:
                        sb.Append(timeZoneSpecificDateTime.ToString("MM"));
                        break;

                    case 222540012:
                        sb.Append(timeZoneSpecificDateTime.ToString("MMM"));
                        break;

                    case 222540013:
                        sb.Append(timeZoneSpecificDateTime.ToString("MMMM"));
                        break;

                    case 222540014:
                        sb.Append(timeZoneSpecificDateTime.ToString("%y"));
                        break;

                    case 222540015:
                        sb.Append(timeZoneSpecificDateTime.ToString("yy"));
                        break;

                    case 222540016:
                        sb.Append(timeZoneSpecificDateTime.ToString("yyyy"));
                        break;

                    case 222540017:
                        sb.Append(timeZoneSpecificDateTime.ToString("%t"));
                        break;

                    case 222540018:
                        sb.Append(timeZoneSpecificDateTime.ToString("tt"));
                        break;

                    case 222540019:
                        sb.Append(" ");
                        break;

                    case 222540020:
                        sb.Append(",");
                        break;

                    case 222540021:
                        sb.Append(".");
                        break;

                    case 222540022:
                        sb.Append(":");
                        break;

                    case 222540023:
                        sb.Append("/");
                        break;

                    case 222540024:
                        sb.Append(@"\");
                        break;

                    case 222540026:
                        sb.Append("-");
                        break;

                    case 222540027:
                        sb.Append(timeZone.Id);
                        break;

                    case 222540028:
                        sb.Append(timeZone.FullName);
                        break;

                    default:
                        break;
                    }
                }
                catch
                {
                    throw new Exception(osv.Value.ToString());
                }
            }

            FormattedDate.Set(context, sb.ToString());
        }