public HttpResponseMessage Post(UpdateTermDefinitionRequest request) { return(Request.CreateResponse(HttpStatusCode.OK, _service.UpdateTermDefinition(User, request))); }
public virtual UpdateTermDefinitionResponse UpdateTermDefinition(IPrincipal principal, UpdateTermDefinitionRequest request) { var user = _dependencies.UserService.GetGuaranteedAuthenticatedUser(principal); var term = _dependencies.StorageService.SetOf <MembershipRuleTermDefinition>() .SingleOrDefault(t => t.Id == request.TermId); if (term == null) { throw new Exception("Term not found"); } var organisation = _dependencies.OrganisationService.GetOrganisation(term.OrganisationId); _dependencies.OrganisationService.GuaranteeUserHasPermission(user, organisation, ShurahOrganisationPermission.EditMembershipRules); var existingSimilarTerm = _dependencies.StorageService.SetOf <MembershipRuleTermDefinition>() .FirstOrDefault(t => t.Id != request.TermId && t.Term == request.Term); if (existingSimilarTerm != null) { return(new UpdateTermDefinitionResponse { HasError = true, Error = "This term is already defined" }); } term.Term = request.Term; term.Definition = request.Definition; _dependencies.StorageService.SaveChanges(); return(new UpdateTermDefinitionResponse { TermId = term.Id, Term = term.Term }); }
public UpdateTermDefinitionResponse Post(UpdateTermDefinitionRequest request) { return(_service.UpdateTermDefinition(User, request)); }