コード例 #1
0
        /// <summary>
        /// Create project
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public async Task <ActionResult> Create([FromBody] ProjectModel model)
        {
            var products = model.LineItems.Select(x =>
                                                  new ProjectProductParametersDto
            {
                UserId   = x._UserId,
                StateId  = x._StateId,
                Quantity = x.Quantity,
                Hidden   = x._Hidden,
                Fields   = x._Fields,
                Key      = x.Key,
            }).ToList();

            var result = await _projectsClient.CreateAsync(body : new CreateProjectDto
            {
                CustomerId         = model.UserId,
                CustomerName       = model.UserId,
                OrderId            = Guid.NewGuid().ToString(),
                GroupId            = Guid.NewGuid().ToString(),
                EcommerceProductId = model.ProductId.ToString(),
                Products           = products
            });

            using (var db = ApplicationDbContext.Create())
            {
                db.Projects.Add(new ProjectDbModel()
                {
                    ProductId = model.ProductId,
                    ProjectId = result.Id,
                    UserId    = model.UserId
                });
                await db.SaveChangesAsync();
            }

            return(new HttpStatusCodeResult(HttpStatusCode.OK));
        }
        public async Task <ActionResult> Create([FromBody] ProjectModel model)
        {
            CreateProjectDto project = new CreateProjectDto()
            {
                OrderId          = model.OrderId,
                OrderNumber      = EcommerceDataService.OrderIdToNumber(model.OrderId),
                CustomerId       = model.UserId,
                CustomerName     = EcommerceDataService.CustomerIdToName(model.UserId),
                ProductReference = model.ProductId,
                Items            = model.Items.Select(x => new ProjectItemDto()
                {
                    DesignIds = x.StateId.ToList(),
                    Fields    = x.Fields,
                    Hidden    = x.Hidden,
                }).ToList()
            };

            var result = await _projectsApiClient.CreateAsync(_options.StorefrontId, body : project);

            return(new OkObjectResult(result));
        }