Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
2216d83
checkin in
philipthomas-MSFT Aug 1, 2024
28d7222
Merge branch 'master' into 4616-cfp-avad-issues-with-serializationdes…
philipthomas-MSFT Aug 1, 2024
5f7bc3f
support for both STJ and NSJ
philipthomas-MSFT Aug 5, 2024
c5a09e9
Merge remote-tracking branch 'origin/master' into 4616-cfp-avad-issue…
philipthomas-MSFT Aug 5, 2024
3a879b7
update contracts.
philipthomas-MSFT Aug 5, 2024
23e7631
name change PreviousLsn
philipthomas-MSFT Aug 5, 2024
82bc224
Merge remote-tracking branch 'origin/master' into 4616-cfp-avad-issue…
philipthomas-MSFT Aug 6, 2024
375236c
STJ TypeConverter support for ChangeFeedMetadata
philipthomas-MSFT Aug 6, 2024
7acac4d
adding bacl StringEnumConverter
philipthomas-MSFT Aug 6, 2024
461e1e8
Merge remote-tracking branch 'origin/master' into 4616-cfp-avad-issue…
philipthomas-MSFT Aug 6, 2024
6a71a82
test for Writes ChangeFeedMetadata
philipthomas-MSFT Aug 6, 2024
b6fde92
removing DateTimeOffset as results are inconsistent.
philipthomas-MSFT Aug 7, 2024
f2d1e6f
trying to get GMT, not local
philipthomas-MSFT Aug 7, 2024
84fdcc3
static UnixEpoch
philipthomas-MSFT Aug 7, 2024
2c07550
Merge branch 'master' into 4616-cfp-avad-issues-with-serializationdes…
ealsur Aug 12, 2024
e868ba5
Merge branch 'master' into 4616-cfp-avad-issues-with-serializationdes…
philipthomas-MSFT Aug 14, 2024
7ef00af
Merge remote-tracking branch 'origin/master' into 4616-cfp-avad-issue…
philipthomas-MSFT Aug 16, 2024
d71b8b0
Merge branch '4616-cfp-avad-issues-with-serializationdeserialization-…
philipthomas-MSFT Aug 16, 2024
d30e7af
static qualifier in tests
philipthomas-MSFT Aug 16, 2024
121d459
PropertyNameCaseInsensitive = false tests. copy of True tests.
philipthomas-MSFT Aug 19, 2024
0339f16
setting PropertyNameCaseInsensitive correctly for tests
philipthomas-MSFT Aug 19, 2024
3b13a15
removed duplication for propertyNameCaseInsensitive tests
philipthomas-MSFT Aug 19, 2024
625fe86
remove JsonStringEnumConverter(), from tests
philipthomas-MSFT Aug 19, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,6 @@

namespace Microsoft.Azure.Cosmos
{
using Newtonsoft.Json;

/// <summary>
/// The typed response that contains the current, previous, and metadata change feed resource when <see cref="ChangeFeedMode"/> is initialized to <see cref="ChangeFeedMode.AllVersionsAndDeletes"/>.
/// </summary>
Expand Down Expand Up @@ -58,19 +56,16 @@ class ChangeFeedItem<T>
/// <summary>
/// The full fidelity change feed current item.
/// </summary>
[JsonProperty(PropertyName = "current")]
public T Current { get; set; }

/// <summary>
/// The full fidelity change feed metadata.
/// </summary>
[JsonProperty(PropertyName = "metadata", NullValueHandling = NullValueHandling.Ignore)]
public ChangeFeedMetadata Metadata { get; set; }

/// <summary>
/// For delete operations, previous image is always going to be provided. The previous image on replace operations is not going to be exposed by default and requires account-level or container-level opt-in.
/// </summary>
[JsonProperty(PropertyName = "previous", NullValueHandling = NullValueHandling.Ignore)]
public T Previous { get; set; }
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,51 +4,61 @@

namespace Microsoft.Azure.Cosmos
{
using System;
using Microsoft.Azure.Documents;
using Newtonsoft.Json;
using Newtonsoft.Json.Converters;

/// <summary>
/// The metadata of a change feed resource with <see cref="ChangeFeedMode"/> is initialized to <see cref="ChangeFeedMode.AllVersionsAndDeletes"/>.
/// </summary>
#if PREVIEW
public
#else
internal
#endif
#endif
class ChangeFeedMetadata
{
/// <summary>
/// New instance of meta data for <see cref="ChangeFeedItem{T}"/> created.
/// </summary>
/// <param name="crts"></param>
/// <param name="lsn"></param>
/// <param name="operationType"></param>
/// <param name="previousImageLSN"></param>
/// <param name="timeToLiveExpired"></param>
public ChangeFeedMetadata(
long crts,
long lsn,
ChangeFeedOperationType operationType,
long previousImageLSN,
bool timeToLiveExpired)
{
this.Crts = crts;
this.Lsn = lsn;
this.OperationType = operationType;
this.PreviousImageLSN = previousImageLSN;
this.TimeToLiveExpired = timeToLiveExpired;
}

/// <summary>
/// The conflict resolution timestamp.
/// </summary>
[JsonProperty(PropertyName = "crts", NullValueHandling = NullValueHandling.Ignore)]
[JsonConverter(typeof(UnixDateTimeConverter))]
public DateTime ConflictResolutionTimestamp { get; internal set; }
public long Crts { get; }

/// <summary>
/// The current logical sequence number.
/// </summary>
[JsonProperty(PropertyName = "lsn", NullValueHandling = NullValueHandling.Ignore)]
public long Lsn { get; internal set; }
public long Lsn { get; }

/// <summary>
/// The change feed operation type.
/// </summary>
[JsonProperty(PropertyName = "operationType")]
[JsonConverter(typeof(StringEnumConverter))]
public ChangeFeedOperationType OperationType { get; internal set; }
public ChangeFeedOperationType OperationType { get; }

/// <summary>
/// The previous logical sequence number.
/// </summary>
[JsonProperty(PropertyName = "previousImageLSN", NullValueHandling = NullValueHandling.Ignore)]
public long PreviousLsn { get; internal set; }
public long PreviousImageLSN { get; }

/// <summary>
/// Used to distinquish explicit deletes (e.g. via DeleteItem) from deletes caused by TTL expiration (a collection may define time-to-live policy for documents).
/// </summary>
[JsonProperty(PropertyName = "timeToLiveExpired", NullValueHandling= NullValueHandling.Ignore)]
public bool IsTimeToLiveExpired { get; internal set; }
public bool TimeToLiveExpired { get; }
}
}
Loading