internal static ApplicationEvent GetFromJsonProperties()

in src/Microsoft.ServiceFabric.Client.Http/Generated/Serialization/ApplicationEventConverter.cs [34:159]


        internal static ApplicationEvent GetFromJsonProperties(JsonReader reader)
        {
            var eventInstanceId = default(Guid?);
            var category = default(string);
            var timeStamp = default(DateTime?);
            var hasCorrelatedEvents = default(bool?);
            var applicationId = default(string);

            do
            {
                var propName = reader.ReadPropertyName();
                if (propName.Equals("Kind", StringComparison.OrdinalIgnoreCase))
                {
                    var propValue = reader.ReadValueAsString();

                    if (propValue.Equals("ApplicationCreated", StringComparison.OrdinalIgnoreCase))
                    {
                        return ApplicationCreatedEventConverter.GetFromJsonProperties(reader);
                    }
                    else if (propValue.Equals("ApplicationDeleted", StringComparison.OrdinalIgnoreCase))
                    {
                        return ApplicationDeletedEventConverter.GetFromJsonProperties(reader);
                    }
                    else if (propValue.Equals("ApplicationNewHealthReport", StringComparison.OrdinalIgnoreCase))
                    {
                        return ApplicationNewHealthReportEventConverter.GetFromJsonProperties(reader);
                    }
                    else if (propValue.Equals("ApplicationHealthReportExpired", StringComparison.OrdinalIgnoreCase))
                    {
                        return ApplicationHealthReportExpiredEventConverter.GetFromJsonProperties(reader);
                    }
                    else if (propValue.Equals("ApplicationUpgradeCompleted", StringComparison.OrdinalIgnoreCase))
                    {
                        return ApplicationUpgradeCompletedEventConverter.GetFromJsonProperties(reader);
                    }
                    else if (propValue.Equals("ApplicationUpgradeDomainCompleted", StringComparison.OrdinalIgnoreCase))
                    {
                        return ApplicationUpgradeDomainCompletedEventConverter.GetFromJsonProperties(reader);
                    }
                    else if (propValue.Equals("ApplicationUpgradeRollbackCompleted", StringComparison.OrdinalIgnoreCase))
                    {
                        return ApplicationUpgradeRollbackCompletedEventConverter.GetFromJsonProperties(reader);
                    }
                    else if (propValue.Equals("ApplicationUpgradeRollbackStarted", StringComparison.OrdinalIgnoreCase))
                    {
                        return ApplicationUpgradeRollbackStartedEventConverter.GetFromJsonProperties(reader);
                    }
                    else if (propValue.Equals("ApplicationUpgradeStarted", StringComparison.OrdinalIgnoreCase))
                    {
                        return ApplicationUpgradeStartedEventConverter.GetFromJsonProperties(reader);
                    }
                    else if (propValue.Equals("DeployedApplicationNewHealthReport", StringComparison.OrdinalIgnoreCase))
                    {
                        return DeployedApplicationNewHealthReportEventConverter.GetFromJsonProperties(reader);
                    }
                    else if (propValue.Equals("DeployedApplicationHealthReportExpired", StringComparison.OrdinalIgnoreCase))
                    {
                        return DeployedApplicationHealthReportExpiredEventConverter.GetFromJsonProperties(reader);
                    }
                    else if (propValue.Equals("ApplicationProcessExited", StringComparison.OrdinalIgnoreCase))
                    {
                        return ApplicationProcessExitedEventConverter.GetFromJsonProperties(reader);
                    }
                    else if (propValue.Equals("ApplicationContainerInstanceExited", StringComparison.OrdinalIgnoreCase))
                    {
                        return ApplicationContainerInstanceExitedEventConverter.GetFromJsonProperties(reader);
                    }
                    else if (propValue.Equals("DeployedServicePackageNewHealthReport", StringComparison.OrdinalIgnoreCase))
                    {
                        return DeployedServicePackageNewHealthReportEventConverter.GetFromJsonProperties(reader);
                    }
                    else if (propValue.Equals("DeployedServicePackageHealthReportExpired", StringComparison.OrdinalIgnoreCase))
                    {
                        return DeployedServicePackageHealthReportExpiredEventConverter.GetFromJsonProperties(reader);
                    }
                    else if (propValue.Equals("ChaosCodePackageRestartScheduled", StringComparison.OrdinalIgnoreCase))
                    {
                        return ChaosCodePackageRestartScheduledEventConverter.GetFromJsonProperties(reader);
                    }
                    else if (propValue.Equals("ApplicationEvent", StringComparison.OrdinalIgnoreCase))
                    {
                        // kind specified as same type, deserialize using properties.
                    }
                    else
                    {
                        throw new InvalidOperationException("Unknown Discriminator.");
                    }
                }
                else
                {
                    if (string.Compare("EventInstanceId", propName, StringComparison.OrdinalIgnoreCase) == 0)
                    {
                        eventInstanceId = reader.ReadValueAsGuid();
                    }
                    else if (string.Compare("Category", propName, StringComparison.OrdinalIgnoreCase) == 0)
                    {
                        category = reader.ReadValueAsString();
                    }
                    else if (string.Compare("TimeStamp", propName, StringComparison.OrdinalIgnoreCase) == 0)
                    {
                        timeStamp = reader.ReadValueAsDateTime();
                    }
                    else if (string.Compare("HasCorrelatedEvents", propName, StringComparison.OrdinalIgnoreCase) == 0)
                    {
                        hasCorrelatedEvents = reader.ReadValueAsBool();
                    }
                    else if (string.Compare("ApplicationId", propName, StringComparison.OrdinalIgnoreCase) == 0)
                    {
                        applicationId = reader.ReadValueAsString();
                    }
                    else
                    {
                        reader.SkipPropertyValue();
                    }
                }
            }
            while (reader.TokenType != JsonToken.EndObject);

            return new ApplicationEvent(
                kind: Common.FabricEventKind.ApplicationEvent,
                eventInstanceId: eventInstanceId,
                category: category,
                timeStamp: timeStamp,
                hasCorrelatedEvents: hasCorrelatedEvents,
                applicationId: applicationId);
        }