コード例 #1
0
        public async Task <IActionResult> RegisterApplicant([FromBody] RegistrationViewModel model)
        {
            var user = await _registrationService.RegisterAsync(model, IdentityConfig.DefaultRoles.APPLICANT);

            if (ModelState.ErrorCount <= 0)
            {
                var @applicantEvent = new ApplicantsChanged
                {
                    Created = new[] { Mapper.Map <DtoUser>(user) }
                };
                var @userEvent = new UsersChanged(applicantEvent);
                _eventBus.Publish(@applicantEvent);
                _eventBus.Publish(@userEvent);

                var url = _cryptoService.Decrypt(model.ReturnUrl);

                return(Ok(url));
            }

            var errorsJson = new JsonErrorResponse
            {
                Messages = ModelState.Values
                           .SelectMany(x => x.Errors)
                           .Select(x => x.ErrorMessage)
                           .ToArray()
            };
            var errors = new BadRequestObjectResult(errorsJson);

            return(BadRequest(errors));
        }
コード例 #2
0
        public async Task <User> SeedAsync()
        {
            try
            {
                var roles = GetDefaultRoles();
                var user  = await GetAdminUserAsync(_passwordHasher, _context);

                if (!_context.Roles.Any())
                {
                    _context.Roles.AddRange(roles);
                }

                if (!_context.Users.Any())
                {
                    _context.Users.Add(user);
                }

                await _context.SaveChangesAsync();

                if (!_context.UserRoles.Any())
                {
                    var adminRoles = GetAdminRoles(
                        await _context.Users.Where(x => x.UserName == "*****@*****.**").SingleOrDefaultAsync(),
                        await _context.Roles.ToListAsync());
                    _context.UserRoles.AddRange(adminRoles);
                    await _context.SaveChangesAsync();
                }

                var dto = Mapper.Map <DtoUser>(user);

                var @event = new ApplicantsChanged
                {
                    Created = new[] { dto }
                };

                _eventBus.Publish(@event);

                return(user);
            }
            catch (SqlException ex)
            {
                _logger.LogError("Error when try to add admin user: {@ex}", ex);
                throw;
            }
        }
コード例 #3
0
 public UsersChanged(ApplicantsChanged applicantsChanged)
 {
     Created = applicantsChanged.Created;
     Updated = applicantsChanged.Updated;
     Deleted = applicantsChanged.Deleted;
 }