Example #1
0
        public static List <string[]> GetFilteredItems()
        {
            List <ItemModel> items = SqliteDataAccess.LoadItems();

            ItemFiltersModel filters = SqliteDataAccess.LoadItemFilters();

            List <string[]> filteredItems = new List <string[]>();

            foreach (ItemModel item in items)
            {
                bool isIgnorePassed       = false;
                bool isFilterVolumePassed = false;
                bool isFilterPricePassed  = false;

                if (filters.ignore_zero > 0)
                {
                    if (item.volume > 0 && item.sell_price > 0)
                    {
                        isIgnorePassed = true;
                    }
                }
                else
                {
                    isIgnorePassed = true;
                }

                decimal filterMaxVolume = filters.max_volume;

                if (filters.user_cargo_capacity < filters.max_volume && filters.user_cargo_capacity > 0)
                {
                    filterMaxVolume = filters.user_cargo_capacity;
                }

                if (filterMaxVolume > 0)
                {
                    if (item.volume < filterMaxVolume)
                    {
                        isFilterVolumePassed = true;
                    }
                }
                else
                {
                    isFilterVolumePassed = true;
                }

                decimal filterMaxPrice = filters.max_price;

                if (filters.user_available_money < filters.max_price && filters.user_available_money > 0)
                {
                    filterMaxPrice = filters.user_available_money;
                }

                if (filterMaxPrice > 0)
                {
                    if (item.sell_price < filterMaxPrice)
                    {
                        isFilterPricePassed = true;
                    }
                }
                else
                {
                    isFilterPricePassed = true;
                }

                if (isIgnorePassed && isFilterVolumePassed && isFilterPricePassed && item.trade_volume > filters.min_trade_volume)
                {
                    filteredItems.Add(new string[] { item.type_id.ToString(), item.name, item.volume.ToString(CultureInfo.InvariantCulture) });
                }
            }

            return(filteredItems);
        }