public virtual async Task <T> AddAsync(T entity) { await _dbSet.AddAsync(entity); await _dbContext.SaveChangesAsync(); return(entity); }
/// <summary> /// Adds or Updates if entity already in database /// </summary> /// <param name="entity"></param> /// <returns></returns> public virtual async Task <T> SaveAsync(T entity) { T entityDb = _dbSet.Find(entity.Id); if (entityDb == null) { await _dbSet.AddAsync(entity); } else { _dbSet.Update(entity); } await _dbContext.SaveChangesAsync(); return(entity); }
public async Task <UserDTO> AddOrUpdateAsync(UserDTO user) { SyllabusManagerUser dbUser = await _dbSet.FindAsync(user.Id); if (dbUser == null) { return(await AddAsync(user)); } List <string> roles = (await _userManager.GetRolesAsync(dbUser)).ToList(); await _userManager.RemoveFromRolesAsync(dbUser, roles); await _userManager.AddToRolesAsync(dbUser, user.Roles); _dbContext.Entry(dbUser).CurrentValues.SetValues(user); dbUser.NormalizedEmail = user.Email.ToUpper(); await _dbContext.SaveChangesAsync(); roles = (await _userManager.GetRolesAsync(dbUser)).ToList(); return(dbUser.MakeDto(roles)); }