示例#1
0
        public async Task <IActionResult> RegisterChild([FromBody] RegisterChildDTO child)
        {
            var user = await _helper.GetUserFromClaims(User.Claims);

            if (user.IsChild)
            {
                return(StatusCode(403, "You have no rights to do this."));
            }

            var result = await _accSrv.Register(child, user.Id);

            if (result.Success)
            {
                return(Ok(result));
            }

            return(BadRequest(result));
        }
        public async Task <OperationResult> Register(RegisterChildDTO regChild, string id)
        {
            if (IsUserExists(regChild, out string item))
            {
                return(new OperationResult
                {
                    Data = new[] { regChild },
                    Success = false,
                    Messages = new[] { $"{item} is invalid or was already taken" }
                });
            }

            var newUser = new AppUser()
            {
                Email    = regChild.Email,
                UserName = regChild.UserName,
                FullName = regChild.FullName,
                Age      = regChild.Age,
                Sex      = regChild.Sex,
                IsChild  = true,
                ParentId = id
            };

            var result = await _userManager.CreateAsync(newUser, regChild.Password);

            if (result.Succeeded)
            {
                _purchaseService.SetInitialItem(newUser.Id);

                return(new OperationResult()
                {
                    Messages = new[] { "User was successfully registered." },
                    Success = true
                });
            }

            return(new OperationResult()
            {
                Messages = new[] { "Something was failed while user registration." }
            });
        }