예제 #1
0
 private void FriendRepository_BeforeInsert(RepositoryEventArgs <Friend> e)
 {
     if (Where(g => g.Email == e.Model.Email).Any())
     {
         throw new Exception("Você já possui um amigo com este mesmo e-mail.");
     }
 }
예제 #2
0
 private void GameRepository_BeforeInsert(RepositoryEventArgs <Game> e)
 {
     if (Where(g => g.Title == e.Model.Title).Any())
     {
         throw new Exception("Você já possui um jogo com este mesmo título.");
     }
 }
예제 #3
0
        private void GameRepository_BeforeDelete(RepositoryEventArgs <Game> e)
        {
            var game = Find(e.Model.Id);

            if (game?.IsLended == true)
            {
                throw new Exception("Este jogo está emprestado e não pode ser removido.");
            }
        }
예제 #4
0
        private void FriendRepository_BeforeDelete(RepositoryEventArgs <Friend> e)
        {
            var hasGames = _gameRepository.Where(g => g.FriendId == e.Model.Id).Any();

            if (hasGames)
            {
                throw new Exception("Você não pode remover este amigo, pois ele possui jogos emprestados.");
            }
        }
예제 #5
0
        public virtual void DeleteRange(params TModel[] models)
        {
            var eArgs = new RepositoryEventArgs <TModel>();

            eArgs.Models = models;

            BeforeDelete?.Invoke(eArgs);

            dbSet.RemoveRange(models);
        }
예제 #6
0
        public virtual void InsertRange(params TModel[] models)
        {
            var eArgs = new RepositoryEventArgs <TModel>();

            eArgs.Models = models;

            BeforeInsert?.Invoke(eArgs);

            dbSet.AddRange(models);
        }
예제 #7
0
        public virtual void Insert(TModel model)
        {
            var eArgs = new RepositoryEventArgs <TModel>();

            eArgs.Model = model;

            BeforeInsert?.Invoke(eArgs);

            dbSet.Add(model);
        }
예제 #8
0
        public virtual void Update(TModel model)
        {
            var eArgs = new RepositoryEventArgs <TModel>();

            eArgs.Model = model;

            BeforeUpdate?.Invoke(eArgs);

            dbSet.Attach(model);
            context.Entry(model).State = EntityState.Modified;
        }
예제 #9
0
        private void AccountRepository_BeforeInsert(RepositoryEventArgs <Account> e)
        {
            if (Where(g => g.Username == e.Model.Username).Any())
            {
                throw new Exception("Já existe uma conta com este usuário.");
            }

            if (Where(g => g.Email == e.Model.Email).Any())
            {
                throw new Exception("Já existe uma conta com este e-mail.");
            }
        }
예제 #10
0
        public virtual void Delete(TModel model)
        {
            var eArgs = new RepositoryEventArgs <TModel>();

            eArgs.Model = model;

            BeforeDelete?.Invoke(eArgs);

            if (context.Entry(model).State == EntityState.Detached)
            {
                dbSet.Attach(model);
            }

            dbSet.Remove(model);
        }