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