public virtual ResponseResource RejectMembershipApplication(IPrincipal principal, MembershipApplicationRejectionRequest request) { var user = _dependencies.UserService.GetGuaranteedAuthenticatedUser(principal); var application = _dependencies.StorageService.SetOf <MembershipApplication>().SingleOrDefault(x => x.Id == request.Id); if (application == null) { return(new ResponseResource { HasError = true, Error = "Application not found." }); } _dependencies.OrganisationService.GuaranteeUserHasPermission(user, application.Organisation, ShurahOrganisationPermission.AcceptMembershipApplication); var currentMember = _dependencies.OrganisationService.GetGuaranteedMember(principal, application.OrganisationId); var existingAcceptance = application.Acceptances.SingleOrDefault(x => x.AcceptingMemberId == currentMember.Id); if (existingAcceptance != null) { return(new ResponseResource { HasError = true, Error = "You have already accepted this application." }); } //TODO send email with rejection reason _dependencies.StorageService.SetOf <MembershipApplication>().Remove(application); _dependencies.StorageService.SaveChanges(); return(new ResponseResource()); }
public ResponseResource Post([FromBody] MembershipApplicationRejectionRequest request) { return(_service.RejectMembershipApplication(User, request)); }
public HttpResponseMessage Post(MembershipApplicationRejectionRequest request) { return(Request.CreateResponse(HttpStatusCode.OK, _service.RejectMembershipApplication(User, request))); }