Exemplo n.º 1
0
        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));
        }