Esempio n. 1
0
        public Task <AsyncTaskResult> HandleAsync(SpecificationUpdatedEvent evnt)
        {
            return(TryTransactionAsync(async(connection, transaction) =>
            {
                var effectedRows = await connection.UpdateAsync(new
                {
                    Version = evnt.Version,
                    EventSequence = evnt.Sequence
                }, new
                {
                    Id = evnt.AggregateRootId,
                    //Version = evnt.Version - 1
                }, ConfigSettings.GoodsTable, transaction);

                if (effectedRows == 1)
                {
                    await connection.UpdateAsync(new
                    {
                        Name = evnt.SpecificationInfo.Name,
                        Value = evnt.SpecificationInfo.Value,
                        Price = evnt.SpecificationInfo.Price,
                        OriginalPrice = evnt.SpecificationInfo.OriginalPrice,
                        Benevolence = evnt.SpecificationInfo.Benevolence,
                        Number = evnt.SpecificationInfo.Number,
                        Thumb = evnt.SpecificationInfo.Thumb,
                        BarCode = evnt.SpecificationInfo.BarCode
                    }, new
                    {
                        GoodsId = evnt.AggregateRootId,
                        Id = evnt.SpecificationId
                    }, ConfigSettings.SpecificationTable, transaction);
                }
            }));
        }
Esempio n. 2
0
 private void Handle(SpecificationUpdatedEvent evnt)
 {
     _specifications.Single(x => x.Id == evnt.SpecificationId).Info = evnt.SpecificationInfo;
 }