private XpandUnitOfWork CreateUnitOfWork() { var uow = new XpandUnitOfWork(DataLayer); var securedObjectLayer = _security as ISelectDataSecurityProvider; if (securedObjectLayer != null && (_clientSideSecurity.HasValue && _clientSideSecurity.Value != ClientSideSecurity.UIlevel)) { var securityRuleProvider = new SecurityRuleProvider(XPDictionary, securedObjectLayer.CreateSelectDataSecurity()); var currentObjectLayer = new SecuredSessionObjectLayer(_allowICommandChannelDoWithSecurityContext, uow, true, null, securityRuleProvider, null); return(new XpandUnitOfWork(currentObjectLayer, uow)); } return(uow); }
private XpandUnitOfWork CreateUnitOfWork(IDataStore dataStore, IEnumerable <IDisposable> disposableObjects) { var disposableObjectsList = new List <IDisposable>(); if (disposableObjects != null) { disposableObjectsList.AddRange(disposableObjects); } var dataLayer = new SimpleDataLayer(XPDictionary, dataStore); disposableObjectsList.Add(dataLayer); if (SelectDataSecurityProvider == null) { return(new XpandUnitOfWork(dataLayer, disposableObjectsList.ToArray())); } var xpandUnitOfWork = new XpandUnitOfWork(dataLayer, disposableObjectsList.ToArray()); SessionObjectLayer currentObjectLayer = new SecuredSessionObjectLayer(_allowICommandChannelDoWithSecurityContext, xpandUnitOfWork, true, null, new SecurityRuleProvider(XPDictionary, _selectDataSecurityProvider.CreateSelectDataSecurity()), null); return(new XpandUnitOfWork(currentObjectLayer, xpandUnitOfWork)); }