public async Task <IActionResult> Register([FromBody] RegisterDTO data) { var validator = new RegisterDTOValidator(this._userService); var results = await validator.ValidateAsync(data); results.AddToModelState(ModelState, "RegisterDTO"); if (!this.ModelState.IsValid) { return(this.BadRequest(this.ModelState)); } User newUser = data.ToUser(); string tokenSecret = this._appSettings.GetSection("Settings:Secret").Value; newUser.CreateToken(tokenSecret); User user = await _authService.Register(newUser, data.Password); return(Ok(new { Id = user.Id, Username = user.Username, PhoneNumber = user.PhoneNumber, Email = user.Email, Picture = user.Picture, Role = user.Role.ToString(), Token = user.Token })); }
public async Task <IdentityResult> RegisterUserAsync(RegisterDTO registerDTO) { var xd = new IdentityResult(); if (_dbContext.Countries.Any(c => c.Name == registerDTO.CountryName)) { throw new HttpResponseException() { Status = StatusCodes.Status400BadRequest, Value = "Már van ilyen nevű ország" }; } var countries = _dbContext.Countries.ToList(); RegisterDTOValidator userValidator = new RegisterDTOValidator(countries); ValidationResult validatorResults = userValidator.Validate(registerDTO); if (!validatorResults.IsValid) { foreach (var failure in validatorResults.Errors) { throw new HttpResponseException { Status = 400, Value = failure.ErrorMessage }; } } Country country = new Country() { Name = registerDTO.CountryName, Resources = new List <Resource> { new Resource { ResourceDataID = ResourceData.Coral.ID, Amount = 0, ProductionBase = ResourceData.BaseCoralProduction }, new Resource { ResourceDataID = ResourceData.Pearl.ID, Amount = 0, ProductionBase = ResourceData.BasePopulation * ResourceData.TaxAmount, }, new Resource { ResourceDataID = ResourceData.Stone.ID, Amount = 0, ProductionBase = 0 } }, Buildings = new List <Building>(), Upgrades = new List <Upgrade>(), Population = ResourceData.BasePopulation, ArmyCapacity = 100 }; User user = new User() { UserName = registerDTO.UserName, Country = country }; country.User = user; var result = await _userManager.CreateAsync(user, registerDTO.Password); return(result); }