コード例 #1
0
        /// <summary>
        /// Update project
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public async Task <ActionResult> Update([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 = model.ProjectId == null
                ? 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
            })
                : await _projectsClient.UpdateAsync(projectId : (int)model.ProjectId, body : new UpdateProjectDto
            {
                CustomerId   = model.UserId,
                CustomerName = model.UserId,
                Products     = products
            });

            if (model.ProjectId == null)
            {
                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));
        }