public virtual MembershipCancellationResponseResource SubmitCancellation(LeaveOrganisationRequest request, IPrincipal principal) { var user = _dependencies.UserService.GetAuthenticatedUser(principal); if (user == null) { return(new MembershipCancellationResponseResource { HasError = true, Error = "unable to find user" }); } var membership = user.MemberAuth0Users.FirstOrDefault(x => x.Member.OrganisationId == request.OrganisationId); if (membership != null) { membership.Member.Removed = true; } user.MembershipApplications.Where(m => m.OrganisationId == request.OrganisationId).ToList().ForEach(m => { m.Acceptances.ToList().ForEach(a => _dependencies.StorageService.SetOf <MembershipApplicationAcceptance>().Remove(a)); _dependencies.StorageService.SetOf <MembershipApplication>().Remove(m); }); _dependencies.StorageService.SaveChanges(); return(new MembershipCancellationResponseResource { HasError = false, }); }
public MembershipCancellationResponseResource Post([FromBody] LeaveOrganisationRequest request) { return(_service.SubmitCancellation(request, User)); }
public HttpResponseMessage Post(LeaveOrganisationRequest request) { return(Request.CreateResponse(HttpStatusCode.OK, value: _service.SubmitCancellation(request, User))); }