OIShoppingListWinPhone.DataModel.ShoppingList.SortItemsCollection C# (CSharp) Метод

SortItemsCollection() публичный Метод

Sort existing ListItems collection with corresponding application settings
public SortItemsCollection ( ) : void
Результат void
        public void SortItemsCollection()
        {
            //Collection of list items occur if current sort order does not match with
            //applicaion settings sort order (actually, after settings chenging)
            IEnumerable<ShoppingListItem> collection = this._sortedItemsCollection;

            if (collection != null)
            {
                //Collection sorting
                switch (App.Settings.SortOrderSetting)
                {
                    case (int)ApplicationSettings.SortOrderSettings.Alphabetical:
                        collection = collection.OrderBy(i => i.ItemName);
                        break;
                    case (int)ApplicationSettings.SortOrderSettings.MostExpensiveFirst:
                        collection = collection.OrderBy(i => i, new MostExpensiveFirst());
                        break;
                    case (int)ApplicationSettings.SortOrderSettings.NewestFirst:
                        collection = collection.OrderBy(i => i, new NewestFirst());
                        break;
                    case (int)ApplicationSettings.SortOrderSettings.OldestFirst:
                        collection = collection.OrderBy(i => i.CreatedDate);
                        break;
                    case (int)ApplicationSettings.SortOrderSettings.Priority_TagsAlphabetical:
                        collection = collection.OrderBy(i => i, new Priority_TagsAlphabetical());
                        break;
                    case (int)ApplicationSettings.SortOrderSettings.TagsAlphabetical:
                        collection = collection.OrderBy(i => i.Tag);
                        break;
                    case (int)ApplicationSettings.SortOrderSettings.UncheckedFirst_Alphabetical:
                        collection = collection.OrderBy(i => i, new UncheckedFirst_Alphabetical());
                        break;
                    case (int)ApplicationSettings.SortOrderSettings.UncheckedFirst_Priority_Alphabetical:
                        collection = collection.OrderBy(i => i, new UncheckedFirst_Priority_Alphabetical());
                        break;
                    case (int)ApplicationSettings.SortOrderSettings.UncheckedFirst_TagsAlphabetical:
                        collection = collection.OrderBy(i => i, new UncheckedFirst_TagsAlphabetical());
                        break;
                    case (int)ApplicationSettings.SortOrderSettings.UnckeckedFirst_Priority_TagsAlphabetical:
                        collection = collection.OrderBy(i => i, new UnckeckedFirst_Priority_TagsAlphabetical());
                        break;
                    default:
                        break;
                }
                this.bSorted = true;
                this.SortedItemsCollection = collection;
            }
        }

Usage Example

        /// <summary>
        /// Change item status. If status was 'Unchecked' -> change to 'Checked',
        /// else if status was 'Checked' -> change to 'Unchecked'
        /// </summary>
        /// <param name="currentList">Instance of list containing item to be changed</param>
        /// <param name="item">Instance of item to be updated</param>
        public void ChangeItemStatus(ShoppingList currentList, ShoppingListItem item)
        {
            ShoppingListItem itemInDB = listDB.ListItems.Where(i => i.ItemID == item.ItemID).FirstOrDefault();
            if (itemInDB.Status == 0)
                itemInDB.Status = 1;
            else
                itemInDB.Status = 0;
            itemInDB.ModifiedDate = DateTime.Now;
            currentList.ModifiedDate = DateTime.Now;
            currentList.SortItemsCollection();

            listDB.SubmitChanges();
        }