public virtual MessageObject <T> Add(T entity)
        {
            MessageObject <T> validationResult = ValidateAdd(entity);

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

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