private async Task <bool> IsCallingUserIsKeyContact(HttpRequest request) { var userId = JWTAttributesService.GetSubject(request); var exists = (await _keyContactRepo.FindByUserId(userId)).ToList().Where(x => x.IsPending == false).ToList(); return(exists.Count > 0); }
public async Task <IActionResult> Get() { var userId = JWTAttributesService.GetSubject(Request); var playList = await _playListRepo.FindById(userId); return(Ok(playList)); }
public IActionResult UserHasPendingOrg() { var orgs = _pendingOrgRepository.GetAll(); var userHasPendingOrgs = orgs.Any(org => org.UserId == JWTAttributesService.GetSubject(Request)); return(Ok(userHasPendingOrgs)); }
public IActionResult AddPlaylist(Playlist playlist) { var userId = JWTAttributesService.GetSubject(Request); playlist.Id = userId; _playListRepo.UpdateOne(playlist); return(Ok(playlist)); }
public async Task <IActionResult> AddKeyContact([FromRoute] string orgId) { await _keyContactRepository.InsertOne(new KeyContacts() { Id = Guid.NewGuid().ToString(), OrgId = orgId, UserId = JWTAttributesService.GetSubject(Request), UserEmail = JWTAttributesService.GetEmail(Request) }); return(Ok()); }
public async Task <IActionResult> GetOrgsIAmRequestingToJoin() { var userId = JWTAttributesService.GetSubject(Request); var responnses = await _keyContactRepository.FindByUserId(userId); var nonPending = responnses.Where(x => x.IsPending == true); return(Ok(nonPending)); }
public async Task <IActionResult> GetById(string id) { var userId = JWTAttributesService.GetSubject(Request); var org = await _orgRepository.FindById(id); var keyContactList = await _keyContactRepo.FindByOrgId(id); return(Ok(org)); }
public async Task <IActionResult> Delete(string id) { if (JWTAttributesService.GetSubject(Request) != _configuration["Admin:UserId"]) { return(Forbid()); } var org = await _pendingOrgRepository.FindById(id); await _pendingOrgRepository.DeleteOne(org); return(Ok()); }
public async Task <IActionResult> GetPendingKeyContacts() { var callingUserId = JWTAttributesService.GetSubject(Request); var contacts = await _keyContactRepository.FindByUserId(callingUserId); var list = new List <KeyContacts>(); foreach (var contact in contacts) { var x = (await _keyContactRepository.FindByOrgId(contact.OrgId)).Where(x => x.UserId != callingUserId && x.IsPending == true); list.AddRange(x); } return(Ok(list)); }
public IActionResult Get(string text = null) { if (JWTAttributesService.GetSubject(Request) != _configuration["Admin:UserId"]) { return(Forbid()); } var orgs = _pendingOrgRepository.GetAll(); if (text != null) { var filteredList = orgs.Where(org => org.Name.ToLower().Contains(text.ToLower())).ToList(); return(Ok(filteredList)); } return(Ok(orgs)); }
public async Task <IActionResult> FetchAdminRequests() { var userId = JWTAttributesService.GetSubject(Request); var orgs = await _keyContactRepo.FindByUserId(userId); var pendingrequests = new List <OrganisationMember>(); foreach (var o in orgs) { if (!o.IsPending) { var allRequests = _orgMemberRepository.GetAllPendingRequests(o.OrgId); pendingrequests.AddRange(allRequests.Where(x => x.Status != OrganisationMembersStatus.JOINED && x.Status != OrganisationMembersStatus.DENIED)); } } return(Ok(pendingrequests)); }
public async Task <IActionResult> Post([FromBody] PendingOrganisation organisation, [FromServices] IOptions <ApiBehaviorOptions> apiBehaviorOptions) { var currentOrgs = _orgRepository.GetAll(); var pendingOrgs = _pendingOrgRepository.GetAll(); try { Guid.Parse(organisation.Id); } catch (Exception _) { ModelState.AddModelError(nameof(Organisation.Id), "Organization Id is not a valid Guid"); return(apiBehaviorOptions.Value.InvalidModelStateResponseFactory(ControllerContext)); } if (organisation.CharityNumber > 0 && (currentOrgs.Any(org => org.CharityNumber == organisation.CharityNumber) || pendingOrgs.Any(org => org.CharityNumber == organisation.CharityNumber))) { ModelState.AddModelError(nameof(Organisation.CharityNumber), "Charity number already exists."); return(apiBehaviorOptions.Value.InvalidModelStateResponseFactory(ControllerContext)); } if (currentOrgs.Any(org => org.Name == organisation.Name) || pendingOrgs.Any(org => org.Name == organisation.Name)) { ModelState.AddModelError(nameof(Organisation.Name), "Organisation name already exists."); return(apiBehaviorOptions.Value.InvalidModelStateResponseFactory(ControllerContext)); } else { organisation.UserId = JWTAttributesService.GetSubject(Request); organisation.UserEmail = JWTAttributesService.GetEmail(Request); await _pendingOrgRepository.InsertOne(organisation); await _sendgridSender.SendOrgRequestEmail( new SendGrid.Helpers.Mail.EmailAddress("*****@*****.**"), new SendGrid.Helpers.Mail.EmailAddress(_configuration["Admin:EmailAddress"]), organisation.Name ); return(Accepted(organisation)); } }
public async Task <IActionResult> AddAdminRequestToKeyContact([FromRoute] string orgId) { await _keyContactRepository.InsertOne(new KeyContacts() { Id = Guid.NewGuid().ToString(), OrgId = orgId, UserId = JWTAttributesService.GetSubject(Request), UserEmail = JWTAttributesService.GetEmail(Request), IsAdmin = true, IsPending = true }); var keyContacts = await _keyContactRepository.FindApprovedByOrgId(orgId); var org = await _organisationRepository.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 <IActionResult> VerifyPendingOrganisation(string id) { var org = await _pendingOrgRepository.FindById(id); if (JWTAttributesService.GetSubject(Request) != _configuration["Admin:UserId"]) { return(Forbid()); } Organisation newOrg = new Organisation { Id = org.Id, Description = org.Description, CharityNumber = org.CharityNumber, Name = org.Name, ServicesIds = org.ServicesIds, Url = org.Url }; await _orgRepository.InsertOne(newOrg); await _keyContactRepo.InsertOne(new KeyContacts() { Id = Guid.NewGuid().ToString(), OrgId = org.Id, UserId = org.UserId, UserEmail = org.UserEmail }); await _pendingOrgRepository.DeleteOne(org); var publishedOrg = _registerManagmentServiceClient.CreateOrganisation(org); await _sendgridSender.SendOrgApprovedEmail( new SendGrid.Helpers.Mail.EmailAddress("*****@*****.**"), new SendGrid.Helpers.Mail.EmailAddress(org.UserEmail), org.Name, org.Id ); return(Accepted(publishedOrg)); }
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 <IActionResult> Post([FromBody] Service service, [FromServices] IOptions <ApiBehaviorOptions> apiBehaviorOptions) { var userId = JWTAttributesService.GetSubject(Request); var authorizationResult = await _authorizationService.AuthorizeAsync(User, service.OrganizationId, AuthzPolicyNames.MustBeOrgAdmin); if (!authorizationResult.Succeeded) { return(Forbid()); } try { Guid.Parse(service.Id); } catch (Exception _) { ModelState.AddModelError(nameof(Service.Id), "Service Id is not a valid Guid"); return(apiBehaviorOptions.Value.InvalidModelStateResponseFactory(ControllerContext)); } var publishedService = _registerManagmentServiceClient.CreateService(service); await _serRepository.InsertOne(publishedService); return(Accepted(publishedService)); }
public async Task <IActionResult> FetchRequestsAboutMe() { var userId = JWTAttributesService.GetSubject(Request); return(Ok(_orgMemberRepository.GetRequestsAboutUser(userId))); }