예제 #1
0
 public void NotUpdateColsInDB(TEntity entityToUpdate, string[] excluded)
 {
     try
     {
         if (Context.Entry(entityToUpdate).State == EntityState.Detached)
         {
             DbSet.Attach(entityToUpdate);
         }
         foreach (var name in excluded)
         {
             Context.Entry(entityToUpdate).Property(name.ToString()).IsModified = false;
         }
     }
     catch (DbEntityValidationException ex)
     {
         var message = AppResource.UpdateErrorValidation + " (";
         ex.EntityValidationErrors.SelectMany(error => error.ValidationErrors).ToList().ForEach(item => { message += " column name: " + item.PropertyName + " " + "ErrorMessage " + item.ErrorMessage; });
         message += ")";
         var e = new DigoErpException(message, (int)SystemExceptions.Err_SavingDataDBFailure, ex);
         throw e;
     }
     catch (DbUpdateConcurrencyException ex)
     {
         var message = AppResource.UpdateErrorConcurrency;
         var e       = new DigoErpException(message, (int)SystemExceptions.Err_SavingDataDBFailure, ex);
         throw e;
     }
     catch (DbUpdateException ex)
     {
         var message = AppResource.UpdateErrorDB;
         var e       = new DigoErpException(message, (int)SystemExceptions.Err_SavingDataDBFailure, ex);
         throw e;
     }
     catch (NotSupportedException ex)
     {
         var message = AppResource.UpdateErrorNotSupported;
         var e       = new DigoErpException(message, (int)SystemExceptions.Err_SavingDataDBFailure, ex);
         throw e;
     }
     catch (ObjectDisposedException ex)
     {
         var message = AppResource.UpdateErrorDisposed;
         var e       = new DigoErpException(message, (int)SystemExceptions.Err_SavingDataDBFailure, ex);
         throw e;
     }
     catch (InvalidOperationException ex)
     {
         var message = AppResource.UpdateErrorInvalidOperation;
         var e       = new DigoErpException(message, (int)SystemExceptions.Err_SavingDataDBFailure, ex);
         throw e;
     }
     catch (Exception ex)
     {
         var errorMessage = "";
         errorMessage = ex.Message.ToString();
         throw ex;
     }
 }
예제 #2
0
        public virtual DataTableResponse <TEntity> GetPaginationByRawSql <T>(string filterSql, int take, int skip)
        {
            try
            {
                var cars = Context.Database.SqlQuery <TEntity>(filterSql).ToList();

                return(new DataTableResponse <TEntity>
                {
                    data = cars,
                    recordsFiltered = cars.Count,
                    recordsTotal = cars.Count
                });
            }
            catch (DbEntityValidationException ex)
            {
                var message = AppResource.GetErrorValidation + " (";
                ex.EntityValidationErrors.SelectMany(error => error.ValidationErrors).ToList().ForEach(item => { message += " column name: " + item.PropertyName + " " + "ErrorMessage " + item.ErrorMessage; });
                message += ")";
                var e = new DigoErpException(message, (int)SystemExceptions.Err_SavingDataDBFailure, ex);
                throw e;
            }
            catch (DbUpdateConcurrencyException ex)
            {
                var message = AppResource.GetErrorConcurrency;
                var e       = new DigoErpException(message, (int)SystemExceptions.Err_SavingDataDBFailure, ex);
                throw e;
            }
            catch (DbUpdateException ex)
            {
                var message = AppResource.GetErrorDB;
                var e       = new DigoErpException(message, (int)SystemExceptions.Err_SavingDataDBFailure, ex);
                throw e;
            }
            catch (NotSupportedException ex)
            {
                var message = AppResource.GetErrorNotSupported;
                var e       = new DigoErpException(message, (int)SystemExceptions.Err_SavingDataDBFailure, ex);
                throw e;
            }
            catch (ObjectDisposedException ex)
            {
                var message = AppResource.GetErrorDisposed;
                var e       = new DigoErpException(message, (int)SystemExceptions.Err_SavingDataDBFailure, ex);
                throw e;
            }
            catch (InvalidOperationException ex)
            {
                var message = AppResource.GetErrorInvalidOperation;
                var e       = new DigoErpException(message, (int)SystemExceptions.Err_SavingDataDBFailure, ex);
                throw e;
            }
            catch (Exception ex)
            {
                var e = new DigoErpException(ex.Message, (int)SystemExceptions.Err_SavingDataDBFailure, ex);
                throw e;
            }
        }
예제 #3
0
 public virtual int GetCount(Expression <Func <TEntity, bool> > filter = null)
 {
     try
     {
         IQueryable <TEntity> query = DbSet;
         if (filter != null)
         {
             query = query.Where(filter);
         }
         return(query.Count());
     }
     catch (DbEntityValidationException ex)
     {
         var message = AppResource.GetErrorValidation + " (";
         ex.EntityValidationErrors.SelectMany(error => error.ValidationErrors).ToList().ForEach(item => { message += " column name: " + item.PropertyName + " " + "ErrorMessage " + item.ErrorMessage; });
         message += ")";
         var e = new DigoErpException(message, (int)SystemExceptions.Err_SavingDataDBFailure, ex);
         throw e;
     }
     catch (DbUpdateConcurrencyException ex)
     {
         var message = AppResource.GetErrorConcurrency;
         var e       = new DigoErpException(message, (int)SystemExceptions.Err_SavingDataDBFailure, ex);
         throw e;
     }
     catch (DbUpdateException ex)
     {
         var message = AppResource.GetErrorDB;
         var e       = new DigoErpException(message, (int)SystemExceptions.Err_SavingDataDBFailure, ex);
         throw e;
     }
     catch (NotSupportedException ex)
     {
         var message = AppResource.GetErrorNotSupported;
         var e       = new DigoErpException(message, (int)SystemExceptions.Err_SavingDataDBFailure, ex);
         throw e;
     }
     catch (ObjectDisposedException ex)
     {
         var message = AppResource.GetErrorDisposed;
         var e       = new DigoErpException(message, (int)SystemExceptions.Err_SavingDataDBFailure, ex);
         throw e;
     }
     catch (InvalidOperationException ex)
     {
         var message = AppResource.GetErrorInvalidOperation;
         var e       = new DigoErpException(message, (int)SystemExceptions.Err_SavingDataDBFailure, ex);
         throw e;
     }
     catch (Exception ex)
     {
         var e = new DigoErpException(ex.Message, (int)SystemExceptions.Err_SavingDataDBFailure, ex);
         throw e;
     }
 }
예제 #4
0
 public virtual void Delete(TEntity entityToDelete)
 {
     try
     {
         if (Context.Entry(entityToDelete).State == EntityState.Detached)
         {
             DbSet.Attach(entityToDelete);
         }
         DbSet.Remove(entityToDelete);
     }
     catch (DbEntityValidationException ex)
     {
         var message = AppResource.DeleteErrorValidation + " (";
         ex.EntityValidationErrors.SelectMany(error => error.ValidationErrors).ToList().ForEach(item => { message += " column name: " + item.PropertyName + " " + "ErrorMessage " + item.ErrorMessage; });
         message += ")";
         var e = new DigoErpException(message, (int)SystemExceptions.Err_SavingDataDBFailure, ex);
         throw e;
     }
     catch (DbUpdateConcurrencyException ex)
     {
         var message = AppResource.DeleteErrorConcurrency;
         var e       = new DigoErpException(message, (int)SystemExceptions.Err_SavingDataDBFailure, ex);
         throw e;
     }
     catch (DbUpdateException ex)
     {
         var message = AppResource.DeleteErrorDB;
         var e       = new DigoErpException(message, (int)SystemExceptions.Err_SavingDataDBFailure, ex);
         throw e;
     }
     catch (NotSupportedException ex)
     {
         var message = AppResource.DeleteErrorNotSupported;
         var e       = new DigoErpException(message, (int)SystemExceptions.Err_SavingDataDBFailure, ex);
         throw e;
     }
     catch (ObjectDisposedException ex)
     {
         var message = AppResource.DeleteErrorDisposed;
         var e       = new DigoErpException(message, (int)SystemExceptions.Err_SavingDataDBFailure, ex);
         throw e;
     }
     catch (InvalidOperationException ex)
     {
         var message = AppResource.DeleteErrorInvalidOperation;
         var e       = new DigoErpException(message, (int)SystemExceptions.Err_SavingDataDBFailure, ex);
         throw e;
     }
     catch (Exception ex)
     {
         var e = new DigoErpException(ex.Message, (int)SystemExceptions.Err_SavingDataDBFailure, ex);
         throw e;
     }
 }
예제 #5
0
 public void UpdateSomeCols(TEntity entityToUpdate, params string[] properties)
 {
     try
     {
         foreach (var propertyName in properties)
         {
             Context.Entry(entityToUpdate).Property(propertyName).IsModified = true;
         }
         Context.SaveChanges();
     }
     catch (DbEntityValidationException ex)
     {
         var message = AppResource.UpdateErrorValidation + " (";
         ex.EntityValidationErrors.SelectMany(error => error.ValidationErrors).ToList().ForEach(item => { message += " column name: " + item.PropertyName + " " + "ErrorMessage " + item.ErrorMessage; });
         message += ")";
         var e = new DigoErpException(message, (int)SystemExceptions.Err_SavingDataDBFailure, ex);
         throw e;
     }
     catch (DbUpdateConcurrencyException ex)
     {
         var message = AppResource.UpdateErrorConcurrency;
         var e       = new DigoErpException(message, (int)SystemExceptions.Err_SavingDataDBFailure, ex);
         throw e;
     }
     catch (DbUpdateException ex)
     {
         var message = AppResource.UpdateErrorDB;
         var e       = new DigoErpException(message, (int)SystemExceptions.Err_SavingDataDBFailure, ex);
         throw e;
     }
     catch (NotSupportedException ex)
     {
         var message = AppResource.UpdateErrorNotSupported;
         var e       = new DigoErpException(message, (int)SystemExceptions.Err_SavingDataDBFailure, ex);
         throw e;
     }
     catch (ObjectDisposedException ex)
     {
         var message = AppResource.UpdateErrorDisposed;
         var e       = new DigoErpException(message, (int)SystemExceptions.Err_SavingDataDBFailure, ex);
         throw e;
     }
     catch (InvalidOperationException ex)
     {
         var message = AppResource.UpdateErrorInvalidOperation;
         var e       = new DigoErpException(message, (int)SystemExceptions.Err_SavingDataDBFailure, ex);
         throw e;
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
예제 #6
0
 public virtual TEntity GetByIdAsNoTracking(object id)
 {
     try
     {
         var entity = DbSet.Find(id);
         Context.Entry(entity).State = EntityState.Detached;
         return(entity);
     }
     catch (DbEntityValidationException ex)
     {
         var message = AppResource.GetErrorValidation + " (";
         ex.EntityValidationErrors.SelectMany(error => error.ValidationErrors).ToList().ForEach(item => { message += " column name: " + item.PropertyName + " " + "ErrorMessage " + item.ErrorMessage; });
         message += ")";
         var e = new DigoErpException(message, (int)SystemExceptions.Err_SavingDataDBFailure, ex);
         throw e;
     }
     catch (DbUpdateConcurrencyException ex)
     {
         var message = AppResource.GetErrorConcurrency;
         var e       = new DigoErpException(message, (int)SystemExceptions.Err_SavingDataDBFailure, ex);
         throw e;
     }
     catch (DbUpdateException ex)
     {
         var message = AppResource.GetErrorDB;
         var e       = new DigoErpException(message, (int)SystemExceptions.Err_SavingDataDBFailure, ex);
         throw e;
     }
     catch (NotSupportedException ex)
     {
         var message = AppResource.GetErrorNotSupported;
         var e       = new DigoErpException(message, (int)SystemExceptions.Err_SavingDataDBFailure, ex);
         throw e;
     }
     catch (ObjectDisposedException ex)
     {
         var message = AppResource.GetErrorDisposed;
         var e       = new DigoErpException(message, (int)SystemExceptions.Err_SavingDataDBFailure, ex);
         throw e;
     }
     catch (InvalidOperationException ex)
     {
         var message = AppResource.GetErrorInvalidOperation;
         var e       = new DigoErpException(message, (int)SystemExceptions.Err_SavingDataDBFailure, ex);
         throw e;
     }
     catch (Exception ex)
     {
         var e = new DigoErpException(ex.Message, (int)SystemExceptions.Err_SavingDataDBFailure, ex);
         throw e;
     }
 }
예제 #7
0
 public virtual TEntity Insert(TEntity entity)
 {
     try
     {
         DbSet.Add(entity);
         return(entity);
     }
     catch (DbEntityValidationException ex)
     {
         var message = AppResource.InsertErrorValidation + " (";
         ex.EntityValidationErrors.SelectMany(error => error.ValidationErrors).ToList().ForEach(item => { message += " column name: " + item.PropertyName + " " + "ErrorMessage " + item.ErrorMessage; });
         message += ")";
         var e = new DigoErpException(message, (int)SystemExceptions.Err_SavingDataDBFailure, ex);
         throw e;
     }
     catch (DbUpdateConcurrencyException ex)
     {
         var message = AppResource.InsertErrorConcurrency;
         var e       = new DigoErpException(message, (int)SystemExceptions.Err_SavingDataDBFailure, ex);
         throw e;
     }
     catch (DbUpdateException ex)
     {
         var message = AppResource.InsertErrorDB;
         var e       = new DigoErpException(message, (int)SystemExceptions.Err_SavingDataDBFailure, ex);
         throw e;
     }
     catch (NotSupportedException ex)
     {
         var message = AppResource.InsertErrorNotSupported;
         var e       = new DigoErpException(message, (int)SystemExceptions.Err_SavingDataDBFailure, ex);
         throw e;
     }
     catch (ObjectDisposedException ex)
     {
         var message = AppResource.InsertErrorDisposed;
         var e       = new DigoErpException(message, (int)SystemExceptions.Err_SavingDataDBFailure, ex);
         throw e;
     }
     catch (InvalidOperationException ex)
     {
         var message = AppResource.InsertErrorInvalidOperation;
         var e       = new DigoErpException(message, (int)SystemExceptions.Err_SavingDataDBFailure, ex);
         throw e;
     }
     catch (Exception ex)
     {
         var e = new DigoErpException(ex.Message, (int)SystemExceptions.Err_SavingDataDBFailure, ex);
         throw e;
     }
 }
예제 #8
0
        public virtual DataTableResponse <TEntity> GetPagination <T>(int take, int skip, Expression <Func <TEntity, bool> > filter = null, Func <IQueryable <TEntity>, IOrderedQueryable <TEntity> > orderBy = null)
        {
            try
            {
                IQueryable <TEntity> query = DbSet;
                int count;
                if (filter != null)
                {
                    query = query.Where(filter);
                    count = query.Where(filter).Count();
                }
                else
                {
                    count = query.Count();
                }
                var entities = orderBy(query).Skip(skip).Take(take);

                return(new DataTableResponse <TEntity>
                {
                    data = entities.ToList(),
                    recordsTotal = count,
                    recordsFiltered = count
                });
            }
            catch (DbEntityValidationException ex)
            {
                var message = AppResource.GetErrorValidation + " (";
                ex.EntityValidationErrors.SelectMany(error => error.ValidationErrors).ToList().ForEach(item => { message += " column name: " + item.PropertyName + " " + "ErrorMessage " + item.ErrorMessage; });
                message += ")";
                var e = new DigoErpException(message, (int)SystemExceptions.Err_SavingDataDBFailure, ex);
                throw e;
            }
            catch (DbUpdateConcurrencyException ex)
            {
                var message = AppResource.GetErrorConcurrency;
                var e       = new DigoErpException(message, (int)SystemExceptions.Err_SavingDataDBFailure, ex);
                throw e;
            }
            catch (DbUpdateException ex)
            {
                var message = AppResource.GetErrorDB;
                var e       = new DigoErpException(message, (int)SystemExceptions.Err_SavingDataDBFailure, ex);
                throw e;
            }
            catch (NotSupportedException ex)
            {
                var message = AppResource.GetErrorNotSupported;
                var e       = new DigoErpException(message, (int)SystemExceptions.Err_SavingDataDBFailure, ex);
                throw e;
            }
            catch (ObjectDisposedException ex)
            {
                var message = AppResource.GetErrorDisposed;
                var e       = new DigoErpException(message, (int)SystemExceptions.Err_SavingDataDBFailure, ex);
                throw e;
            }
            catch (InvalidOperationException ex)
            {
                var message = AppResource.GetErrorInvalidOperation;
                var e       = new DigoErpException(message, (int)SystemExceptions.Err_SavingDataDBFailure, ex);
                throw e;
            }
            catch (Exception ex)
            {
                var e = new DigoErpException(ex.Message, (int)SystemExceptions.Err_SavingDataDBFailure, ex);
                throw e;
            }
        }
예제 #9
0
        public virtual IEnumerable <TEntity> GetWithDeAttached(
            Expression <Func <TEntity, bool> > filter = null,
            Func <IQueryable <TEntity>, IOrderedQueryable <TEntity> > orderBy = null,
            string includeProperties = "")
        {
            try
            {
                IQueryable <TEntity> query = DbSet.AsNoTracking();

                if (filter != null)
                {
                    query = query.Where(filter).AsNoTracking();
                }

                foreach (var includeProperty in includeProperties.Split
                             (new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries))
                {
                    query = query.Include(includeProperty).AsNoTracking();
                }

                if (orderBy != null)
                {
                    return(orderBy(query).ToList());
                }
                else
                {
                    return(query.AsNoTracking().ToList());
                }
            }
            catch (DbEntityValidationException ex)
            {
                var message = AppResource.GetErrorValidation + " (";
                ex.EntityValidationErrors.SelectMany(error => error.ValidationErrors).ToList().ForEach(item => { message += " column name: " + item.PropertyName + " " + "ErrorMessage " + item.ErrorMessage; });
                message += ")";
                var e = new DigoErpException(message, (int)SystemExceptions.Err_SavingDataDBFailure, ex);
                throw e;
            }
            catch (DbUpdateConcurrencyException ex)
            {
                var message = AppResource.GetErrorConcurrency;
                var e       = new DigoErpException(message, (int)SystemExceptions.Err_SavingDataDBFailure, ex);
                throw e;
            }
            catch (DbUpdateException ex)
            {
                var message = AppResource.GetErrorDB;
                var e       = new DigoErpException(message, (int)SystemExceptions.Err_SavingDataDBFailure, ex);
                throw e;
            }
            catch (NotSupportedException ex)
            {
                var message = AppResource.GetErrorNotSupported;
                var e       = new DigoErpException(message, (int)SystemExceptions.Err_SavingDataDBFailure, ex);
                throw e;
            }
            catch (ObjectDisposedException ex)
            {
                var message = AppResource.GetErrorDisposed;
                var e       = new DigoErpException(message, (int)SystemExceptions.Err_SavingDataDBFailure, ex);
                throw e;
            }
            catch (InvalidOperationException ex)
            {
                var message = AppResource.GetErrorInvalidOperation;
                var e       = new DigoErpException(message, (int)SystemExceptions.Err_SavingDataDBFailure, ex);
                throw e;
            }
            catch (Exception ex)
            {
                var e = new DigoErpException(ex.Message, (int)SystemExceptions.Err_SavingDataDBFailure, ex);
                throw e;
            }
        }