コード例 #1
0
        public async Task <IActionResult> CompanyChild(string id)
        {
            var currentUser = _currentUserService.CurrentUser;

            id ??= currentUser?.CompanyInfo?.CompanyCode;
            var list        = _companiesService.FindAllChild(id)?.ToDictionary(c => c.Code) ?? new Dictionary <string, Company>();
            int totalCount  = list.Count;
            var manageCount = 0;

            if (currentUser != null && (new List <string>()
            {
                null, "", "root"
            }.Contains(id)))
            {
                var mymanage_result = await _usersService.InMyManage(currentUser);

                manageCount = mymanage_result.Item2;
                var uc = currentUser.CompanyInfo.Company;
                list[uc.Code] = uc;
                manageCount  -= AddCompanyList(list, mymanage_result.Item1.ToList());
                var permissionCompanies = _companiesService.PermissionViewCompanies(currentUser);
                manageCount += permissionCompanies.Count;
                manageCount -= AddCompanyList(list, permissionCompanies);
            }
            return(new JsonResult(new AllChildViewModel()
            {
                Data = new EntitiesListDataModel <CompanyChildDataModel>()
                {
                    List = list.Values.OrderByDescending(c => c.Priority).Select(c => c.ToCompanyModel()),
                    TotalCount = totalCount + manageCount
                }
            }));
        }