Exemplo n.º 1
0
            public AggregateRoot <Flight> Deserialize(JsonSerializerSettings jsonSerializerSettings)
            {
                var flight = JsonConvert.DeserializeObject <Flight>(JsonDocument, jsonSerializerSettings)
                             ?? throw new DataException($"JsonDocument is null.");
                var versionTag = VersionTagConverter.FromBytes(VersionTag);

                return(AggregateRoot.Create(flight, versionTag));
            }
Exemplo n.º 2
0
            public FlightDetails Deserialize(JsonSerializerSettings jsonSerializerSettings)
            {
                var versionTag = VersionTagConverter.FromBytes(VersionTag);
                var bookings   = JsonConvert.DeserializeObject <IEnumerable <Booking> >(Bookings, jsonSerializerSettings)
                                 ?? throw new DataException($"JsonDocument is null.");

                return(new FlightDetails(
                           new FlightId(Id),
                           versionTag,
                           Capacity,
                           bookings));
            }
Exemplo n.º 3
0
        public async Task UpdateAsync(AggregateRoot <Flight> aggregateRoot)
        {
            const string statement = @"UPDATE [Flights] SET [JsonDocument] = @document WHERE [Id] = @id AND [VersionTag] = @versionTag";

            var affectedRows = await _sqlConnection.ExecuteAsync(statement, new
            {
                document   = JsonConvert.SerializeObject(aggregateRoot.Entity, _jsonSerializerSettings),
                id         = aggregateRoot.Entity.Id.Value,
                versionTag = VersionTagConverter.ToBytes(aggregateRoot.VersionTag),
            });

            if (affectedRows == 0)
            {
                throw new DBConcurrencyException();
            }
        }