public virtual async Task <GetOrganizationUnitForEditOutput> NewAsync(Guid?parentId)
        {
            var output = new GetOrganizationUnitForEditOutput();

            output.OrganizationUnit = new OrganizationUnitEditDto();
            output.RoleIds          = new Guid[0];
            output.AvailableRoles   = await GetAvailableRolesAsync(parentId);

            return(output);
        }
        public virtual async Task <GetOrganizationUnitForEditOutput> GetOrganizationUnitForEditAsync(Guid id)
        {
            var ou = await OrganizationUnitRepository.GetAsync(id, true);

            var output = new GetOrganizationUnitForEditOutput();

            output.OrganizationUnit = ObjectMapper.Map <OrganizationUnit, OrganizationUnitEditDto>(ou);
            output.RoleIds          = ou.Roles.Select(r => r.RoleId).ToArray();
            output.AvailableRoles   = await GetAvailableRolesAsync(ou.ParentId);

            return(output);
        }