Пример #1
0
        public async Task <bool> UpdateUserAsync(UserPageModel user)
        {
            var dbUser = await _db.Users.FirstOrDefaultAsync(u => u.Id.Equals(user.Id)); if (dbUser == null)

            {
                return(false);
            }
            if (string.IsNullOrEmpty(user.Email))
            {
                return(false);
            }

            dbUser.Email = user.Email;

            var userRole = new IdentityUserRole <string>()
            {
                RoleId = "1", UserId = user.Id
            };

            var isAdmin = await _db.UserRoles.AnyAsync(ur => ur.Equals(userRole));

            if (isAdmin && !user.IsAdmin)
            {
                _db.UserRoles.Remove(userRole);
            }
            else if (!isAdmin && user.IsAdmin)
            {
                await _db.UserRoles.AddAsync(userRole);
            }

            var result = await _db.SaveChangesAsync(); return(result >= 0);
        }
Пример #2
0
        public async Task <bool> DeleteUser(string userId)
        {
            try
            {
                var dbUser = await _db.Users.FirstOrDefaultAsync(d => d.Id.Equals(userId));

                if (dbUser == null)
                {
                    return(false);
                }

                var userRoles = _db.UserRoles.Where(ur => ur.UserId.Equals(dbUser.Id));

                _db.UserRoles.RemoveRange(userRoles);
                _db.Users.Remove(dbUser);

                var result = await _db.SaveChangesAsync();

                if (result < 0)
                {
                    return(false);
                }
            }
            catch
            {
                return(false);
            }

            return(true);
        }
Пример #3
0
        public async Task <bool> Add <TEntity>(TEntity item) where TEntity : class
        {
            try
            {
                await _db.AddAsync <TEntity>(item);

                return(await _db.SaveChangesAsync() >= 0);
            }
            catch
            {
                return(false);
            }
        }
Пример #4
0
        public async Task <bool> UpdateUserAsync(UserDTO user)
        {
            var dbUser = await _db.Users.FirstOrDefaultAsync(u => u.Id.Equals(user.Id));

            if (dbUser == null)
            {
                return(false);
            }
            if (string.IsNullOrEmpty(user.Email))
            {
                return(false);
            }

            dbUser.Email = user.Email;
            #region Admin Role
            var admin   = "Admin";
            var isAdmin = await _userManager.IsInRoleAsync(dbUser, admin);

            if (isAdmin && !user.IsAdmin)
            {
                await _userManager.RemoveFromRoleAsync(dbUser, admin);
            }
            else if (!isAdmin && user.IsAdmin)
            {
                await _userManager.AddToRoleAsync(dbUser, admin);
            }
            #endregion

            var result = await _db.SaveChangesAsync();

            return(result >= 0);
        }
Пример #5
0
 public async Task <bool> SaveChangesAsync()
 {
     try
     {
         return(await _db.SaveChangesAsync() >= 0);
     }
     catch
     {
         return(false);
     }
 }
        public async Task <bool> SaveChangesAsync()
        {
            return(await _dbContext.SaveChangesAsync() >= 0);

            /*  try
             * {
             *
             * }
             * catch (Exception ex)
             * {
             *    return false;
             * }*/
        }
Пример #7
0
        public async Task <bool> UpdateUserAsync(UserDTO user)
        {
            var dbUser = await _db.Users.FirstOrDefaultAsync(u => u.Id.Equals(user.Id));

            if (dbUser == null)
            {
                return(false);
            }
            if (string.IsNullOrEmpty(user.Email))
            {
                return(false);
            }

            dbUser.Email = user.Email;

            #region Create New Token
            if (user.Token != null && user.Token.Token != null && user.Token.Token.Length > 0)
            {
                dbUser.Token        = user.Token.Token;
                dbUser.TokenExpires = user.Token.TokenExpires;

                // Create new claims for the token and expiration date
                var newTokenClaim   = new Claim("Token", user.Token.Token);
                var newTokenExpires = new Claim("TokenExpires", user.Token.TokenExpires.ToString("yyyy-MM-dd hh:mm:ss"));

                // Fetch the token and expiration claims if they exist
                var userClaims = await _userManager.GetClaimsAsync(dbUser);

                var currentTokenClaim        = userClaims.SingleOrDefault(c => c.Type.Equals("Token"));
                var currentTokenClaimExpires = userClaims.SingleOrDefault(c => c.Type.Equals("TokenExpires"));

                // Add or replace the claims for the token and expiration date
                if (currentTokenClaim == null)
                {
                    await _userManager.AddClaimAsync(dbUser, newTokenClaim);
                }
                else
                {
                    await _userManager.ReplaceClaimAsync(dbUser,
                                                         currentTokenClaim, newTokenClaim);
                }

                if (currentTokenClaimExpires == null)
                {
                    await _userManager.AddClaimAsync(dbUser, newTokenExpires);
                }
                else
                {
                    await _userManager.ReplaceClaimAsync(dbUser,
                                                         currentTokenClaimExpires, newTokenExpires);
                }
            }
            #endregion

            #region Admin Role and Claim
            var admin   = "Admin";
            var isAdmin = await _userManager.IsInRoleAsync(dbUser, admin);

            var adminClaim = new Claim(admin, "true");

            if (isAdmin && !user.IsAdmin)
            {
                // Remove Admin Role
                await _userManager.RemoveFromRoleAsync(dbUser, admin);

                // Remove Admin Claim
                await _userManager.RemoveClaimAsync(dbUser, adminClaim);
            }
            else if (!isAdmin && user.IsAdmin)
            {
                // Add Admin Role
                await _userManager.AddToRoleAsync(dbUser, admin);

                // Add Admin Claim
                await _userManager.AddClaimAsync(dbUser, adminClaim);
            }
            #endregion

            var result = await _db.SaveChangesAsync();

            return(result >= 0);
        }
Пример #8
0
        public async Task <bool> UpdateUserAsync(UserDTO user)
        {
            //check the user on null before go on
            if (user == null)
            {
                return(false);
            }

            var dbUser = await _dbContext.Users
                         .FirstOrDefaultAsync(u => u.Id == user.Id);

            //TODO: validate user.Email
            if (dbUser == null)
            {
                return(false);
            }
            if (String.IsNullOrEmpty(user.Email))
            {
                return(false);
            }

            dbUser.Email = user.Email;

            if (user.Token != null && user.Token.Token != null && user.Token.Token.Length > 0)
            {
                // Add token to the user in the database
                dbUser.Token        = user.Token.Token;
                dbUser.TokenExpires = user.Token.TokenExpires;

                var newTokenClaim   = new Claim(ClaimType.Token, user.Token.Token);
                var newTokenExpires = new Claim(ClaimType.TokenExpires,
                                                user.Token.TokenExpires.ToString("yyyy-MM-dd hh:mm:ss"));
                var userClaims = await _userManager.GetClaimsAsync(dbUser);

                var currentTokenClaim = userClaims.SingleOrDefault(
                    c => c.Type.Equals(ClaimType.Token));
                var currentTokenClaimExpires = userClaims.SingleOrDefault(
                    c => c.Type.Equals(ClaimType.TokenExpires));

                if (currentTokenClaim == null)
                {
                    await _userManager.AddClaimAsync(dbUser, newTokenClaim);
                }
                else
                {
                    await _userManager.ReplaceClaimAsync(dbUser, currentTokenClaim, newTokenClaim);
                }

                if (currentTokenClaimExpires == null)
                {
                    await _userManager.AddClaimAsync(dbUser, newTokenExpires);
                }
                else
                {
                    await _userManager.ReplaceClaimAsync(dbUser, currentTokenClaimExpires, newTokenExpires);
                }
            }

            var isAdmin = await _userManager.IsInRoleAsync(dbUser, Roles.Admin);

            var adminClaim = new Claim(Roles.Admin, "true");

            if (isAdmin && !user.IsAdmin)
            {   // Remove Admin role
                await _userManager.RemoveFromRoleAsync(dbUser, Roles.Admin);

                //Remove Admin claim
                await _userManager.RemoveClaimAsync(dbUser, adminClaim);
            }
            else if (!isAdmin && user.IsAdmin)
            {   // Add Admin role
                await _userManager.AddToRoleAsync(dbUser, Roles.Admin);

                // Add Admin claim
                await _userManager.AddClaimAsync(dbUser, adminClaim);
            }

            var result = await _dbContext.SaveChangesAsync();

            return(result >= 0); // if result is 0 then anyway we return true
        }