/// <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)); }