aggicd
aggicd

Reputation: 737

Query for items per day

This is my store:

<ext:Store ID="itemsPerDayStore" OnReadData="itemsPerDayStore_ReadData" runat="server">
     <Model>
            <ext:Model runat="server">
                  <Fields>
                       <ext:ModelField Name="Day" />
                       <ext:ModelField Name="Items" />
                  </Fields>
            </ext:Model>
     </Model>
</ext:Store>

the Items table is this:

Items ( Itemid | DayPurchased )

How I can write a query which will return the number of Items per Day? Store will be used to populate an Items per Day graph.

Upvotes: 0

Views: 144

Answers (1)

Peska
Peska

Reputation: 4140

using System;
using System.Collections.Generic;
using System.Linq;

public class Item
{
    public int Itemid { get; set; }
    public DateTime DayPurchased { get; set; }
}

public partial class Default : System.Web.UI.Page
{
    protected void itemsPerDayStore_ReadData(object sender, Ext.Net.StoreReadDataEventArgs e)
    {
        // Sample data. Replace items from database
        IEnumerable<Item> Items = new Item[]
        {
            new Item { Itemid = 1, DayPurchased = DateTime.Today },
            new Item { Itemid = 2, DayPurchased = DateTime.Today },
            new Item { Itemid = 3, DayPurchased = DateTime.Today },
            new Item { Itemid = 4, DayPurchased = DateTime.Today.AddDays(-1) },
            new Item { Itemid = 5, DayPurchased = DateTime.Today.AddDays(-1) },
            new Item { Itemid = 6, DayPurchased = DateTime.Today.AddDays(-2) }
        };

        itemsPerDayStore.DataSource = Items.GroupBy(x => x.DayPurchased.Day).Select(x => new
        {
            Day = x.Key,
            Items = x.Count()
        });

        itemsPerDayStore.DataBind();
    }
}

Remember to reload your store for the first time. Something like this:

<ext:ResourceManager runat="server">
    <Listeners>
        <DocumentReady Handler="#{itemsPerDayStore}.reload();" />
    </Listeners>
</ext:ResourceManager>

Upvotes: 2

Related Questions