public CapabilityMappings GetAll() { return(GetInternal(() => { var retval = new CapabilityMappings(); var sql = $@" select cap.*, '|' as '|', std.*, '|' as '|', cs.* from CapabilityStandard cs join Capability cap on cap.Id = cs.CapabilityId join Standard std on std.Id = cs.StandardId "; _dbConnection.Value.Query <Capability, Standard, CapabilityStandard, CapabilityMapping>(sql, (cap, std, cs) => { var thisCapMap = retval.CapabilityMapping.SingleOrDefault(x => x.Capability.Id == cap.Id); if (thisCapMap == null) { thisCapMap = new CapabilityMapping { Capability = cap }; retval.CapabilityMapping.Add(thisCapMap); } thisCapMap.OptionalStandard.Add( new OptionalStandard { StandardId = std.Id, IsOptional = cs.IsOptional }); var thiStd = retval.Standard.SingleOrDefault(x => x.Id == std.Id); if (thiStd == null) { retval.Standard.Add(std); } return thisCapMap; }, splitOn: "|,|"); return retval; })); }
public CapabilityMappings GetAll() { return(GetInternal(() => { var retval = new CapabilityMappings(); var capStds = _capabilityStandardDatastore.GetAll(); var caps = _capabilitiesDatastore.GetAll(); var stds = _standardsDatastore.GetAll(); foreach (var cap in caps) { var thisCapMap = retval.CapabilityMapping.SingleOrDefault(x => x.Capability.Id == cap.Id); if (thisCapMap == null) { thisCapMap = new CapabilityMapping { Capability = cap }; var optStds = capStds .Where(cs => cs.CapabilityId == cap.Id) .Select(cs => new OptionalStandard { StandardId = cs.StandardId, IsOptional = cs.IsOptional }); thisCapMap.OptionalStandard.AddRange(optStds); retval.CapabilityMapping.Add(thisCapMap); } } retval.Standard.AddRange(stds); return retval; })); }