Example #1
0
        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));
        }
Example #2
0
        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());
        }
Example #3
0
 public async Task UpdateOne(OrganisationMember member)
 {
     await _repo.ReplaceOneAsync(member);
 }
Example #4
0
 public async Task InsertOne(OrganisationMember member)
 {
     await _repo.InsertOneAsync(member);
 }