logo SERENITY
Game Systems Foundation
Search Results for

    Show / Hide Table of Contents

    Class AchievementSyncFieldChange

    One field's comparison result between an authored achievement and its platform counterpart, for one locale when the field is localized.

    Inheritance
    object
    AchievementSyncFieldChange
    Inherited Members
    object.ToString()
    object.Equals(object)
    object.Equals(object, object)
    object.ReferenceEquals(object, object)
    object.GetHashCode()
    object.GetType()
    Namespace: Serenity.Achievements.Application.Sync
    Assembly: Serenity.Achievements.Application.dll
    Syntax
    public sealed class AchievementSyncFieldChange
    Remarks

    A localized field (DisplayName, Description) produces one change per locale the planner was asked to diff, so the review UI can accept "the Spanish name" without also accepting the English one. LocaleCode is empty for every non-localized field.

    Constructors

    AchievementSyncFieldChange(Fields)

    Creates a field change.

    Declaration
    public AchievementSyncFieldChange(AchievementSyncFieldChange.Fields fields)
    Parameters
    Type Name Description
    AchievementSyncFieldChange.Fields fields

    The values to build it from.

    Exceptions
    Type Condition
    ArgumentNullException

    When no fields were given.

    Properties

    ChangeKind

    Declaration
    public AchievementSyncChangeKind ChangeKind { get; }
    Property Value
    Type Description
    AchievementSyncChangeKind

    What the comparison resolved to.

    Direction

    Declaration
    public AchievementSyncDirection Direction { get; }
    Property Value
    Type Description
    AchievementSyncDirection

    The direction this comparison was made for.

    IsAcceptedOnlyOnItsOwn

    Declaration
    public bool IsAcceptedOnlyOnItsOwn { get; }
    Property Value
    Type Description
    bool

    Whether an author accepts this change only by ticking its own row: an Offered change, which replaces something the project already holds, and a LocalizationKeyAdoption row, which changes the identity the achievement syncs under from then on. Neither is something to push through a bulk confirmation.

    IsBulkSelectable

    Declaration
    public bool IsBulkSelectable { get; }
    Property Value
    Type Description
    bool

    Whether an accept-all, an accept-item and an invert may pick this change up: the ones the plan itself recommends, Add and Update, unless the change is IsAcceptedOnlyOnItsOwn.

    IsSelectable

    Declaration
    public bool IsSelectable { get; }
    Property Value
    Type Description
    bool

    Whether this change is one an author can accept or reject at all — true for Add, Update and Offered, the change kinds that carry anything to apply.

    Kind

    Declaration
    public AchievementSyncFieldKind Kind { get; }
    Property Value
    Type Description
    AchievementSyncFieldKind

    Which achievement field this change is about.

    LocalValue

    Declaration
    public string LocalValue { get; }
    Property Value
    Type Description
    string

    The value on the authored (local) side.

    LocaleCode

    Declaration
    public string LocaleCode { get; }
    Property Value
    Type Description
    string

    The locale this change is for, or empty when Kind is not localized.

    PlatformValue

    Declaration
    public string PlatformValue { get; }
    Property Value
    Type Description
    string

    The value on the platform side.

    StorefrontIcon

    Declaration
    public AchievementStorefrontIcon StorefrontIcon { get; }
    Property Value
    Type Description
    AchievementStorefrontIcon

    The storefront's icon this change would bring in, or none when the change is not an icon pull. The connector downloads it on demand when the change is applied.

    UnsupportedReason

    Declaration
    public string UnsupportedReason { get; }
    Property Value
    Type Description
    string

    Why the field cannot travel, or empty unless ChangeKind is Unsupported.

    In this article
    © 2026 Serenity. All Rights Reserved