예제 #1
0
 /// <summary>
 /// Returns Entity by Id
 /// </summary>
 /// <param name="id">Id of entity</param>
 /// <returns>Entity of type T</returns>
 public TEntity GetById(string id)
 {
     using (FilesWalkerContext context = new FilesWalkerContext())
     {
         return(context.Set <TDalEntity>().FirstOrDefault(entity => entity.Id == id));
     }
 }
예제 #2
0
 /// <summary>
 /// Returns all entities
 /// </summary>
 /// <returns>List of entities</returns>
 public IEnumerable <TEntity> GetAll()
 {
     using (FilesWalkerContext context = new FilesWalkerContext())
     {
         return(context.Set <TDalEntity>().ToList());
     }
 }
예제 #3
0
 /// <summary>
 /// Returns all entities satisfied predicate
 /// </summary>
 /// <param name="func"></param>
 /// <returns></returns>
 public IEnumerable <TEntity> GetAll(Func <TEntity, bool> func)
 {
     using (FilesWalkerContext context = new FilesWalkerContext())
     {
         return(context.Set <TDalEntity>().Where(func).ToList());
     }
 }
예제 #4
0
        /// <summary>
        /// Replace all user roles with list
        /// </summary>
        /// <param name="roles">Roles list</param>
        /// <param name="userId">Target user Id</param>
        public void SetUserRoles(IEnumerable <IRole> roles, string userId)
        {
            using (FilesWalkerContext context = new FilesWalkerContext())
            {
                var dalUser = context.Users.Include("Roles").FirstOrDefault(u => u.Id == userId);
                if (dalUser == null)
                {
                    throw new ArgumentException("User does not exist");
                }

                foreach (IRole role in roles)
                {
                    if (dalUser.Roles.All(r => r.Id != role.Id))
                    {
                        dalUser.Roles.Add(context.Roles.Attach(ConvertToDal(role)));
                    }
                }

                for (int i = 0; i < dalUser.Roles.Count; ++i)
                {
                    if (roles.All(r => r.Id != dalUser.Roles[i].Id))
                    {
                        dalUser.Roles.RemoveAt(i);
                    }
                }

                context.SaveChanges();
            }
        }
예제 #5
0
 /// <summary>
 /// Update existing user with new data
 /// </summary>
 public void Update(TEntity entity)
 {
     using (FilesWalkerContext context = new FilesWalkerContext())
     {
         TDalEntity dalEntity = ConvertToDal(entity);
         context.Set <TDalEntity>().Attach(dalEntity);
         context.Entry(dalEntity).State = EntityState.Modified;
         context.SaveChanges();
     }
 }
예제 #6
0
        /// <summary>
        /// Delete entity
        /// </summary>
        /// <param name="entity">Target entity</param>
        public void Delete(TEntity entity)
        {
            TDalEntity dalEntity = ConvertToDal(entity);

            using (FilesWalkerContext context = new FilesWalkerContext())
            {
                context.Set <TDalEntity>().Attach(dalEntity);
                context.Set <TDalEntity>().Remove(dalEntity);
                context.SaveChanges();
            }
        }
예제 #7
0
        /// <summary>
        /// Create new entity
        /// </summary>
        /// <param name="entity">New entity</param>
        /// <returns>Created etity</returns>
        public TEntity Create(TEntity entity)
        {
            TDalEntity dalEntity = ConvertToDal(entity);

            using (FilesWalkerContext context = new FilesWalkerContext())
            {
                context.Set <TDalEntity>().Add(dalEntity);
                context.SaveChanges();
            }

            return(dalEntity);
        }
예제 #8
0
        /// <summary>
        /// Set role for user
        /// </summary>
        /// <param name="user">Target user</param>
        /// <param name="role">User role</param>
        public void SetUserRole(IUser user, IRole role)
        {
            using (FilesWalkerContext context = new FilesWalkerContext())
            {
                var dalUser = context.Users.Include("Roles").FirstOrDefault(u => u.Id == user.Id);
                if (dalUser == null)
                {
                    throw new ArgumentException("User does not exist");
                }

                dalUser.Roles.Add(context.Roles.Attach(ConvertToDal(role)));
                context.SaveChanges();
            }
        }
예제 #9
0
        /// <summary>
        /// Returns all user roles
        /// </summary>
        /// <param name="user">Target user</param>
        /// <returns>List f roles</returns>
        public IEnumerable <IRole> GetRoles(IUser user)
        {
            if (user == null)
            {
                throw new ArgumentNullException();
            }

            using (FilesWalkerContext context = new FilesWalkerContext())
            {
                var account = context.Set <User>().Include("Roles").FirstOrDefault(u => u.Id == user.Id);
                if (account == null)
                {
                    throw new ArgumentException("user");
                }
                else
                {
                    return(account.Roles);
                }
            }
        }