public async Task <IActionResult> EditResource(IdentityItemViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(RedirectToAction("EditResource", new { siteId = model.SiteId, resourceName = model.Name }));
            }

            Guid siteId = siteManager.CurrentSite.Id;

            if (!string.IsNullOrEmpty(model.SiteId) && model.SiteId.Length == 36)
            {
                siteId = new Guid(model.SiteId);
            }
            var selectedSite = await siteManager.GetSiteForDataOperations(siteId);

            var resource = await idManager.FetchIdentityResource(selectedSite.Id.ToString(), model.Name);

            if (resource == null)
            {
                this.AlertDanger(sr["API Resource not found"], true);
                return(RedirectToAction("Index", new { siteId = selectedSite.Id.ToString() }));
            }

            resource.Description             = model.Description;
            resource.DisplayName             = model.DisplayName;
            resource.Emphasize               = model.Emphasize;
            resource.Enabled                 = model.Enabled;
            resource.Required                = model.Required;
            resource.ShowInDiscoveryDocument = model.ShowInDiscoveryDocument;
            await idManager.UpdateIdentityResource(selectedSite.Id.ToString(), resource);

            var successFormat = sr["The Identity Resource <b>{0}</b> was successfully updated."];

            this.AlertSuccess(string.Format(successFormat, resource.Name), true);

            return(RedirectToAction("EditResource", new { siteId = selectedSite.Id.ToString(), resourceName = resource.Name }));
        }
Пример #2
0
        public ActionResult Edit(int id, EditableIdentityResourceViewModel editableViewModel)
        {
            if (ModelState.IsValid)
            {
                var claimsIds             = GetSelectedItems(editableViewModel.SelectableClaimTypes).Select(x => x.Id);
                var identityResourceModel =
                    Mapper.Map <IdentityResourceModel>(editableViewModel.IdentityResourceViewModel);

                var result = m_identityResourceManager.UpdateIdentityResource(id, identityResourceModel, claimsIds);

                if (!result.HasError)
                {
                    return(RedirectToAction(nameof(View), new { id }));
                }

                ModelState.AddModelError(result.Error.Message);
            }

            var viewModel =
                ViewModelBuilder.BuildEditableIdentityResourceViewModel(ModelState,
                                                                        editableViewModel.IdentityResourceViewModel);

            return(View(viewModel));
        }