public virtual MessageObject <T> Disable(T entity)
        {
            MessageObject <T> validationResult = ValidateDisable(entity);

            try
            {
                BasePreProcessing(ref entity, OperationType.Disable);
                if (validationResult.ProcessingStatus)
                {
                    repo.Disable(entity);
                    repo.Commit();

                    BasePostProcessing(ref entity, OperationType.Add);
                }
            }
            catch (Exception ex)
            {
                Utils.Logger.Log(ex, logSource);
                validationResult.AddException(ex);
            }
            return(validationResult);
        }
        public virtual MessageObject <T> Update(T entity)
        {
            MessageObject <T> validationResult = ValidateUpdate(entity);

            try
            {
                BasePreProcessing(ref entity, OperationType.Update);
                if (validationResult.ProcessingStatus)
                {
                    repo.Update(entity);
                    //validationResult.Data = repo.GetById(entity.Id); //refresh
                    repo.Commit();

                    BasePostProcessing(ref entity, OperationType.Add);
                }
            }
            catch (Exception ex)
            {
                Utils.Logger.Log(ex, logSource);
                validationResult.AddException(ex);
            }
            return(validationResult);
        }