protected override System.Collections.IEnumerable ExecuteSelect(DataSourceSelectArguments arguments)
        {
            ItemDataSourceSelectingEventArgs selectingArgs = new ItemDataSourceSelectingEventArgs(arguments);

            OnSelecting(selectingArgs);
            Collections.ItemListEventArgs args = new N2.Collections.ItemListEventArgs(GetAllItems());
            if (args.Items == null)
            {
                return(null);
            }

            if (selectingArgs.Arguments.RetrieveTotalRowCount)
            {
                selectingArgs.Arguments.TotalRowCount = args.Items.Count;
            }

            if (!string.IsNullOrEmpty(selectingArgs.Arguments.SortExpression) && selectingArgs.Arguments.SortExpression != currentSortExpression)
            {
                args.Items.Sort(new Collections.ItemComparer(selectingArgs.Arguments.SortExpression));
                currentSortExpression = selectingArgs.Arguments.SortExpression;
            }
            else if (!string.IsNullOrEmpty(SortBy))
            {
                args.Items.Sort(new Collections.ItemComparer(SortBy));
            }

            OnFiltering(args);
            if (Filter != null || (selectingArgs.Arguments.StartRowIndex >= 0 && selectingArgs.Arguments.MaximumRows > 0))
            {
                Collections.ItemList filteredItems = args.Items;

                if (Filter != null)
                {
                    filteredItems = new Collections.ItemList(filteredItems, Filter);
                }

                if (selectingArgs.Arguments.StartRowIndex >= 0 && selectingArgs.Arguments.MaximumRows > 0)
                {
                    filteredItems = new Collections.ItemList(filteredItems, new Collections.CountFilter(selectingArgs.Arguments.StartRowIndex, selectingArgs.Arguments.MaximumRows));
                }

                args = new N2.Collections.ItemListEventArgs(filteredItems);
            }

            OnSelected(args);
            return(args.Items);
        }
예제 #2
0
        protected override int ExecuteDelete(System.Collections.IDictionary keys, System.Collections.IDictionary oldValues)
        {
            Collections.ItemListEventArgs args = new N2.Collections.ItemListEventArgs(GetItemsFromIdentifiers(keys));
            OnDeleting(args);

            foreach (ContentItem item in args.Items)
            {
                Engine.Persister.Delete(item);
            }

            OnDeleted(args);

            if (args.Items.Count > 0)
            {
                OnDataSourceViewChanged(EventArgs.Empty);
            }
            return(args.Items.Count);
        }
예제 #3
0
		protected override IEnumerable ExecuteSelect(DataSourceSelectArguments arguments)
		{
			if (this.Query != null)
			{
			    ItemDataSourceSelectingEventArgs selectingArgs = new ItemDataSourceSelectingEventArgs(arguments);
			    OnSelecting(selectingArgs);

				IList<ContentItem> items = Query
					.FirstResult(selectingArgs.Arguments.StartRowIndex)
					.MaxResults(selectingArgs.Arguments.MaximumRows)
					.Select();

			    Collections.ItemListEventArgs args = new N2.Collections.ItemListEventArgs(new Collections.ItemList(items));
			    OnSelected(args);
			    return args.Items;
			}
			else
			    return null;
		}
예제 #4
0
        protected override IEnumerable ExecuteSelect(DataSourceSelectArguments arguments)
        {
            if (this.Query != null)
            {
                ItemDataSourceSelectingEventArgs selectingArgs = new ItemDataSourceSelectingEventArgs(arguments);
                OnSelecting(selectingArgs);

                IList <ContentItem> items = Query
                                            .FirstResult(selectingArgs.Arguments.StartRowIndex)
                                            .MaxResults(selectingArgs.Arguments.MaximumRows)
                                            .Select();

                Collections.ItemListEventArgs args = new N2.Collections.ItemListEventArgs(new Collections.ItemList(items));
                OnSelected(args);
                return(args.Items);
            }
            else
            {
                return(null);
            }
        }
예제 #5
0
        protected override int ExecuteUpdate(System.Collections.IDictionary keys, System.Collections.IDictionary values, System.Collections.IDictionary oldValues)
        {
            Collections.ItemListEventArgs args = new N2.Collections.ItemListEventArgs(GetItemsFromIdentifiers(keys));
            OnUpdating(args);

            foreach (ContentItem item in args.Items)
            {
                foreach (string propertyName in values.Keys)
                {
                    item[propertyName] = values[propertyName];
                }
                Engine.Persister.Save(item);
            }

            OnUpdated(args);
            if (args.Items.Count > 0)
            {
                OnDataSourceViewChanged(EventArgs.Empty);
            }
            return(args.Items.Count);
        }
예제 #6
0
        protected override System.Collections.IEnumerable ExecuteSelect(DataSourceSelectArguments arguments)
        {
            ItemDataSourceSelectingEventArgs selectingArgs = new ItemDataSourceSelectingEventArgs(arguments);
            OnSelecting(selectingArgs);
            Collections.ItemListEventArgs args = new N2.Collections.ItemListEventArgs(GetAllItems());
            if (args.Items == null)
                return null;

            if(selectingArgs.Arguments.RetrieveTotalRowCount)
                selectingArgs.Arguments.TotalRowCount = args.Items.Count;

            if (!string.IsNullOrEmpty(selectingArgs.Arguments.SortExpression) && selectingArgs.Arguments.SortExpression != currentSortExpression)
            {
                args.Items.Sort(new Collections.ItemComparer(selectingArgs.Arguments.SortExpression));
                currentSortExpression = selectingArgs.Arguments.SortExpression;
            }
            else if (!string.IsNullOrEmpty(SortBy))
            {
                args.Items.Sort(new Collections.ItemComparer(SortBy));
            }

            OnFiltering(args);
            if (Filter != null || (selectingArgs.Arguments.StartRowIndex >= 0 && selectingArgs.Arguments.MaximumRows > 0))
            {
                Collections.ItemList filteredItems = args.Items;

                if (Filter != null)
                    filteredItems = new Collections.ItemList(filteredItems, Filter);

                if (selectingArgs.Arguments.StartRowIndex >= 0 && selectingArgs.Arguments.MaximumRows > 0)
                    filteredItems = new Collections.ItemList(filteredItems, new Collections.CountFilter(selectingArgs.Arguments.StartRowIndex, selectingArgs.Arguments.MaximumRows));

                args = new N2.Collections.ItemListEventArgs(filteredItems);
            }

            OnSelected(args);
            return args.Items;
        }
 void idsNews_Filtering(object sender, N2.Collections.ItemListEventArgs e)
 {
     Collections.TypeFilter.Filter(e.Items, typeof(N2.Templates.Items.News));
 }
예제 #8
0
 void idsNews_Filtering(object sender, N2.Collections.ItemListEventArgs e)
 {
     CurrentItem.Filter(e.Items);
 }
예제 #9
0
        protected override int ExecuteUpdate(System.Collections.IDictionary keys, System.Collections.IDictionary values, System.Collections.IDictionary oldValues)
        {
            Collections.ItemListEventArgs args = new N2.Collections.ItemListEventArgs(GetItemsFromIdentifiers(keys));
            OnUpdating(args);

            foreach (ContentItem item in args.Items)
            {
                foreach (string propertyName in values.Keys)
                    item[propertyName] = values[propertyName];
                Engine.Persister.Save(item);
            }

            OnUpdated(args);
            if (args.Items.Count > 0)
                OnDataSourceViewChanged(EventArgs.Empty);
            return args.Items.Count;
        } 
예제 #10
0
        protected override int ExecuteDelete(System.Collections.IDictionary keys, System.Collections.IDictionary oldValues)
        {
            Collections.ItemListEventArgs args = new N2.Collections.ItemListEventArgs(GetItemsFromIdentifiers(keys));
            OnDeleting(args);

            foreach(ContentItem item in args.Items)
                Engine.Persister.Delete(item);

            OnDeleted(args);

            if (args.Items.Count > 0)
                OnDataSourceViewChanged(EventArgs.Empty);
            return args.Items.Count;
        }