public async Task <IActionResult> NewScope(ScopeItemViewModel scopeModel) { if (!ModelState.IsValid) { return(RedirectToAction("EditScope", new { siteId = scopeModel.SiteId, scopeName = scopeModel.Name })); } Guid siteId = siteManager.CurrentSite.Id; if (!string.IsNullOrEmpty(scopeModel.SiteId) && scopeModel.SiteId.Length == 36) { siteId = new Guid(scopeModel.SiteId); } var selectedSite = await siteManager.GetSiteForDataOperations(siteId); ViewData["Title"] = string.Format(CultureInfo.CurrentUICulture, sr["{0} - New Scope"], selectedSite.SiteName); var exists = await scopesManager.ScopeExists(selectedSite.Id.ToString(), scopeModel.Name); var scopeType = scopesManager.ResolveScopeType(scopeModel.ScopeType); if (exists || !scopeType.HasValue) { var model = new ScopeEditViewModel(); model.SiteId = selectedSite.Id.ToString(); model.NewScope = scopeModel; model.NewScope.SiteId = model.SiteId; if (exists) { ModelState.AddModelError("scopenameinuseerror", sr["Scope name is already in use"]); } if (!scopeType.HasValue) { ModelState.AddModelError("invalidscopetypeerror", sr["Invalid Scope Type"]); } return(View("EditScope", model)); } var scope = new Scope { Type = scopeType.Value, Name = scopeModel.Name, DisplayName = scopeModel.DisplayName, Description = scopeModel.Description }; await scopesManager.CreateScope(selectedSite.Id.ToString(), scope); var successFormat = sr["The Scope <b>{0}</b> was successfully Created."]; this.AlertSuccess(string.Format(successFormat, scope.Name), true); return(RedirectToAction("EditScope", new { siteId = selectedSite.Id.ToString(), scopeName = scope.Name })); }
public async Task <IActionResult> EditScope(ScopeItemViewModel scopeModel) { if (!ModelState.IsValid) { return(RedirectToAction("EditScope", new { siteId = scopeModel.SiteId, scopeName = scopeModel.Name })); } Guid siteId = siteManager.CurrentSite.Id; if (!string.IsNullOrEmpty(scopeModel.SiteId) && scopeModel.SiteId.Length == 36) { siteId = new Guid(scopeModel.SiteId); } var selectedSite = await siteManager.GetSiteForDataOperations(siteId); var scope = await scopesManager.FetchScope(selectedSite.Id.ToString(), scopeModel.Name); if (scope == null) { this.AlertDanger(sr["Scope not found"], true); return(RedirectToAction("Index", new { siteId = selectedSite.Id.ToString() })); } scope.AllowUnrestrictedIntrospection = scopeModel.AllowUnrestrictedIntrospection; scope.ClaimsRule = scopeModel.ClaimsRule; scope.Description = scopeModel.Description; scope.DisplayName = scopeModel.DisplayName; scope.Emphasize = scopeModel.Emphasize; scope.Enabled = scopeModel.Enabled; scope.IncludeAllClaimsForUser = scopeModel.IncludeAllClaimsForUser; scope.Required = scopeModel.Required; scope.ShowInDiscoveryDocument = scopeModel.ShowInDiscoveryDocument; await scopesManager.UpdateScope(selectedSite.Id.ToString(), scope); var successFormat = sr["The Scope <b>{0}</b> was successfully updated."]; this.AlertSuccess(string.Format(successFormat, scope.Name), true); return(RedirectToAction("EditScope", new { siteId = selectedSite.Id.ToString(), scopeName = scope.Name })); }