示例#1
0
        public async Task <ResultDto> Register([FromBody] RegisterDto model)
        {
            User user = new User()
            {
                Email       = model.Email,
                PhoneNumber = model.PhoneNumber,
                UserName    = model.Email
            };
            await _userManager.CreateAsync(user, model.Password);

            UserAdditionalInfo ui = new UserAdditionalInfo()
            {
                Id       = user.Id,
                Age      = model.Age,
                FullName = model.FullName,
                Image    = model.Image
            };
            var result = _userManager.AddToRoleAsync(user, "Guest").Result;
            await ctx.UserAdditionalInfo.AddAsync(ui);

            await ctx.SaveChangesAsync();

            return(new ResultDto
            {
                IsSuccessful = true
            });
        }
示例#2
0
        public string CreateToken(UserAdditionalInfo user)
        {
            var roles  = _userManager.GetRolesAsync(user).Result;
            var claims = new List <Claim>
            {
                new Claim("id", user.Id.ToString()),
                new Claim("email", user.Email.ToString())
            };

            foreach (var role in roles)
            {
                claims.Add(new Claim("roles", role));
            }

            var jwtTokenSecretKey = _configuration.GetValue <string>("SecretPhrase");
            var signInKey         = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(jwtTokenSecretKey));
            var signInCredentials = new SigningCredentials(signInKey, SecurityAlgorithms.HmacSha256);

            var jwt = new JwtSecurityToken(
                signingCredentials: signInCredentials,
                claims: claims,
                expires: DateTime.Now.AddDays(7)
                );

            return(new JwtSecurityTokenHandler().WriteToken(jwt));
        }
示例#3
0
        public async Task UpdateUserAdditionalInfoAsync(
            string userId,
            string fullName,
            string imageUrl,
            string contactPhone,
            string contactEmail,
            string country,
            string city,
            string social)
        {
            var userAdditionalInfo = new UserAdditionalInfo()
            {
                UserId        = userId,
                FullName      = fullName,
                ImageUrl      = imageUrl,
                ConntactPhone = contactPhone,
                ContactEmail  = contactEmail,
                Country       = country,
                City          = city,
                Social        = social,
            };

            if (this.HasUserAdditionalInfoWithId(userId))
            {
                userAdditionalInfo.Id = this.GetUserAdditionalInfoIdWithUserId(userId);
                this.userAdditionalInfoRepository.Update(userAdditionalInfo);
            }
            else
            {
                await this.userAdditionalInfoRepository.AddAsync(userAdditionalInfo);
            }

            await this.userAdditionalInfoRepository.SaveChangesAsync();
        }
示例#4
0
        public async Task <UserAdditionalInfo> SeedUserAdditionalInfo(ApplicationDbContext context, string userId, string imageUrl)
        {
            UserAdditionalInfo userAdditionalInfo = new UserAdditionalInfo()
            {
                ImageUrl = imageUrl,
                UserId   = userId,
            };

            context.UserAdditionalInfo.Add(userAdditionalInfo);
            await context.SaveChangesAsync();

            return(userAdditionalInfo);
        }
        public IActionResult Step2(UserAdditionalInfo additionalInfo)
        {
            _provider.IncrementValidationCounter();
            if (!ModelState.IsValid)
            {
                return(View(additionalInfo));
            }

            var user = _provider.GetUser();

            user.AdditionalInfo = additionalInfo;
            _provider.SaveUser(user);
            return(RedirectToAction("Continue"));
        }
示例#6
0
        public void AddTovar(TovarDTO tovar)
        {
            List <Tovar_Image> images         = _context.Tovar_Images.Where(x => x.Tovar.Id == tovar.Id).ToList();
            UserAdditionalInfo userAdditional = _context.AdditionalInfos.FirstOrDefault(x => x.Id == tovar.UserId);
            Categories         categoriesa    = _context.Categories.FirstOrDefault(x => x.ID == tovar.CategoryId);
            Tovar newTovar = new Tovar
            {
                Description = tovar.Description,
                Category    = categoriesa,
                CategoryId  = tovar.CategoryId,
                Cost        = tovar.Cost,
                Images      = images,
                Name        = tovar.Name,
                UserId      = userAdditional.Id,
                Id          = tovar.Id
            };

            _context.Tovars.Add(newTovar);
            _context.SaveChanges();
        }
示例#7
0
        public async Task <bool> additionalData(UserAdditionalInfo uai)
        {
            try
            {
                var user = await _context.UserDatas.FirstOrDefaultAsync(x => x.ID == uai.userID);

                user.Gender = uai.Gender;
                user.Age    = uai.Age;
                user.CityID = uai.CityID;

                _context.UserDatas.Update(user);
                _context.SaveChanges();

                return(true);
            }
            catch (Exception)
            {
                return(false);
            }
        }
示例#8
0
        private static void SeedUsers(UserManager <UserAdditionalInfo> userManager, RoleManager <IdentityRole> roleManager, EFContext _context)
        {
            //  _context.SaveChanges();
            var roleName = "Admin";

            if (roleManager.FindByNameAsync(roleName).Result == null)
            {
                var resultAdminRole = roleManager.CreateAsync(new IdentityRole
                {
                    Name = "Admin"
                }).Result;

                var resultUserRole = roleManager.CreateAsync(new IdentityRole
                {
                    Name = "User"
                }).Result;


                string email = "*****@*****.**";
                var    admin = new UserAdditionalInfo
                {
                    Email    = email,
                    UserName = email
                };
                var andrii = new UserAdditionalInfo
                {
                    Email    = "*****@*****.**",
                    UserName = "******"
                };

                var resultAdmin = userManager.CreateAsync(admin, "Qwerty1-").Result;
                resultAdmin = userManager.AddToRoleAsync(admin, "Admin").Result;

                var resultAndrii = userManager.CreateAsync(andrii, "Qwerty1-").Result;
                resultAndrii = userManager.AddToRoleAsync(andrii, "User").Result;
            }
        }
示例#9
0
        public async Task <ResultDTO> Register([FromBody] UserRegisterDTO model)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return(new ResultErrorDTO
                    {
                        Status = 403,
                        Message = "ERROR",
                        Errors = CustomValidator.GetErrorsByModel(ModelState)
                    });
                }

                var user = new User()
                {
                    UserName    = model.Email,
                    Email       = model.Email,
                    PhoneNumber = model.Phone
                };

                var userProfile = new UserAdditionalInfo()
                {
                    Address  = model.Address,
                    Image    = "default.jpg",
                    FullName = model.FullName,
                    Id       = user.Id
                };

                IdentityResult result = await _userManager.CreateAsync(user, model.Password);


                if (!result.Succeeded)
                {
                    return(new ResultErrorDTO
                    {
                        Message = "ERROR",
                        Status = 500,
                        Errors = CustomValidator.GetErrorsByIdentotyResult(result)
                    });
                }
                else
                {
                    result = _userManager.AddToRoleAsync(user, "User").Result;
                    _context.UserAdditionalInfos.Add(userProfile);
                    _context.SaveChanges();
                }


                return(new ResultDTO
                {
                    Status = 200,
                    Message = "OK"
                });
            }
            catch (Exception e)
            {
                return(new ResultDTO {
                    Status = 500,
                    Message = e.Message,
                });
            }
        }
示例#10
0
        public List <Tovar> GetTovarForUser(string userName)
        {
            UserAdditionalInfo userAdditional = _context.AdditionalInfos.FirstOrDefault(x => x.UserName == userName);

            return(_context.Tovars.Where(x => x.UserId == userAdditional.Id).ToList());
        }
示例#11
0
 public FakeUserBuilder WithAdditionalInfo(UserAdditionalInfo additionalInfo)
 {
     _additionalInfo = additionalInfo;
     return(this);
 }
示例#12
0
        public async Task <ResultDTO> Register([FromBody] UserRegisterDTO model)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return(new ResultErrorDTO()
                    {
                        Status = 401,
                        Message = "ERROR"
                    });
                }

                var user = new User()
                {
                    UserName    = model.Email,
                    Email       = model.Email,
                    PhoneNumber = model.Phone
                };

                var userProfile = new UserAdditionalInfo()
                {
                    Id       = user.Id,
                    FullName = model.FullName,
                    Address  = model.Address,
                    Age      = model.Age
                };

                IdentityResult result = await _userManager.CreateAsync(user, model.Password);


                if (result.Succeeded)
                {
                    result = _userManager.AddToRoleAsync(user, "User").Result;
                    _context.UserAdditionalInfos.Add(userProfile);
                    _context.SaveChanges();

                    return(new ResultDTO()
                    {
                        Message = "OK",
                        Status = 200
                    });
                }
                else
                {
                    return(new ResultErrorDTO()
                    {
                        Message = "ERROR",
                        Status = 403
                    });
                }
            }
            catch (Exception e)
            {
                return(new ResultErrorDTO
                {
                    Status = 500,
                    Message = e.Message,
                    Errors = new List <string>()
                    {
                        e.Message
                    }
                });
            }
        }
示例#13
0
 public Task <bool> additionalData(UserAdditionalInfo uai)
 {
     return(_IUserDatasBL.additionalData(uai));
 }
示例#14
0
        public async Task <ResultDTO> Register([FromBody] LoginRegisterDTO model)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return(new ResultErrorDTO()
                    {
                        Status = 401,
                        Message = "ERROR",
                        Errors = CustomValidator.getErrorsByModel(ModelState)
                    });
                }

                var user = new UserAdditionalInfo()
                {
                    Name     = model.FullName,
                    Email    = model.Email,
                    UserName = model.Email,
                    Password = model.Password,
                    Id       = Guid.NewGuid().ToString(),
                    City     = "",
                    Phone    = ""
                };



                IdentityResult result = await _userManager.CreateAsync(user, model.Password);


                if (result.Succeeded)
                {
                    //result =  _userManager.AddToRoleAsync(user, "User").Result;
                    _context.AdditionalInfos.Add(user);
                    _context.Entry(user).State = EntityState.Modified;
                    _context.SaveChanges();

                    return(new ResultDTO()
                    {
                        Message = "OK",
                        Status = 200
                    });
                }
                else
                {
                    return(new ResultErrorDTO()
                    {
                        Message = "ERROR",
                        Status = 403,
                        Errors = CustomValidator.getErrorsByIdentityResult(result)
                    });
                }
            }
            catch (Exception e)
            {
                return(new ResultErrorDTO
                {
                    Status = 228,
                    Message = e.Message,
                    Errors = new List <string>()
                    {
                        e.Message
                    }
                });
            }
        }