public Domain.CoffeeRoastingEvent Map(CoffeeRoastingEvent dbEvent) { return(new( Id <Domain.CoffeeRoastingEvent> .From(dbEvent.Id), dbEvent.Contacts.Select(c => c.Id).Select(id => Id <Contact> .From(id)), dbEvent.IsActive, LocalDate.FromDateTime(dbEvent.Date), LocalDate.FromDateTime(dbEvent.OrderByDate), Name <Domain.CoffeeRoastingEvent> .Create(dbEvent.Name), dbEvent.CoffeeRoastingEventCoffees.ToDictionary( ec => OrderReferenceLabel.Create(ec.Label), ec => new Coffee( Id <Coffee> .From(ec.Coffee.Id), Name <Coffee> .Create(ec.Coffee.Name), Description.Create(ec.Coffee.Description), UsdPrice.Create(ec.Coffee.Price), Ounces.Create(ec.Coffee.OzWeight))), dbEvent.Orders.Select(order => new Domain.Order( Id <Domain.Order> .From(order.Id), Id <Contact> .From(order.ContactId), OffsetDateTime.FromDateTimeOffset(order.CreatedTimestamp), order.OrderCoffees.ToDictionary( oc => Id <Coffee> .From(oc.CoffeeId), oc => OrderQuantity.Create(oc.Quantity)), new Domain.Invoice( Id <Domain.Invoice> .From(order.Invoice.Id), UsdInvoiceAmount.Create(order.Invoice.Amount), order.Invoice.IsPaid, order.Invoice.PaymentMethod), order.IsConfirmed)))); }
public Coffee( Id <Coffee> id, Name <Coffee> name, Description description, UsdPrice price, Ounces netWeightPerBag) : base(id) { Name = name; Description = description; Price = price; NetWeightPerBag = netWeightPerBag; }
public async Task <Arr <Flat> > GetLatestUpdate() { var json = await GetLatestUpdateJson();// GetTestData(); var root = JToken.Parse(json); var flats = root["apartments"].Map(x => new Flat( id: x["id"].Value <int>(), url: x["url"].Value <string>(), photoUrl: x["photo"].Value <string>(), type: x["rent_type"].Value <string>(), address: x["location"]["user_address"].Value <string>(), location: x["location"].Apply(y => new Location(y["latitude"].Value <double>(), y["longitude"].Value <double>())), isOwner: x["contact"]["owner"].Value <bool>(), price: UsdPrice.Parse(x["price"]["converted"]["USD"]["amount"].Value <string>()), createdAt: x["created_at"].Value <DateTime>(), updatedAt: x["last_time_up"].Value <DateTime>() )).ToArr(); return(flats); }
public async Task <ActionResult <Dto.Coffee> > UpdateCoffee(Guid id, [FromBody] Dto.CoffeePostRequest request, CancellationToken cancellationToken) { var cmd = new UpdateCoffeeCommand { CoffeeId = Id <Coffee> .From(id), Name = request.Name != null ? Name <Coffee> .Create(request.Name) : null, Description = request.Description != null?Description.Create(request.Description) : null, Price = request.PriceInUsd.HasValue ? UsdPrice.Create(request.PriceInUsd.Value) : null, WeightPerBag = request.WeightPerBagInOz.HasValue ? Ounces.Create(request.WeightPerBagInOz.Value) : null, }; var coffee = await _mediator.Send(cmd, cancellationToken); return(Accepted($"/api/v1/coffees/{coffee.Id}", new Dto.Coffee { Id = coffee.Id, Name = coffee.Name, Description = coffee.Description, PriceInUsd = coffee.Price, WeightPerBagInOz = coffee.NetWeightPerBag, })); }