Beispiel #1
0
        public Navigation GetNavigationBySiteAndSection(string site, string section)
        {
            var navigation = NavigationRepository.GetSingle(x => x.MicroSiteId.Equals(site, StringComparison.CurrentCultureIgnoreCase) &&
                                                            x.Section.Equals(section, StringComparison.CurrentCultureIgnoreCase));

            if (navigation == null)
            {
                return(null);
            }

            navigation.NavigationItems = NavigationItemRepository.GetList(x => x.NavigationId.Equals(navigation.Id));

            return(navigation);
        }
Beispiel #2
0
        public async Task SetValueAsync(IDeferredItem <TItem> item, object deserializedValue, IDataTransaction dataTransaction)
        {
            IEngineRepository <TNav> navRepository = new NavigationItemRepository <TItem, TNav>(item, _navTools.NavExpression, _navTools.Setter);

            var itemData = new RestItemData(deserializedValue);

            var navLocatorCreator = new NavigationItemLocatorCreator <TNav>(_subContext);
            DeferredItemBase <TNav> deferredItem = await navLocatorCreator.LocateOrCreateItemAsync(navRepository, itemData, item.LoadAsync);

            try
            {
                IDataTransaction transaction  = new VoidTransaction(); // we commit the transaction in the parent. TODO optional save-as-you-go ?
                var            navContext     = new FullEngineContext <TNav>(transaction, navRepository, _subContext);
                var            navEngineItem  = new EngineRestItem <TNav>(navContext, deferredItem);
                Acknowledgment acknowledgment = await navEngineItem.EditAsync(itemData);
            }
            catch (RestApiException ex)
            {
                throw new SubWriterException(ex, item);
            }
        }