Ejemplo n.º 1
0
        public static CartReadModel ReadCartReadModel(SqlDataReader reader, string userId)
        {
            var idx           = 0;
            var productId     = reader.AsInt64(idx++);
            var price         = reader.AsDecimal(idx++);
            var name          = reader.AsString(idx++);
            var discountPrice = reader.AsDecimalOrNull(idx++);
            var imageUrl      = reader.AsString(idx++);
            var id            = reader.AsInt64(idx++);
            var quantity      = reader.AsInt16(idx);

            var cartReadModel = new CartReadModel()
            {
                ProductId     = productId,
                Price         = price,
                Name          = name,
                DiscountPrice = discountPrice,
                Quantity      = quantity,
                ImageUrl      = imageUrl,
                UserId        = userId,
                Id            = id
            };

            return(cartReadModel);
        }
Ejemplo n.º 2
0
        public async Task HandleAsync(CartCreated @event)
        {
            var cart = new CartReadModel
            {
                Id         = @event.AggregateRootId,
                CustomerId = @event.CustomerId
            };

            await repository.InsertAsync(cart);

            await repository.SaveChangesAsync();
        }
Ejemplo n.º 3
0
        public static CartResponse ToCartResponse(this CartReadModel cartReadModel)
        {
            var response = new CartResponse
            {
                CartId     = cartReadModel.Id,
                CustomerId = cartReadModel.CustomerId,
                TotalPrice = cartReadModel.TotalPrice
            };

            foreach (var item in cartReadModel.CartItems)
            {
                response.Items.Add(new CartItemResponse
                {
                    ProductName = item.ProductName,
                    Price       = item.Price,
                    Quantity    = item.Quantity
                });
            }

            return(response);
        }