Exemple #1
0
        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));
 }
Exemple #3
0
 public HttpResponseMessage Post(MembershipApplicationRejectionRequest request)
 {
     return(Request.CreateResponse(HttpStatusCode.OK, _service.RejectMembershipApplication(User, request)));
 }