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)); }
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; } }
public UsersChanged(ApplicantsChanged applicantsChanged) { Created = applicantsChanged.Created; Updated = applicantsChanged.Updated; Deleted = applicantsChanged.Deleted; }