コード例 #1
0
        public Task InvokeAsync(HttpContext context, CodeEventsDbContext dbContext)
        {
            var authedUser = context.User;

            if (!authedUser.Identity.IsAuthenticated)
            {
                return(_next(context));
            }

            if (authedUser.FindFirstValue("newUser") != "true")
            {
                return(_next(context));
            }

            var user = new User(authedUser);

            var userExists = dbContext.Users.Count(u => u.AzureOId == user.AzureOId) == 1;

            if (userExists)
            {
                return(_next(context));
            }

            dbContext.Users.Add(user);
            dbContext.SaveChanges();

            return(_next(context));
        }
コード例 #2
0
        public CodeEvent RegisterCodeEvent(
            NewCodeEventDto newCodeEvent,
            ClaimsPrincipal authedUser
            )
        {
            var user = ConvertAuthedUserToUser(authedUser);

            var codeEventEntry = _dbContext.CodeEvents.Add(new CodeEvent());

            codeEventEntry.CurrentValues.SetValues(newCodeEvent);
            var codeEvent = codeEventEntry.Entity;

            _dbContext.Members.Add(Member.CreateEventOwner(codeEvent, user));

            _dbContext.SaveChanges();

            return(codeEvent);
        }