Skip to content

Convert all xp classes into partials #432

@ArchitectedDev

Description

@ArchitectedDev

To minimise null value bloat stored in xp of OrderCloud resources, we can update the strongly-typed xp classes to inherit from the OrderCloudModel and IPartial, which will remove unassigned properties during serialisation.

  • Inherit OrderCloudModel and IPartial
  • All properties getters and setters will also need to be reworked to utilise the Props dictionary.
  • The readme will need to be updated to reflect this as a standard practice.
  • Converting xp classes into partial xp classes will not allow default values to be set as this can unintentially override existing xp values during PATCH requests.
  • There is a dependency on updating the OrderCloud .NET SDK to support partial class deserialisation, before we can update xp classes to partials.

See the following example

// Before refactor
public class MyProductXp
{
    public string Note { get; set; }
    public string ProductType { get; set; }
    public bool IsNew { get; set; }
    public decimal Rating { get; set; }
}

// After refactor
public class MyProductXp : OrderCloudModel, IPartial
{
    public string Note { get => GetProp<string>("Note"); set => SetProp<string>("Note", value); }
    public string ProductType { get => GetProp<string>("ProductType"); set => SetProp<string>("ProductType", value); }
    public bool IsNew { get => GetProp<bool>("IsNew"); set => SetProp<bool>("IsNew", value); }
    public decimal Rating { get => GetProp<decimal>("Rating"); set => SetProp<decimal>("Rating", value); }
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions