public void LoadPages()
        {
            Pages = new Dictionary<int, ShopPage>();

            DataTable Table = null;

            using (QueryReactor Reactor = BrickEngine.GetQueryReactor())
            {
                Reactor.SetQuery("SELECT * FROM shop_pages ORDER BY order_id ASC");
                Table = Reactor.GetTable();
            }

            if (Table != null)
            {
                foreach (DataRow Row in Table.Rows)
                {
                    ShopPage Page = new ShopPage(Row);

                    Pages.Add(Page.Id, Page);
                }
            }

            BrickEngine.GetScreenWriter().ScretchLine("[" + Pages.Count + "] Shop(s) cached.", IO.WriteType.Outgoing);
        }
 public void SerializeShopData(Response Response, ShopPage Page)
 {
     ShopData[Page.Base].Invoke(Response, Page);
 }
        public Response GetExtraResponse(ShopPage Page, Client Client)
        {
            if (Page.Base.ToLower() == "club_buy")
            {
                Response Response = new Response(625);
                Response.AppendInt32(ClubItems.Count);

                var Sorted = from item in ClubItems.Values.ToList()
                             orderby item.ShopItemId ascending
                             select item;

                foreach (ShopClubItem ClubItem in Sorted)
                {
                    ClubItem.GetResponse(Response);
                }

                return Response;
            }
            else if (Page.Base.ToLower() == "club_gifts")
            {
                Response Response = new Response(623);

                if (Client.GetUser().GetMembership() != null)
                {
                    Response.AppendInt32(1); // Item for choose in X days // -1 = no member
                }
                else
                {
                    Response.AppendInt32(-1);
                }

                Response.AppendInt32(0); // ItemsToChooseLeft
                Response.AppendInt32(GiftItems.Count);

                foreach (ShopGiftItem GiftItem in GiftItems.Values.ToList())
                {
                    GiftItem.GetExternalResponse(Response);
                }

                Response.AppendInt32(GiftItems.Count);

                foreach (ShopGiftItem GiftItem in GiftItems.Values.ToList())
                {
                    GiftItem.GetInternalResponse(Response);
                }

                return Response;
            }
            else
            {
                return null;
            }
        }