예제 #1
0
        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
            }));
        }
예제 #2
0
        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);
        }