public int Delete(Posisi obj)
        {
            int result = 0;

            using (IDbContext context = new DbContext())
            {
                _repository = new PosisiRepository(context);
                result      = _repository.Delete(obj);
            }

            return(result);
        }
        // ----------------------------------------------------------------------//

        #region >> Methods <<

        public IList <Posisi> GetAll()
        {
            var listPosisi = new List <Posisi>();

            using (IDbContext context = new DbContext())
            {
                _repository = new PosisiRepository(context);
                listPosisi  = _repository.GetAll().ToList();
            }

            return(listPosisi);
        }
        public Posisi GetByID(int id)
        {
            Posisi obj = null;

            using (IDbContext context = new DbContext())
            {
                _repository = new PosisiRepository(context);
                obj         = _repository.GetByID(id);
            }

            return(obj);
        }
        public int Update(Posisi obj)
        {
            if (!NamaIsUnique(obj.nama, obj.id))
            {
                return(-1);
            }

            int result = 0;

            using (IDbContext context = new DbContext())
            {
                _repository = new PosisiRepository(context);
                result      = _repository.Update(obj);
            }

            return(result);
        }
        private bool NamaIsUnique(string nama, int id = 0)
        {
            Posisi obj = null;

            using (IDbContext context = new DbContext())
            {
                _repository = new PosisiRepository(context);
                obj         = _repository.GetByNama(nama);
            }

            if (obj == null || obj.id == id)
            {
                return(true); // unique
            }

            return(false);
        }