public async Task <IViewComponentResult> InvokeAsync(string appId = null, string clientId = null) { ClientProductAppViewModel model; if (appId == null) { // Add Product model = new ClientProductAppViewModel(); model.ClientId = clientId; model.SubscriptionStartUTC = DateTime.UtcNow; } else { // Edit Product var app = await _clientManager.GetProductAsync(appId); model = app.ProjectTo <ClientProductAppViewModel>(); model.ClientProductAppId = app.Id; } var appAddons = await _clientManager.GetProductAddOnsAsync(model.ClientProductAppId); model.AddonIds = appAddons.Select(x => x.Id).ToList(); ViewBag.AvailableProducts = await GetProductSelectList(); ViewBag.AvailableAddons = await GetAddonSelectList(model.ProductId); return(View(model)); }
public async Task <ActionResult> SaveClientProductApp(ClientProductAppViewModel model) { if (ModelState.IsValid) { var app = model.ProjectTo <ClientProductApp>(); app.Id = model.ClientProductAppId; app.Client = null; app.Product = null; await _clientManager.AddProductAsync(app, model.AddonIds); model.ClientProductAppId = app.Id; return(Ok(model)); } return(BadRequest(model)); }