logo SERENITY
Game Systems Foundation
Search Results for

    Show / Hide Table of Contents

    Class AchievementPushOutcome

    What a push produced: which achievements the platform accepted, and what went wrong.

    Inheritance
    object
    AchievementPushOutcome
    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 AchievementPushOutcome
    Remarks

    AuthenticationExpired exists because that one failure has a fix an author can act on immediately (sign in again), where every other failure just needs to be read and retried — the sign-in offer this flag drives is the Copilot fallback the sync window later builds.

    Constructors

    AchievementPushOutcome(bool, IReadOnlyList<string>, IReadOnlyList<string>, bool, IReadOnlyList<string>, string)

    Creates a push outcome.

    Declaration
    public AchievementPushOutcome(bool succeeded, IReadOnlyList<string> savedApiNames, IReadOnlyList<string> failureMessages, bool authenticationExpired, IReadOnlyList<string> unfinishedCreations = null, string authenticationFailureLine = null)
    Parameters
    Type Name Description
    bool succeeded

    Whether the push as a whole succeeded.

    IReadOnlyList<string> savedApiNames

    The achievements the platform accepted.

    IReadOnlyList<string> failureMessages

    What went wrong, one message per failure.

    bool authenticationExpired

    Whether the push failed because the sign-in session expired.

    IReadOnlyList<string> unfinishedCreations

    One line per achievement the platform created during the push but never received its real details for, so it exists there half-made and has to be finished or removed by hand.

    string authenticationFailureLine

    What to tell the author when authenticationExpired is set, when it is not that a session ran out — the author was never signed in. Blank keeps AuthenticationExpiredLine.

    Fields

    AuthenticationExpiredLine

    The line to show when a push failed because the sign-in session expired.

    Declaration
    public const string AuthenticationExpiredLine = "Your sign-in session expired — go back to Connect and sign in again."
    Field Value
    Type Description
    string

    Properties

    AuthenticationExpired

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

    Whether the push failed because the sign-in session expired.

    AuthenticationFailureLine

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

    The line to show when the push needs a sign-in it does not have: AuthenticationExpiredLine when a session ran out, or the connector's own words when there never was one. Empty when AuthenticationExpired is not set.

    FailureMessages

    Declaration
    public IReadOnlyList<string> FailureMessages { get; }
    Property Value
    Type Description
    IReadOnlyList<string>

    What went wrong, one message per failure.

    SavedApiNames

    Declaration
    public IReadOnlyList<string> SavedApiNames { get; }
    Property Value
    Type Description
    IReadOnlyList<string>

    The achievements the platform accepted.

    SavedLines

    Declaration
    public IReadOnlyList<string> SavedLines { get; }
    Property Value
    Type Description
    IReadOnlyList<string>

    One line per saved achievement, worded "Saved {apiName}" — the wording shared by every place a push outcome gets logged or displayed, so it only exists once.

    Succeeded

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

    Whether the push as a whole succeeded.

    UnfinishedCreations

    Declaration
    public IReadOnlyList<string> UnfinishedCreations { get; }
    Property Value
    Type Description
    IReadOnlyList<string>

    The achievements the platform created during the push but never got finished, one line each — they exist on the platform half-made and need finishing or removing there.

    In this article
    © 2026 Serenity. All Rights Reserved