Ejemplo n.º 1
0
 public IActionResult FindAllInvitationNotifications(long userId, int skip, int count)
 {
     try
     {
         var dbr            = new DatabaseRepository(_logger, _env);
         var lstInvitations = new List <InvitationDetails>();
         var notifications  = dbr.FindWithRangeDesct <Notifications>(t => t.UserId == userId && t.MsgStatus == "Invited", skip, count, t => t.Id).ToList();
         foreach (var notify in notifications)
         {
             var groupMember = dbr.Single <Groupmembers>(t => t.id == notify.MsgId && t.userId == userId);
             if (groupMember == null)
             {
                 continue;
             }
             var invitation = new InvitationDetails
             {
                 GroupId    = groupMember.groupid,
                 Message    = notify.NotificationType,
                 EmailId    = groupMember.email,
                 MemberCode = groupMember.memberCode,
                 UserId     = groupMember.userId,
                 NotifyId   = notify.Id
             };
             lstInvitations.Add(invitation);
         }
         return(Ok(lstInvitations));
     }
     catch (Exception ex)
     {
         return(NotFound());
     }
 }
Ejemplo n.º 2
0
        public string GetInvitationUrl(ClaimsPrincipal inviter, InvitationDetails invite)
        {
            var tokenOptions = _tokenOptions.CurrentValue;
            var issuer       = inviter.FindFirstValue("iss").Split('/');
            var domainName   = issuer[2].Split('.')[0];
            var tenantId     = issuer[3];
            var clientId     = inviter.FindFirstValue("azp");
            var claims       = new Dictionary <string, string>();

            if (invite.additionalClaims != null)
            {
                foreach (var c in invite.additionalClaims)
                {
                    claims.Add(c.Key, c.Value);
                }
            }
            claims.Add("appTenantId", inviter.FindFirstValue("appTenantId"));
            var jwt = CreateJWTToken(invite.inviteEmail, domainName, domainName, _tokenOptions.CurrentValue.SigningKey, tokenOptions.ValidityMinutes, claims);
            var url = $"https://{domainName}.b2clogin.com/{tenantId}/{tokenOptions.Policy}/oauth2/v2.0/authorize?client_id={clientId}&login_hint={invite.inviteEmail}&response_mode=form_post&nonce=defaultNonce&redirect_uri={invite.postRedeemUrl}&scope=openid&response_type=id_token&client_assertion_type=urn:ietf:params:oauth:client-assertion-type:jwt-bearer&client_assertion={jwt}";

            return(url);
        }
Ejemplo n.º 3
0
 public string Invite([FromBody] InvitationDetails invite)
 {
     return(_inviter.GetInvitationUrl(User, invite));
 }
Ejemplo n.º 4
0
 public string Invite([FromBody] InvitationDetails invite)
 {
     HttpContext.VerifyUserHasAnyAcceptedScope(scopeRequiredByApi);
     return(_inviter.GetInvitationUrl(User, invite));
 }