예제 #1
0
        public async Task <IdentityResult> RegisterUser(RegisterViewModel userModel, string registerType, bool isDeviceActived)
        {
            ApplicationUser user = new ApplicationUser
            {
                UserName       = userModel.UserName,
                Email          = userModel.Email,
                EmailConfirmed = isDeviceActived,
                JoinDate       = DateTime.Now.ToUniversalTime(),
                LastModified   = DateTime.Now.ToUniversalTime(),
                IsActived      = false
            };

            var result = await _userManager.CreateAsync(user, userModel.Password);

            if (result.Succeeded)
            {
                TTX.Data.TTX_UserInfo info = new TTX.Data.TTX_UserInfo()
                {
                    UserId       = user.Id,
                    WeiboId      = userModel.WeiboId,
                    FacebookId   = userModel.FacebookId,
                    Culture      = userModel.Culture,
                    RegisterType = registerType
                };
                TTXUserInfoDAL.Instance.SaveModel(info);
                //string err = "";
                string responseKey = "NewUser";
                if (!string.IsNullOrEmpty(user.Email) && registerType != "Weibo" && registerType != "Facebook")
                {
                    SendEmailActive(user.Id, user.Email, info.NickName, device.ActiveCode, responseKey);
                }
            }
            return(result);
        }
예제 #2
0
 public UserViewModel CreateUserViewModel(ApplicationUser appUser, UserDevice device, string strCulture)
 {
     TTX.Data.TTX_UserInfo info = TTXUserInfoDAL.Instance.GetSingleModel(u => u.UserId == appUser.Id);
     if (info == null)
     {
         info = new TTX.Data.TTX_UserInfo()
         {
             Culture    = strCulture,
             InviteCode = Guid.NewGuid().ToString("N"),
             UserId     = appUser.Id
         };
         TTXUserInfoDAL.Instance.SaveModel(info);
     }
     return(new UserViewModel(info, appUser, _userManager.GetRolesAsync(appUser.Id).Result.ToList(), strCulture));
 }
예제 #3
0
        public UserViewModel CreateUserViewModel(ApplicationUser appUser, string strCulture)
        {
            var info = TTXUserInfoDAL.Instance.GetSingleModel(u => u.UserId == appUser.Id);

            if (info == null)
            {
                info = new TTX.Data.TTX_UserInfo()
                {
                    InviteCode = Guid.NewGuid().ToString("N"),
                    Culture    = strCulture,
                    UserId     = appUser.Id
                };
                TTXUserInfoDAL.Instance.SaveModel(info);
            }

            return(new UserViewModel(info, appUser, _userManager.GetRolesAsync(appUser.Id).Result.ToList(), strCulture));
            //{
            //    //Url = _UrlHelper.Link("GetUserById", new { id = appUser.Id }),
            //    Id = appUser.Id,
            //    IsActived = appUser.IsActived,
            //    IsSetPassword = appUser.IsSetPassword,
            //    ELO = info.ELO,
            //    NickName = info.NickName,
            //    Gender = info.Gender,
            //    DOB = info.DOB.HasValue ? info.DOB.Value.ToString("yyyy-MM-dd") : null,
            //    AgeGroup = info.AgeGroup,
            //    CountryId = info.CountryId,
            //    Country = country,
            //    Avatar = string.IsNullOrWhiteSpace(info.Avatar) ? null : string.Format("{0}{1}", CommonHelper.CurrentDomain, info.Avatar),

            //    Email = appUser.Email,

            //    EmailConfirmed = appUser.EmailConfirmed,
            //    //Level = appUser.Level,
            //    JoinDate = appUser.JoinDate,
            //    LastActiveDate = info.LastActiveDate,
            //    //Roles = _userManager.GetRolesAsync(appUser.Id).Result.ToList(),
            //    RoleNames = _userManager.GetRolesAsync(appUser.Id).Result.ToList(),
            //    //Claims = _AppUserManager.GetClaimsAsync(appUser.Id).Result.ToList(),
            //    Devices = appUser.Devices,

            //};
        }
예제 #4
0
        public UserViewModel CreateBackendUserViewModel(ApplicationUser appUser, List <IdentityRole> lstRole)
        {
            string strCulture = CommonHelper.AppConfig(TTXConstants.AppConfig.DefaultCulture.ToString());
            var    info       = TTXUserInfoDAL.Instance.GetSingleModel(u => u.UserId == appUser.Id);
            List <RoleViewModel> lstVMRole = new List <RoleViewModel>();

            foreach (var role in lstRole)
            {
                var vmRole = new RoleViewModel()
                {
                    Id           = role.Id,
                    Name         = role.Name,
                    IsUserInRole = role.Users.FirstOrDefault(u => u.UserId == appUser.Id) != null
                };
                lstVMRole.Add(vmRole);
            }
            CountryViewModel country = null;

            if (info != null)
            {
                country = new CountryViewModel(TTXCountryDAL.Instance.GetSingleModel(c => c.Id == info.CountryId));
            }
            else
            {
                info = new TTX.Data.TTX_UserInfo()
                {
                    InviteCode = Guid.NewGuid().ToString("N"),
                    UserId     = appUser.Id
                };
                TTXUserInfoDAL.Instance.SaveModel(info);
            }

            return(new UserViewModel(info, appUser, lstVMRole, strCulture));
            //{
            //    //Url = _UrlHelper.Link("GetUserById", new { id = appUser.Id }),
            //    Id = appUser.Id,
            //    IsActived = appUser.IsActived,
            //    IsSetPassword = appUser.IsSetPassword,
            //    //NickName = appUser.UserInfo.NickName,
            //    //FirstName = appUser.UserInfo.FirstName,
            //    //LastName = appUser.UserInfo.LastName,
            //    //FullName = string.Format("{0} {1}", appUser.UserInfo.FirstName, appUser.UserInfo.LastName),
            //    //Avatar = string.IsNullOrWhiteSpace(appUser.UserInfo.Avatar) ? "" : string.Format("{0}{1}", CommonHelper.CurrentDomain, appUser.UserInfo.Avatar),
            //    ELO = info.ELO,
            //    NickName = info.NickName,
            //    Gender = info.Gender,
            //    DOB = info.DOB.HasValue ? info.DOB.Value.ToString("yyyy-MM-dd") : null,
            //    AgeGroup = info.AgeGroup,
            //    CountryId = info.CountryId,
            //    Country = country,
            //    Avatar = string.IsNullOrWhiteSpace(info.Avatar) ? null : string.Format("{0}{1}", CommonHelper.CurrentDomain, info.Avatar),

            //    Email = appUser.Email,

            //    EmailConfirmed = appUser.EmailConfirmed,
            //    //Level = appUser.Level,
            //    JoinDate = appUser.JoinDate,
            //    LastActiveDate = info.LastActiveDate.HasValue ? info.LastActiveDate.Value.ToLocalTime() : info.LastActiveDate,
            //    Roles = lstVMRole,
            //    RoleNames = _userManager.GetRolesAsync(appUser.Id).Result.ToList(),
            //    //Claims = _AppUserManager.GetClaimsAsync(appUser.Id).Result.ToList(),
            //    Devices = appUser.Devices,

            //};
        }
예제 #5
0
        public async Task <ApiResult <UserViewModel> > UpdateUser(UpdateUserModel userModel, AuthData authData)
        {
            ApiResult <UserViewModel> result = null;
            int           status             = 0;
            string        errorMsg           = string.Empty;
            string        responseKey        = string.Empty;
            string        message            = string.Empty;
            var           user   = _userManager.FindById(userModel.UserId);
            UserViewModel vmUser = null;

            switch (userModel.FieldType.ToLower())
            {
            case "username":
                if (userModel.Value.Length > 12)
                {
                    responseKey = "InvalidUserName";
                    message     = GlobalConfigurations.Instance.GetConfigValue("ErrorMessages", "InvalidUserName");
                }
                else
                {
                    //var userByName = UserInfoDAL.Instance.GetSingleModel(u => u.NickName == userModel.Value);
                    var userByName = TTXUserInfoDAL.Instance.GetSingleModel(u => u.NickName == userModel.Value);
                    if (userByName == null)
                    {
                        //user.UserInfo.NickName = userModel.Value;
                        userByName = new TTX.Data.TTX_UserInfo()
                        {
                            UserId   = user.Id,
                            NickName = userModel.Value
                        };
                        status         = TTXUserInfoDAL.Instance.SaveModel(userByName) != null ? 1 : 0;
                        user.IsActived = status == 1;
                    }
                    else
                    {
                        responseKey = "UserNameExisted";
                        message     = string.Format(GlobalConfigurations.Instance.GetConfigValue("ErrorMessages", "UserNameExisted"), userModel.Value);
                    }
                }
                break;

            case "email":
                var userByEmail = await _userManager.FindByEmailAsync(userModel.Value);

                if (userByEmail == null)
                {
                    status     = 1;
                    user.Email = userModel.Value;
                }
                else
                {
                    responseKey = "EmailExisted";
                    message     = GlobalConfigurations.Instance.GetConfigValue("ErrorMessages", "EmailExisted");
                }
                break;

            case "avatar":
                Image imgAvatar = CommonHelper.LoadImage(userModel.Value);
                if (imgAvatar != null)
                {
                    string filePath = GetUserFilePath(userModel.UserId);
                    string fileName = CommonHelper.UploadPhoto(filePath, imgAvatar);
                    if (!string.IsNullOrEmpty(fileName))
                    {
                        var info = TTXUserInfoDAL.Instance.GetSingleModel(u => u.UserId == userModel.UserId);
                        if (!string.IsNullOrEmpty(info.Avatar))
                        {
                            CommonHelper.RemoveFile(info.Avatar);
                        }
                        info.Avatar = string.Format("{0}/{1}", filePath, fileName);

                        TTXUserInfoDAL.Instance.SaveModel(info);

                        status      = 1;
                        message     = GlobalConfigurations.Instance.GetConfigValue("AlertMessages", "UpdateAvatarSucceed");
                        info.Avatar = string.Format("{0}/{1}", filePath, fileName);
                    }
                }
                else
                {
                    responseKey = "InvalidImage";
                }
                break;

            case "dob":
                var dobInfo = TTXUserInfoDAL.Instance.GetSingleModel(u => u.UserId == userModel.UserId);
                dobInfo.AgeGroup = CommonHelper.GetAgeGroup(userModel.DOB);

                TTXUserInfoDAL.Instance.SaveModel(dobInfo);
                status  = 1;
                message = GlobalConfigurations.Instance.GetConfigValue("AlertMessages", "UpdateDOBSucceed");
                break;
            }
            AccessTokenViewModel auth = null;

            if (status == 1)
            {
                var updResult = _userManager.Update(user);
                status      = updResult.Succeeded ? 1 : 0;
                responseKey = updResult.Succeeded ? "Succeed" : "Unknown";
                var token = GetNewAccessToken(authData.RefreshToken);

                if (token != null && !string.IsNullOrWhiteSpace(token.AccessToken))
                {
                    //user = FindUserById(token.UserId);
                    auth = new AccessTokenViewModel()
                    {
                        access_token  = token.TokenType + " " + token.AccessToken,
                        token_type    = token.TokenType,
                        refresh_token = token.RefreshToken,
                        expires_in    = token.ExpiresIn,
                        client_id     = token.ClientId,
                        issued        = token.Issued.ToLocalTime().ToString("dd-MM-yyyy hh:mm:ss"),
                        expires       = token.Expires.ToLocalTime().ToString("dd-MM-yyyy hh:mm:ss"),
                        userData      = CreateUserViewModel(user, null)
                    };
                }
                vmUser = CreateUserViewModel(user, null);
            }
            result = new ApiResult <UserViewModel>()
            {
                status      = status,
                responseKey = responseKey,
                data        = vmUser,
                authData    = auth,
                error       = errorMsg,
                message     = !string.IsNullOrEmpty(message) ? message : responseKey
            };

            return(result);
        }