public OperationResult Save(TEntity entity, bool validateChilds) { var result = EngineContext.Current.Resolve <OperationResult>(); if (entity == null) { return(result.AddError(Messages.Common_NullEntity)); } if (HasNotExistsOnDatabase(entity)) { return(result.AddError(Messages.Common_UnknownEntity)); } result += _validationProvider.Validate(entity); if (result.ContainsError) { return(result); } var dbEntity = GetDatabaseVersion(entity); if (dbEntity != null) { entity.Id = dbEntity.Id; } try { if (entity.IsTransient()) { entity.Id = DateTime.UtcNow.GetTimestamp(); CurrentSession.Save(entity); } else { CurrentSession.Update(entity); } } catch (Exception) { _activeSessionManager.RenewSession(); return(result.AddError(Messages.Common_SaveFailed)); } return(result); }
public OperationResult SaveChanges() { var result = EngineContext.Current.Resolve <OperationResult>(); if (_cachedSettings == null) { return(result.AddError(Messages.Common_NullEntity)); } result += _validationProvider.Validate(_cachedSettings); if (result.ContainsError) { return(result); } try { var properties = from pi in typeof(TSettings).GetProperties() where pi.CanWrite && pi.CanRead select pi; var typeName = typeof(TSettings).Name; foreach (var property in properties) { var key = string.Concat(typeName, ".", property.Name); var value = property.GetValue(_cachedSettings, null); result += _settingService.Save(key, value); } } catch { return(result); } return(result); }