/// <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)); } }
/// <summary> /// Returns all entities /// </summary> /// <returns>List of entities</returns> public IEnumerable <TEntity> GetAll() { using (FilesWalkerContext context = new FilesWalkerContext()) { return(context.Set <TDalEntity>().ToList()); } }
/// <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()); } }
/// <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(); } }
/// <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(); } }
/// <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(); } }
/// <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); }
/// <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(); } }
/// <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); } } }