public void UpdateDto(ConfigDto dto, IEnumerable <WTask> wTasks, IEnumerable <WGroup> wGroups) { if (dto == null) { return; } if (dto.Groups == null) { dto.Groups = new List <GroupDto>(); } if (dto.Tasks == null) { dto.Tasks = new List <TaskDto>(); } if (wTasks == null || wGroups == null) { return; } foreach (var wGroup in wGroups) { var groupToUpdate = dto.Groups.Where(x => x.Id == wGroup.Id).SingleOrDefault(); if (groupToUpdate == null) { groupToUpdate = new GroupDto(); dto.Groups.Add(groupToUpdate); } groupToUpdate.Tasks = new List <TaskDto>(); _conversionService.ConvertToDto(groupToUpdate, wGroup); } foreach (var wTask in wTasks) { var taskToUpdate = dto.Tasks.Where(x => x.Id == wTask.Id).SingleOrDefault(); if (taskToUpdate == null) { taskToUpdate = new TaskDto(); dto.Tasks.Add(taskToUpdate); } taskToUpdate.Groups = new List <GroupDto>(); _conversionService.ConvertToDto(taskToUpdate, wTask, dto.Groups, true); } }