protected override void InternalProcessRecord() { TaskLogger.LogEnter(new object[] { this.DataObject }); try { base.Validate(this.DataObject); if (base.HasErrors) { return; } TDataObject dataObject = this.DataObject; if (dataObject.Identity != null) { base.WriteVerbose(TaskVerboseStringHelper.GetSaveObjectVerboseString(this.DataObject, base.DataSession, typeof(TDataObject))); } using (TaskPerformanceData.SaveResult.StartRequestTimer()) { base.DataSession.Save(this.DataObject); } } catch (DataSourceTransientException exception) { base.WriteError(exception, (ErrorCategory)1002, null); } finally { TDataObject dataObject2 = this.DataObject; if (dataObject2.Identity != null) { base.WriteVerbose(TaskVerboseStringHelper.GetSourceVerboseString(base.DataSession)); } } TaskLogger.LogExit(); }