public async Task <BaseDTO> FindByIdAsync(int id, int templateId) { //1. get template var template = await _templateRepository.FindByIdAsync(templateId, new string[] { "TemplateIncludes", "TemplateType" }); if (template == null) { return(null); } string typeName = template.TemplateType.Route; //2. Getdata T data = await _dataRepository.FindByIdAsync(id, TypeIncludes.GetIncludes(typeName.ToLower())); if (data == null) { return(null); } //3. map and return return(_mapper.map(data, template.TemplateIncludes.Select(p => p.Include).ToArray())); }