public override MaterialTypeDTO GetById(int?id) { var dto = base.GetById(id); if (dto != null) { var categoryDTO = MaterialCategoryService.GetById(dto.CategoryId); var typeConfigs = MaterialTypeConfigRepository.Find(x => x.MaterialTypeId == id).ToDictionary(x => x.ConfigKey); dto.Configs = categoryDTO.Configs.OrderBy(x => x.Sort).Select(x => new MaterialTypeConfigDTO() { ConfigKey = x.ConfigKey, ConfigKeyDesc = x.ConfigKeyDesc, ConfigValueType = x.ConfigValueType, ConfigDefaultValue = typeConfigs.ContainsKey(x.ConfigKey) ? typeConfigs[x.ConfigKey].ConfigDefaultValue : null, MaterialTypeId = dto.Id, Remark = x.Remark, Sort = x.Sort }).ToList(); } return(dto); }
public override PageResult <MaterialTypeDTO> Search(SearchArgs <MaterialType> searchArgs) { var result = base.Search(searchArgs); foreach (var item in result.Items) { var typeConfigs = MaterialTypeConfigRepository.Find(x => x.MaterialTypeId == item.Id).OrderBy(x => x.Sort); var categoryDTO = MaterialCategoryService.GetById(item.CategoryId); item.Configs = categoryDTO.Configs.Select(x => new MaterialTypeConfigDTO() { ConfigKey = x.ConfigKey, ConfigKeyDesc = x.ConfigKeyDesc, ConfigValueType = x.ConfigValueType, ConfigDefaultValue = typeConfigs.FirstOrDefault(y => y.ConfigKey == x.ConfigKey) == null ? null : typeConfigs.FirstOrDefault(y => y.ConfigKey == x.ConfigKey).ConfigDefaultValue, MaterialTypeId = item.Id, Remark = x.Remark, Sort = x.Sort }).OrderBy(x => x.Sort).ToList(); } return(result); }