Example #1
0
        public bool IsExistsByUserName(string username)
        {
            var m     = new UserModelDbo();
            var count = _rdBService.GetCount(IdentityTable.USER, new JObject()
            {
                [nameof(m.user_name)] = username
            });

            return(count != 0);
        }
Example #2
0
        public override bool IsExists(string user_id)
        {
            long userid = long.Parse(user_id);
            var  m      = new UserModelDbo();
            var  count  = _rdBService.GetCount(IdentityTable.USER, new JObject()
            {
                [nameof(m.user_id)] = userid
            });

            return(count != 0);
        }
Example #3
0
        private UserModel GetDtoUserModel(UserModelDbo userdata, JObject filter)
        {
            var userModel = new UserModel()
            {
                user_id     = userdata.user_id.ToString(),
                user_name   = userdata.user_name,
                first_name  = userdata.first_name,
                middle_name = userdata.middle_name,
                last_name   = userdata.last_name,
                email       = userdata.email,
                is_enabled  = userdata.is_enabled,
                salt        = userdata.salt,
                user_type   = GetDbUserAuthType(userdata.user_auth_type_id).name,
            };
            var roles = _rdBService.Get <UserRoleDbo>(IdentityTable.USER_ROLE, DefaultGetpageLength, 0, filter);

            userModel.roles = roles.Select(f => GetDbRole(f.role_id).name).ToList();
            SetUserTenants(userModel);
            return(userModel);
        }
Example #4
0
        public override async Task <bool> CreateUserAsync(UserModel user, bool sendEmail = true)
        {
            user.user_name = user.user_name.ToLower();
            if (user != null && !IsExistsByUserName(user.user_name))
            {
                var dbtxn = _rdBService.BeginTransaction();
                try
                {
                    if (user.roles == null)
                    {
                        user.roles = new List <string>();
                    }
                    var roles = new List <string>()
                    {
                        "user", "init_user"
                    };
                    roles.AddRange(user.roles);
                    user.roles = roles.Distinct().ToList();
                    user.salt  = CommonUtility.RandomString(10);
                    user.email = user.email?.ToLower();
                    var dbroles = GetAndAddDbValues <RoleDbo>(dbtxn, user.roles, "role", (d) =>
                    {
                        return(user.roles.IndexOf(d.name) != -1);
                    },
                                                              (d, r) =>
                    {
                        return(d.name == r);
                    }
                                                              , (d) =>
                    {
                        return(new RoleDbo()
                        {
                            is_enabled = true,
                            name = d
                        });
                    });
                    var usertypes = new List <string>()
                    {
                        user.user_type
                    };
                    var dbauthtype = GetAndAddDbValues <UserAuthTypeDbo>(dbtxn, usertypes, IdentityTable.USER_AUTH_TYPE, (d) =>
                    {
                        return(usertypes.IndexOf(d.name) != -1);
                    },
                                                                         (d, r) =>
                    {
                        return(d.name == r);
                    }
                                                                         , (d) =>
                    {
                        return(new UserAuthTypeDbo()
                        {
                            is_enabled = true,
                            name = d
                        });
                    });


                    var usermodel = new UserModelDbo()
                    {
                        is_enabled        = true,
                        first_name        = user.first_name,
                        middle_name       = user.middle_name,
                        last_name         = user.last_name,
                        user_name         = user.user_name,
                        email             = user.email,
                        salt              = user.salt,
                        user_auth_type_id = dbauthtype.First().user_auth_type_id
                    };


                    var dbuserid = _rdBService.WriteData <UserModelDbo>(usermodel, dbtxn);
                    var userinfo = new UserProfileDbo()
                    {
                        user_id      = dbuserid,
                        phone_number = ""
                    };
                    _rdBService.WriteData <UserProfileDbo>(userinfo, dbtxn);
                    user.user_id = dbuserid.ToString();
                    foreach (var role in dbroles)
                    {
                        _rdBService.WriteData <UserRoleDbo>(new UserRoleDbo()
                        {
                            is_enabled = true,
                            user_id    = dbuserid,
                            role_id    = role.role_id
                        }, dbtxn);
                    }
                    if (AddUserToTenants(user))
                    {
                        _rdBService.CommitTransaction(dbtxn);

                        if (sendEmail)
                        {
                            await _userNotifierService.SendWelcomeEmailAsync(user);
                        }

                        return(await Task.FromResult(true));
                    }
                    else
                    {
                        return(await Task.FromResult(false));
                    }
                }
                catch (Exception)
                {
                    _rdBService.RollbackTransaction(dbtxn);
                    return(await Task.FromResult(false));
                }
            }
            return(await Task.FromResult(false));
        }