Exemple #1
0
        public async Task Login_Eventbrite_With_The_Existed_Member()
        {
            var email     = "*****@*****.**";
            var newMember = new Member
            {
                Email = email
            };

            Context.Members.Add(newMember);
            Context.SaveChanges();
            var meEventbrite = new EventBriteMe
            {
                Emails = new Email[2] {
                    new Email {
                        EmailEmail = email
                    }, new Email()
                },
                FirstName = "First",
                LastName  = "LastName",
                Id        = "123123123123"
            };
            var result = await UserService.AuthenticateOrCreateEventbrite(meEventbrite);

            RefreshContext();
            var members = await Context.Members.Where(x => x.EventbriteId == meEventbrite.Id
                                                      ||
                                                      x.Email == email).ToListAsync();

            members.Count.Should().Be(1);
            members.First().EventbriteId.Should().Be(newMember.EventbriteId);
            members.First().Email.Should().Be(email);
            members.First().FirstName.Should().Be(meEventbrite.FirstName);
            members.First().LastName.Should().Be(meEventbrite.LastName);
        }
Exemple #2
0
        public async Task <AuthenticateUser> AuthenticateOrCreateEventbrite(EventBriteMe me)
        {
            var user = await _context.Members.Where(x => x.Email.ToUpper() == me.Emails.First().EmailEmail.ToUpper()
                                                    ||
                                                    x.EventbriteId == me.Id).FirstOrDefaultAsync();

            if (user == null)
            {
                user = new Member
                {
                    Email        = me.Emails.First().EmailEmail,
                    FirstName    = me.FirstName,
                    LastName     = me.LastName,
                    EventbriteId = me.Id,
                    Role         = UserRole.Member
                };
                await _context.Members.AddAsync(user);

                await _context.SaveChangesAsync();
            }
            else if (string.IsNullOrWhiteSpace(user.Email) || string.IsNullOrWhiteSpace(user.EventbriteId))
            {
                user.Email        = me.Emails.First().EmailEmail;
                user.EventbriteId = me.Id;
                user.FirstName    = me.FirstName;
                user.LastName     = me.LastName;
                await _context.SaveChangesAsync();
            }

            return(new AuthenticateUser(TokenService.Generate(_appSettings.Secret, new List <CustomClaim>
            {
                new CustomClaim(EnumClaims.UserId.ToString().LowercaseFirst(), user.Id.ToString()),
                new CustomClaim(EnumClaims.Email.ToString().LowercaseFirst(), user.Email),
                new CustomClaim(EnumClaims.Role.ToString().LowercaseFirst(), user.Role.ToString())
            }, DateTime.UtcNow.AddDays(30))));
        }