private static IEnumerable<ITimeAndMaterialLineItem> GetMBTimeAndMaterialLineItemsByCostCode(ICostCode c)
        {
            MasterBuilder.TimeAndMaterialLineItem.SetCache("select * from tmemln", c.Recnum);

            try
            {
                return MasterBuilder.TimeAndMaterialLineItem.GetFromCache(r => Convert.ToDecimal(r["cstcde"]) == c.Recnum);
            }
            catch
            {
                return Cache.CacheResult(() =>
                {
                    using (var cmd = Connections.Connection.CreateCommand())
                    {
                        var rv = new List<ITimeAndMaterialLineItem>();
                        cmd.CommandText = string.Format("select recnum, linnum from tmemln where cstcde = {0}", c.Recnum);
                        var rdr = cmd.ExecuteReader();
                        while (rdr.Read())
                        {
                            rv.Add(new MasterBuilder.TimeAndMaterialLineItem(Convert.ToInt32(rdr[0]), Convert.ToInt32(rdr[1])));
                        }

                        return rv;
                    }
                }, c.Recnum);
            }
        }
 public CostCodeController(ICostCode _ICostCode)
 {
     this._ICostCode = _ICostCode;
 }
 public static IEnumerable<ITimeAndMaterialLineItem> GetTimeAndMaterialLineItemsByCostCode(ICostCode c)
 {
     return Cache.CacheResult(() =>
     {
         switch (AccountingSystem)
         {
             case AccountingSystems.MasterBuilder:
                 return GetMBTimeAndMaterialLineItemsByCostCode(c);
             default:
                 throw new NotImplementedException();
         }
     }, c.Recnum);
 }