Пример #1
0
        public virtual async Task <T> AddAsync(T entity)
        {
            await _dbSet.AddAsync(entity);

            await _dbContext.SaveChangesAsync();

            return(entity);
        }
Пример #2
0
        /// <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);
        }
Пример #3
0
        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));
        }