示例#1
0
        public ServerMessage SerializeOffersNew(int MinCost, int MaxCost, string SearchQuery, int FilterMode)
        {
            DataTable     Table   = null;
            StringBuilder Builder = new StringBuilder();

            Builder.Append("WHERE state = '1' AND timestamp >= " + this.FormatTimestampString());
            if (MinCost >= 0)
            {
                Builder.Append(" AND total_price > " + MinCost);
            }
            if (MaxCost >= 0)
            {
                Builder.Append(" AND total_price < " + MaxCost);
            }
            string str;

            switch (FilterMode)
            {
            case 1:
                str = "ORDER BY asking_price DESC";
                goto IL_82;
            }
            str = "ORDER BY asking_price ASC";
IL_82:
            using (DatabaseClient adapter = PhoenixEnvironment.GetDatabase().GetClient())
            {
                adapter.AddParamWithValue("search_query", "%" + SearchQuery + "%");
                if (SearchQuery.Length >= 1)
                {
                    Builder.Append(" AND public_name LIKE @search_query");
                }
                Table = adapter.ReadDataTable(string.Concat(new string[]
                {
                    "SELECT offer_id, item_type, sprite_id, total_price FROM catalog_marketplace_offers ",
                    Builder.ToString(),
                    " ",
                    str,
                    " LIMIT 500"
                }));
            }
            ServerMessage Message = new ServerMessage(615u);

            this.MarketplaceItems.Clear();
            this.MarketItemKeys.Clear();
            if (Table != null)
            {
                foreach (DataRow dataRow in Table.Rows)
                {
                    if (!this.MarketItemKeys.Contains((uint)dataRow["offer_id"]))
                    {
                        MarketplaceItems item = new MarketplaceItems((uint)dataRow["offer_id"], (int)dataRow["sprite_id"], (int)dataRow["total_price"], int.Parse(dataRow["item_type"].ToString()));
                        this.MarketItemKeys.Add((uint)dataRow["offer_id"]);
                        this.MarketplaceItems.Add(item);
                    }
                }
                return(this.SerializeOffers(MinCost, MaxCost));
            }
            else
            {
                Message.AppendInt32(0);
                return(Message);
            }
        }
示例#2
0
		public ServerMessage SerializeOffersNew(int MinCost, int MaxCost, string SearchQuery, int FilterMode)
		{
			DataTable Table = null;
			StringBuilder Builder = new StringBuilder();
			Builder.Append("WHERE state = '1' AND timestamp >= " + this.FormatTimestampString());
			if (MinCost >= 0)
			{
				Builder.Append(" AND total_price > " + MinCost);
			}
			if (MaxCost >= 0)
			{
				Builder.Append(" AND total_price < " + MaxCost);
			}
			string str;
			switch (FilterMode)
			{
			case 1:
				str = "ORDER BY asking_price DESC";
				goto IL_82;
			}
			str = "ORDER BY asking_price ASC";
			IL_82:
			using (DatabaseClient adapter = PhoenixEnvironment.GetDatabase().GetClient())
			{
				adapter.AddParamWithValue("search_query", "%" + SearchQuery + "%");
				if (SearchQuery.Length >= 1)
				{
					Builder.Append(" AND public_name LIKE @search_query");
				}
				Table = adapter.ReadDataTable(string.Concat(new string[]
				{
					"SELECT offer_id, item_type, sprite_id, total_price FROM catalog_marketplace_offers ",
					Builder.ToString(),
					" ",
					str,
					" LIMIT 500"
				}));
			}
			ServerMessage Message = new ServerMessage(615u);
			this.MarketplaceItems.Clear();
			this.MarketItemKeys.Clear();
			if (Table != null)
			{
				foreach (DataRow dataRow in Table.Rows)
				{
					if (!this.MarketItemKeys.Contains((uint)dataRow["offer_id"]))
					{
						MarketplaceItems item = new MarketplaceItems((uint)dataRow["offer_id"], (int)dataRow["sprite_id"], (int)dataRow["total_price"], int.Parse(dataRow["item_type"].ToString()));
						this.MarketItemKeys.Add((uint)dataRow["offer_id"]);
						this.MarketplaceItems.Add(item);
					}
				}
				return this.SerializeOffers(MinCost, MaxCost);
			}
			else
			{
				Message.AppendInt32(0);
				return Message;
			}
		}