private static PlanFeature MapPlanFeature(IDataReader reader) { PlanFeature pf = new PlanFeature(); PriorityLevel pl = new PriorityLevel(); int startingIndex = 0; pf.Id = reader.GetSafeInt32(startingIndex++); pf.Title = reader.GetSafeString(startingIndex++); pf.Description = reader.GetSafeString(startingIndex++); pf.Category = reader.GetSafeInt32(startingIndex++); pf.PlanId = reader.GetSafeInt32(startingIndex++); pf.DateAdded = reader.GetSafeDateTime(startingIndex++); pf.DateModified = reader.GetSafeDateTime(startingIndex++); pf.LanguageCode = reader.GetSafeString(startingIndex++); pl.Name = reader.GetSafeString(startingIndex++); pl.Id = reader.GetSafeInt32(startingIndex++); pf.SortOrder = pl; return pf; }
public List<UserPlans> GetPlanByUserId(string userId) { List<UserPlans> list = null; List<PlanFeature> featureList = null; DataProvider.ExecuteCmd(GetConnection, "dbo.UserPlans_SelectByUserId_v3" , inputParamMapper: delegate(SqlParameterCollection paramCollection) { paramCollection.AddWithValue("@UserId", userId); } , map: delegate(IDataReader reader, short set) { UserPlans u = new UserPlans(); PlanType pt = new PlanType(); PlanFeature pf = new PlanFeature(); PriorityLevel pl = new PriorityLevel(); if (set == 0) { int startingIndex = 0; u.PlanId = reader.GetSafeInt32(startingIndex++); u.Subscribed = reader.GetSafeBool(startingIndex++); u.PlanName = reader.GetSafeString(startingIndex++); u.PlanDescription = reader.GetSafeString(startingIndex++); pt.Id = reader.GetSafeInt32(startingIndex++); pt.Name = reader.GetSafeString(startingIndex++); u.Cost = reader.GetSafeInt32(startingIndex++); u.GoLiveDate = reader.GetSafeDateTime(startingIndex++); u.TagId = reader.GetSafeInt32(startingIndex++); u.TagName = reader.GetSafeString(startingIndex++); u.Type = pt; if (list == null) { list = new List<UserPlans>(); } list.Add(u); } if (set == 1) { int startingIndex = 0; pf.Title = reader.GetSafeString(startingIndex++); pf.Description = reader.GetSafeString(startingIndex++); pf.Id = reader.GetSafeInt32(startingIndex++); pf.PlanId = reader.GetSafeInt32(startingIndex++); pf.DateAdded = reader.GetSafeDateTime(startingIndex++); pf.DateModified = reader.GetSafeDateTime(startingIndex++); pf.LanguageCode = reader.GetSafeString(startingIndex++); pl.Name = reader.GetSafeString(startingIndex++); pl.Id = reader.GetSafeInt32(startingIndex++); pf.SortOrder = pl; if (featureList == null) { featureList = new List<PlanFeature>(); } featureList.Add(pf); } }); if (featureList != null) { for (var i = 0; featureList.Count > i; i++) { for (var e = 0; list.Count > e; e++) { if (list[e].PlanId == featureList[i].PlanId) { if (list[e].FeatureInfo == null) { list[e].FeatureInfo = new List<PlanFeature>(); } list[e].FeatureInfo.Add(featureList[i]); } } } } return list; }