public IActionResult CreatePolicy([FromBody] PolicyEditViewModel policyEditViewModel) { if (ModelState.IsValid) { if (policyEditViewModel == null) { return(BadRequest($"{nameof(policyEditViewModel)} cannot be null")); } // Get associated RiskConstructionType if (policyEditViewModel.RiskConstructionTypeId > 0) { var riskConstructionType = this.UnitOfWork.RiskConstructionTypes.GetSingleOrDefault(c => c.Id == policyEditViewModel.RiskConstructionTypeId); policyEditViewModel.RiskConstructionType = riskConstructionType; } var policy = Mapper.Map <Policy>(policyEditViewModel); policy.DateCreated = DateTime.UtcNow; policy.DateModified = policy.DateCreated; policy.CreatedByUserId = this.User.Identity.Name; policy.ModifiedByUserId = policy.CreatedByUserId; this.UnitOfWork.Policies.Add(policy); this.UnitOfWork.SaveChanges(); policyEditViewModel = Mapper.Map <PolicyEditViewModel>(policy); return(CreatedAtAction(GetPolicyByIdActionName, new { id = policyEditViewModel.Id }, policyEditViewModel)); } return(BadRequest(ModelState)); }
public async Task <IActionResult> EditPolicy(CancellationToken cancellationToken, Guid id) { var policy = await _service.FetchPolicy(id, cancellationToken); if (policy == null) { _log.LogError($"policy not found with id {id}, so redirecting to index"); return(RedirectToAction("Index")); } var model = new PolicyEditViewModel(); model.Id = policy.Id; model.TenantId = policy.TenantId; model.AllowedRolesCsv = string.Join(",", policy.AllowedRoles); model.AuthenticationSchemesCsv = string.Join(",", policy.AuthenticationSchemes); model.Name = policy.Name; model.RequireAuthenticatedUser = policy.RequireAuthenticatedUser; model.RequiredUserName = policy.RequiredUserName; model.Notes = policy.Notes; foreach (var claim in policy.RequiredClaims) { var claimModel = new ClaimRequirementViewModel(policy.Id); claimModel.ClaimName = claim.ClaimName; claimModel.AllowedValuesCsv = string.Join(",", claim.AllowedValues); model.RequiredClaims.Add(claimModel); } return(View(model)); }
public IActionResult UpdatePolicy(int id, [FromBody] PolicyEditViewModel policyEditViewModel) { if (ModelState.IsValid) { if (policyEditViewModel == null) { return(BadRequest($"{nameof(policyEditViewModel)} cannot be null")); } // Get associated RiskConstructionType if (policyEditViewModel.RiskConstructionTypeId > 0) { var riskConstructionType = this.UnitOfWork.RiskConstructionTypes.GetSingleOrDefault(c => c.Id == policyEditViewModel.RiskConstructionTypeId); policyEditViewModel.RiskConstructionType = riskConstructionType; } if (policyEditViewModel.Id != id) { return(BadRequest("Conflicting policy id in parameter and model data")); } var policy = this.UnitOfWork.Policies.GetSingleOrDefaultDetails(e => e.Id == id); if (policy == null) { return(NotFound(id)); } Mapper.Map <PolicyEditViewModel, Policy>(policyEditViewModel, policy); this.UnitOfWork.Policies.Update(policy); this.UnitOfWork.SaveChanges(); return(NoContent()); } return(BadRequest(ModelState)); }
public async Task <IActionResult> EditPolicy(PolicyEditViewModel model) { var result = await _service.UpdatePolicy( model.Id, model.RequireAuthenticatedUser, model.AllowedRolesCsv, model.AuthenticationSchemesCsv, model.RequiredUserName, model.Notes); if (result.Succeeded) { var successFormat = _sr["The policy {0} was successfully updated."]; this.AlertSuccess(string.Format(successFormat, model.Name), true); } else { this.AlertDanger(_sr[result.Message], true); } return(RedirectToAction("EditPolicy", new { id = model.Id })); }