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); }
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); }
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); } }
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); }
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; * }*/ }
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); }
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 }