Example #1
0
        /// <summary>
        /// 注册
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        public async Task <AppSrvResult <CustomerDto> > RegisterAsync(CustomerRegisterDto input)
        {
            var exists = await _customerRepo.AnyAsync(t => t.Account == input.Account);

            if (exists)
            {
                return(Problem(HttpStatusCode.Forbidden, "该账号已经存在"));
            }

            var customer = _mapper.Map <Customer>(input);

            customer.Id          = IdGenerater.GetNextId(IdGenerater.DatacenterId, IdGenerater.WorkerId);
            customer.FinanceInfo = new CustomerFinance()
            {
                Account = customer.Account
                ,
                Balance = 0
                ,
                Id = customer.Id
            };

            await _customerRepo.InsertAsync(customer);

            var dto = _mapper.Map <CustomerDto>(customer);

            return(dto);
        }
        public async Task <ActionResult <UserDto> > Register(CustomerRegisterDto customerRegisterDto)
        {
            customerRegisterDto.Username = customerRegisterDto.Username.ToLower();

            if (await CustomerExists(customerRegisterDto.Username))
            {
                return(BadRequest("Username already exists"));
            }

            var hmac = new System.Security.Cryptography.HMACSHA512();

            var customerToCreate = new Customer
            {
                UserName      = customerRegisterDto.Username,
                FirstName     = customerRegisterDto.FirstName,
                LastName      = customerRegisterDto.LastName,
                ContactNumber = customerRegisterDto.ContactNumber,
                Email         = customerRegisterDto.Email,
                PasswordSalt  = hmac.Key,
                PasswordHash  = hmac.ComputeHash(System.Text.Encoding.UTF8.GetBytes(customerRegisterDto.Password))
            };

            await _context.Customer.AddAsync(customerToCreate);

            await _context.SaveChangesAsync();

            return(new UserDto
            {
                Username = customerToCreate.UserName,
                Token = _tokenService.CreateToken(customerToCreate)
            });
        }
Example #3
0
        public IHttpActionResult Register(CustomerRegisterDto newCustomer)
        {
            if (newCustomer == null || !ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            Customer customer = Mapper.Map <Customer>(newCustomer);
            var      user     = new User {
                UserName = newCustomer.UserName
            };

            if (context.Users.Any(u => user.UserName == u.UserName))
            {
                return(BadRequest("Ta nazwa użytkownika jest już zajęta"));
            }
            context.Customers.Add(customer);
            customer.User = user;
            var result = userManager.Create(user, newCustomer.Password);

            if (!result.Succeeded)
            {
                return(BadRequest(result.Errors.ToString()));
            }
            userManager.AddToRole(user.Id, Role.Customer.ToString());
            context.SaveChanges();
            return(Ok());
        }
Example #4
0
        public async Task <AppSrvResult <SimpleDto <string> > > Register(CustomerRegisterDto inputDto)
        {
            var exists = await _customerRepo.AnyAsync(t => t.Account == inputDto.Account);

            if (exists)
            {
                return(Problem(HttpStatusCode.Forbidden, "该账号已经存在"));
            }

            var customer = _mapper.Map <Customer>(inputDto);

            customer.Id = IdGenerater.GetNextId(IdGenerater.DatacenterId, IdGenerater.WorkerId);

            var customerFinace = new CusFinance()
            {
                Account = customer.Account
                ,
                Balance = 0
                ,
                Id = customer.Id
            };

            await _cusManagerService.RegisterAsync(customer, customerFinace);

            return(new SimpleDto <string>(customer.Id.ToString()));
        }
        public async Task <ActionResult> CustomerRegister(CustomerRegisterDto customerRegister)
        {
            var response = await _customerAuth.Register(customerRegister);

            if (!response.Success)
            {
                return(BadRequest(response));
            }

            return(Ok(response));
        }
Example #6
0
        /// <summary>
        /// Creation of customer
        /// </summary>
        /// <param name="customerDto">Data transfer object for customers</param>
        /// <returns></returns>
        public async Task <Customer> CreateCustomer(CustomerRegisterDto customerDto)
        {
            if (customerDto.FirstName == string.Empty || customerDto.Lastname == string.Empty)
            {
                return(null); // Creation cannot be performed
            }
            var user = await _userHelperService.PrepareUser(new UserDto
            {
                Username = customerDto.Username,
                Password = customerDto.Password
            }, "Customer");


            if (user != null)
            {
                user.Id++;
            }


            // Get identifier of lastly created user
            var userId = QueryGenericHelper.GetLastEntity(UserContext.Users);

            // Get identifier of lastly created customer
            var customerId = QueryGenericHelper.GetLastEntity(UserContext.Customers);


            // Creation of customer object from user a customer data
            var customerResult = new Customer
            {
                Id        = customerId?.Id + 1 ?? 1,
                FirstName = customerDto.FirstName,
                LastName  = customerDto.Lastname,
                Discount  = customerDto.Discount,
                User      = user,
                UserId    = userId?.Id + 1 ?? 1
            };


            // Add new object to the customer collection
            UserContext.Customers.Add(customerResult);

            // Return new added object
            return(customerResult);
        }
        public async Task <IActionResult> CustomerRegister(CustomerRegisterDto customerRegisterDto)
        {
            customerRegisterDto.FirstName = customerRegisterDto.FirstName.ToLower();
            customerRegisterDto.LastName  = customerRegisterDto.LastName.ToLower();
            customerRegisterDto.Email     = customerRegisterDto.Email.ToLower();

            if (await _authRepo.CustomerExists(customerRegisterDto.Email))
            {
                return(BadRequest("Email already exists"));
            }

            var customerToCreate = _mapper.Map <Customer> (customerRegisterDto);
            var createdCustomer  = await _authRepo.CustomerRegister(customerToCreate, customerRegisterDto.Password);

            var customerPhone = _mapper.Map <Phone> (customerRegisterDto.Phone);
            var createdPhone  = await _customersRepo.CustomerAddPhone(createdCustomer.Id, customerPhone);

            return(StatusCode(201));
        }
Example #8
0
        public async Task <CustomerUserDto> CreateCustomer([FromBody] CustomerRegisterDto customerDto)
        {
            var res = await _customerUnitOfWork.CustomerRepository.CreateCustomer(customerDto);

            await _customerUnitOfWork.Complete();

            var customerId =
                _customerUnitOfWork.CustomerRepository.Find(c =>
                                                            c.FirstName == res.FirstName && c.LastName == res.LastName).SingleOrDefault();

            return(new CustomerUserDto
            {
                Id = customerId?.Id,
                FirstName = res.FirstName,
                LastName = res.LastName,
                Username = res.User.Username,
                Discount = res.Discount
            });
        }
        /// <summary>
        /// Register - Create new user
        /// </summary>
        /// <param name="customerRegister"></param>
        /// <returns></returns>
        public async Task <ServiceResponse <int> > Register(CustomerRegisterDto customerRegister)
        {
            var response = new ServiceResponse <int>();

            try
            {
                var customer = _mapper.Map <Customer>(customerRegister);

                bool HasUserExisted = await UserExists(customer.Email);

                if (HasUserExisted)
                {
                    response.Success = false;
                    response.Message = "User already existed";
                    response.Code    = ErrorCode.AUTH_USER_EXISTED;

                    return(response);
                }

                (customer.Password, customer.PasswordSalt) = CreateHashedPassword(customerRegister.Password);
                await _context.Customers.AddAsync(customer);

                await _context.SaveChangesAsync();

                response.Data = customer.Id;

                return(response);
            }
            catch (Exception ex)
            {
                _logger.LogError(ex.Message, ex.StackTrace);
                response.Success = false;
                response.Message = ex.Message;
                response.Code    = ErrorCode.AUTH_UNEXPECTED_ERROR;

                return(response);
            }
        }
Example #10
0
 public async Task <ActionResult <CustomerDto> > RegisterAsync([FromBody][NotNull] CustomerRegisterDto input)
 {
     return(CreatedResult(await _cusService.RegisterAsync(input)));
 }
Example #11
0
 //[Permission("customerRegister")]
 public async Task <ActionResult <SimpleDto <string> > > Register([FromBody][NotNull] CustomerRegisterDto inputDto)
 {
     return(Result(await _cusService.Register(inputDto)));
 }