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); }