public static void ReleaseSequence(ISupportSequenceObject supportSequenceObject) { var typeName = supportSequenceObject.Prefix + supportSequenceObject.GetType().FullName; var objectSpace = (XPObjectSpace)XPObjectSpace.FindObjectSpaceByObject(supportSequenceObject); ReleaseSequence(objectSpace.Session, typeName, supportSequenceObject.Sequence); }
public static void GenerateSequence(ISupportSequenceObject supportSequenceObject, ITypeInfo typeInfo) { if (_defaultDataLayer == null) { return; } if (_sequenceGenerator == null) { _sequenceGenerator = new SequenceGenerator(); } long nextSequence = _sequenceGenerator.GetNextSequence(typeInfo, supportSequenceObject.Prefix); Session session = supportSequenceObject.Session; if (!(session is NestedUnitOfWork)) { SessionManipulationEventHandler[] sessionOnAfterCommitTransaction = { null }; sessionOnAfterCommitTransaction[0] = (sender, args) => { if (_sequenceGenerator != null) { try { _sequenceGenerator.Accept(); } finally { session.AfterCommitTransaction -= sessionOnAfterCommitTransaction[0]; _sequenceGenerator.Dispose(); _sequenceGenerator = null; } } }; session.AfterCommitTransaction += sessionOnAfterCommitTransaction[0]; } supportSequenceObject.Sequence = nextSequence; }
public static void GenerateSequence(ISupportSequenceObject supportSequenceObject, ITypeInfo typeInfo) { if (((ISessionProvider)supportSequenceObject).Session.IsNewObject(supportSequenceObject)) { GenerateSequence(((ISessionProvider)supportSequenceObject).Session, supportSequenceObject.Prefix + typeInfo.FullName, l => supportSequenceObject.Sequence = l); } }
public ListView CreateListView(XafApplication application, IObjectSpace objectSpace, ISupportSequenceObject supportSequenceObject) { var nestedObjectSpace = (XPNestedObjectSpace)objectSpace.CreateNestedObjectSpace(); var objectType = XafTypesInfo.Instance.FindBussinessObjectType<ISequenceReleasedObject>(); var collectionSource = application.CreateCollectionSource(nestedObjectSpace, objectType, application.FindListViewId(objectType)); collectionSource.Criteria["ShowReleasedSequences"] = CriteriaOperator.Parse("TypeName=?", supportSequenceObject.Prefix + supportSequenceObject.ClassInfo.FullName); return application.CreateListView(nestedObjectSpace, objectType, true); }
public static void GenerateSequence(ISupportSequenceObject supportSequenceObject) { var info = XafTypesInfo.Instance.FindTypeInfo(supportSequenceObject.GetType()); var typeInfo = info.IsInterface ? XafTypesInfo.Instance.FindTypeInfo(XpoTypesInfoHelper.GetXpoTypeInfoSource().GetGeneratedEntityType(info.Type)) : XafTypesInfo.Instance.FindTypeInfo(((XPBaseObject)supportSequenceObject).ClassInfo.FullName); GenerateSequence(supportSequenceObject, typeInfo); }
public static void ReleaseSequence(ISupportSequenceObject supportSequenceObject) { if (_defaultDataLayer == null) { return; } var objectSpace = (XPObjectSpace)XPObjectSpace.FindObjectSpaceByObject(supportSequenceObject); var sequenceObject = objectSpace.GetObjectByKey(_sequenceObjectType, supportSequenceObject.Prefix + supportSequenceObject.ClassInfo.FullName) as ISequenceObject; if (sequenceObject != null) { var objectFromInterface = objectSpace.CreateObjectFromInterface <ISequenceReleasedObject>(); objectFromInterface.Sequence = supportSequenceObject.Sequence; objectFromInterface.SequenceObject = sequenceObject; } }
public static void GenerateSequence(ISupportSequenceObject supportSequenceObject) { GenerateSequence(supportSequenceObject, XafTypesInfo.Instance.FindTypeInfo(supportSequenceObject.ClassInfo.FullName)); }
public static void ReleaseSequence(ISupportSequenceObject supportSequenceObject) { if (_defaultDataLayer == null) return; var objectSpace = (XPObjectSpace)XPObjectSpace.FindObjectSpaceByObject(supportSequenceObject); var sequenceObject = objectSpace.GetObjectByKey(_sequenceObjectType, supportSequenceObject.Prefix + supportSequenceObject.ClassInfo.FullName) as ISequenceObject; if (sequenceObject != null) { var objectFromInterface = objectSpace.CreateObjectFromInterface<ISequenceReleasedObject>(); objectFromInterface.Sequence = supportSequenceObject.Sequence; objectFromInterface.SequenceObject = sequenceObject; } }
public static void GenerateSequence(ISupportSequenceObject supportSequenceObject, ITypeInfo typeInfo) { if (_defaultDataLayer == null) return; if (supportSequenceObject.Session is NestedUnitOfWork || !supportSequenceObject.Session.IsNewObject(supportSequenceObject)) return; if (_sequenceGenerator == null) _sequenceGenerator = new SequenceGenerator(); long nextSequence = _sequenceGenerator.GetNextSequence(typeInfo, supportSequenceObject.Prefix); Session session = supportSequenceObject.Session; if (IsNotNestedUnitOfWork(session)) { SessionManipulationEventHandler[] sessionOnAfterCommitTransaction = { null }; sessionOnAfterCommitTransaction[0] = (sender, args) => { if (_sequenceGenerator != null) { try { _sequenceGenerator.Accept(); } finally { session.AfterCommitTransaction -= sessionOnAfterCommitTransaction[0]; } } }; session.AfterCommitTransaction += sessionOnAfterCommitTransaction[0]; } supportSequenceObject.Sequence = nextSequence; }
public ListView CreateListView(XafApplication application, IObjectSpace objectSpace, ISupportSequenceObject supportSequenceObject) { var nestedObjectSpace = (XPNestedObjectSpace)objectSpace.CreateNestedObjectSpace(); var objectType = XafTypesInfo.Instance.FindBussinessObjectType <ISequenceReleasedObject>(); var collectionSource = application.CreateCollectionSource(nestedObjectSpace, objectType, application.FindListViewId(objectType)); collectionSource.Criteria["ShowReleasedSequences"] = CriteriaOperator.Parse("TypeName=?", supportSequenceObject.Prefix + supportSequenceObject.ClassInfo.FullName); return(application.CreateListView(nestedObjectSpace, objectType, true)); }
public void Assign(PopupWindowShowActionExecuteEventArgs popupWindowShowActionExecuteEventArgs, ISupportSequenceObject sequenceObject) { var sequenceReleasedObject = ((ISequenceReleasedObject)popupWindowShowActionExecuteEventArgs.PopupWindow.View.CurrentObject); _sequenceReleasedObjectKey = popupWindowShowActionExecuteEventArgs.PopupWindow.View.ObjectSpace.GetKeyValue(popupWindowShowActionExecuteEventArgs.PopupWindow.View.CurrentObject); var sequence = sequenceReleasedObject.Sequence; sequenceObject.Sequence = sequence; }
public void Init(IObjectSpace objectSpace, ISupportSequenceObject editingObject, XafApplication application) { _objectSpace = (XPObjectSpace)objectSpace; _supportSequenceObject = editingObject; _application = application; }
public static void GenerateSequence(ISupportSequenceObject supportSequenceObject) { if (_sequenceGenerator == null) _sequenceGenerator = new SequenceGenerator(); long nextSequence = _sequenceGenerator.GetNextSequence(supportSequenceObject.ClassInfo, supportSequenceObject.Prefix); Session session = supportSequenceObject.Session; if (!(session is NestedUnitOfWork)) { SessionManipulationEventHandler[] sessionOnAfterCommitTransaction = { null }; sessionOnAfterCommitTransaction[0] = (sender, args) => { if (_sequenceGenerator != null) { try { _sequenceGenerator.Accept(); } finally { session.AfterCommitTransaction -= sessionOnAfterCommitTransaction[0]; _sequenceGenerator.Dispose(); _sequenceGenerator = null; } } }; session.AfterCommitTransaction += sessionOnAfterCommitTransaction[0]; } supportSequenceObject.Sequence = nextSequence; }
private static bool IsProviderSupported(ISupportSequenceObject supportSequenceObject){ return !(supportSequenceObject.Session.DataLayer.ConnectionProvider(supportSequenceObject) is SQLiteConnectionProvider); }