コード例 #1
0
        public async Task <ActionResult <OrderViewModel> > PostAsync(Models.Orders.OrderCreateRequest request)
        {
            foreach (var item in request.Items)
            {
                var exists = await _orleansClient.GetGrain <IProduct>(item.ProductId).Created();

                if (!exists)
                {
                    return(NotFound());
                }

                if (item.Quantity < 0)
                {
                    ModelState.AddModelError(nameof(item.Quantity), "Invalid");
                    return(BadRequest(ModelState));
                }
            }

            var order  = MapFromRequest(request);
            var result = await _orleansClient.GetGrain <IOrders>(Guid.Empty).Add(order);

            var response = MapToViewModel(result);

            return(response);
        }
コード例 #2
0
 public static GrainInterfaces.Orders.OrderCreateRequest MapFromRequest(Models.Orders.OrderCreateRequest request)
 {
     return(new GrainInterfaces.Orders.OrderCreateRequest
     {
         Items = request.Items.Select(x => MapFromRequest(x)).ToList(),
         Name = request.Name,
     });
 }