public async Task <IActionResult> NewApiResource(ApiItemViewModel apiModel) { if (!ModelState.IsValid) { return(RedirectToAction("EditApiResource", new { siteId = apiModel.SiteId, ame = apiModel.Name })); } Guid siteId = siteManager.CurrentSite.Id; if (!string.IsNullOrEmpty(apiModel.SiteId) && apiModel.SiteId.Length == 36) { siteId = new Guid(apiModel.SiteId); } var selectedSite = await siteManager.GetSiteForDataOperations(siteId); ViewData["Title"] = string.Format(CultureInfo.CurrentUICulture, sr["{0} - New API Resource"], selectedSite.SiteName); var exists = await apiManager.ApiResourceExists(selectedSite.Id.ToString(), apiModel.Name); if (exists) { var model = new ApiEditViewModel(); model.SiteId = selectedSite.Id.ToString(); model.NewApi = apiModel; model.NewApi.SiteId = model.SiteId; if (exists) { ModelState.AddModelError("apinameinuseerror", sr["API Resource name is already in use"]); } return(View("EditApiResource", model)); } var api = new ApiResource { Name = apiModel.Name, DisplayName = apiModel.DisplayName, Description = apiModel.Description }; await apiManager.CreateApiResource(selectedSite.Id.ToString(), api); var successFormat = sr["The API Resource <b>{0}</b> was successfully created."]; this.AlertSuccess(string.Format(successFormat, api.Name), true); return(RedirectToAction("EditApiResource", new { siteId = selectedSite.Id.ToString(), apiName = api.Name })); }
public ActionResult Create(EditableApiResourceViewModel editableViewModel) { if (ModelState.IsValid) { var claimsIds = GetSelectedItems(editableViewModel.SelectableClaimTypes).Select(x => x.Id); var apiResourceModel = Mapper.Map <ApiResourceModel>(editableViewModel.ApiResourceViewModel); var result = m_apiResourceManager.CreateApiResource(apiResourceModel, claimsIds); if (!result.HasError) { return(RedirectToAction(nameof(View), new { id = result.Result })); } ModelState.AddModelError(result.Error.Message); } var viewModel = ViewModelBuilder.BuildEditableApiResourceViewModel(ModelState, editableViewModel.ApiResourceViewModel); return(View(viewModel)); }