public IActionResult AddMember([FromBody] AddMemberResource addMemberResource) { Member member = new Member { Name = addMemberResource.Name, UserId = addMemberResource.UserId }; context.Members.Add(member); context.SaveChanges(); OrganisationMember organisationMember = new OrganisationMember { OrganisationId = addMemberResource.OrganisationId, MemberId = member.Id }; context.OrganisationMembers.Add(organisationMember); context.SaveChanges(); addMemberResource.Id = member.Id; return(Ok(addMemberResource)); }
public async Task <IActionResult> CreateRequest([FromRoute] string orgId) { // Restricts the requests so you only get one request per org per user ID var userId = JWTAttributesService.GetSubject(Request); var email = JWTAttributesService.GetEmail(Request); var existingRequestsForUser = _orgMemberRepository.GetRequestsAboutUser(userId).Where(x => x.OrgId == orgId); if (existingRequestsForUser.Count() == 0) { var orgmemberRequest = new OrganisationMember() { Id = Guid.NewGuid().ToString(), OrgId = orgId, Status = OrganisationMembersStatus.REQUESTED, UserId = userId, Email = email }; await _orgMemberRepository.InsertOne(orgmemberRequest); } else { var request = existingRequestsForUser.First(); request.Status = OrganisationMembersStatus.REQUESTED; await _orgMemberRepository.UpdateOne(request); } // Get Key Contact for org var keyContacts = await _keyContactRepo.FindApprovedByOrgId(orgId); var org = await _orgRepository.FindById(orgId); foreach (var kc in keyContacts) { await _sendgridSender.SendSingleTemplateEmail( new SendGrid.Helpers.Mail.EmailAddress("*****@*****.**"), new SendGrid.Helpers.Mail.EmailAddress(kc.UserEmail), org.Name ); } return(Ok()); }
public async Task UpdateOne(OrganisationMember member) { await _repo.ReplaceOneAsync(member); }
public async Task InsertOne(OrganisationMember member) { await _repo.InsertOneAsync(member); }