private async Task AssignHierarchicalFunctionsAsync(UpdateFunctionViewModel viewModel) { IList <SelectListItem> functionItems = new List <SelectListItem> { new SelectListItem { Value = "0", Text = "None" } }; var hierarchicalFunctions = await _functionService.GetHierarchicalListAsync(); foreach (var item in hierarchicalFunctions) { functionItems.Add(new SelectListItem { Value = item.Id.ToString(), Text = item.Name }); BuildFunctionItems(item, functionItems, item.Name); } viewModel.HierarchicalFunctions = functionItems; }