public List<Limit> GetLimit(string enrollmentcode, short typeid, int stateID, int underwriter) { string cacheKey = string.Concat("$Limit_ec_type$", enrollmentcode, "_", typeid); object CachedList = m_Cache.Get(cacheKey) as List<Limit>; List<Limit> lstReturn = null; //if (CachedList == null)//get from the service { PetfirstData pfData = new PetfirstData(); lstReturn = pfData.GetLimit(enrollmentcode, typeid, stateID, underwriter); if (lstReturn.Count > 0) { //list has dup because of IsDefault is pulled //process list to get rid of dup decimal defaultValue = 0; defaultValue = (from l in lstReturn where l.IsDefault select l.Amount).FirstOrDefault(); if (defaultValue != 0) { lstReturn.RemoveAll(x => x.IsDefault == false && x.Amount == defaultValue); } m_Cache.Add(cacheKey, lstReturn); } else if (!enrollmentcode.Equals(_defaultEnrollment)) { lstReturn = pfData.GetLimit(_defaultEnrollment, typeid, stateID, underwriter); if (lstReturn.Count > 0) { decimal defaultValue = 0; defaultValue = (from l in lstReturn where l.IsDefault select l.Amount).FirstOrDefault(); if (defaultValue != 0) { lstReturn.RemoveAll(x => x.IsDefault == false && x.Amount == defaultValue); } m_Cache.Add(cacheKey, lstReturn); } } } //else // lstReturn = (List<Limit>)CachedList; return lstReturn; }