Пример #1
0
        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);
        }
Пример #2
0
        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));
        }