SHASHANK Balaganchi Ответов: 2

Не могли бы вы помочь мне получить список проектов, которые принадлежат домену в ALM?


Ниже приведен фрагмент кода, который я попытался перечислить вниз проекты для домена в ALM, и я получаю следующее сообщение об ошибке

Indexed property 'ITDConnection11.VisibleProjects' has non-optional arguments which must be provided


Сообщение об ошибке отображается в этой строке кода
List proj = qctd.VisibleProjects;


Сейчас я поражен и не знаю, как продвигаться в этом направлении.. Не могли бы вы мне в этом помочь?

Что я уже пробовал:

using System;
using System.Windows.Forms;
using MetroFramework.Forms;
using MetroFramework;
using TDAPIOLELib;

namespace ALM___Utilities
{
    public partial class Form1 : MetroForm
    {
        public Form1()
        {
            InitializeComponent();

        }

        private void ALM_url_TextChanged(object sender, EventArgs e)
        {
            if (string.IsNullOrEmpty(ALM_url.Text) & string.IsNullOrEmpty(Username.Text) & string.IsNullOrEmpty(Password.Text))

                loginbutton.Enabled = true;
            else
                loginbutton.Enabled = false;

        }

        private void loginbutton_Click(object sender, EventArgs e)
        {
            string username = Username.Text;
            string password = Password.Text;
            string URL = ALM_url.Text;
            TDConnection qctd = new TDConnection();
            qctd.InitConnectionEx(URL);
            try
            {
                qctd.Login(username, password);
                if (qctd.Connected)
                {
                    MetroMessageBox.Show(this, "Logged in Successfully", "Login Status", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
                List domainlist = qctd.VisibleDomains;
                List proj = qctd.VisibleProjects;
                foreach (string desc in domainlist)
                {
                    
                       
                   foreach ( var projname in proj)
                    { 
                        MetroMessageBox.Show(this, desc.ToString(), "domain", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        //MetroMessageBox.Show(this, projname.ToString(), "domain", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                    
                    {
                        
                    }
                        
                        //MetroMessageBox.Show(this, Project.ToString(), "prj", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                


            }
            catch (Exception ex)
            {
                MetroMessageBox.Show(this, ex.Message, "Login Status", MessageBoxButtons.OK, MessageBoxIcon.Error);

            }

        }
    }
}

2 Ответов

Рейтинг:
14

CHill60

Вы должны указать доменное имя - см. документацию Свойство VisibleProjects[^]
Вместо

List proj = qctd.VisibleProjects;
foreach (string desc in domainlist)
{
пробовать
foreach (string desc in domainlist)
{
    List proj = qctd.VisibleProjects(desc);


SHASHANK Balaganchi

Non-invocable member 'ITDConnection11.VisibleProjects[string]' cannot be used like a method


Я получаю вышеуказанное сообщение в нижеприведенной строке после редактирования в соответствии с приведенным выше комментарием

 List projlist = qctd.VisibleProjects(desc); 

Рейтинг:
11

SHASHANK Balaganchi

foreach (string desc in domainlist)
{
    List proj = qctd.VisibleProjects[desc];

}

Приведенный выше код сработал. Проблема была в том , что мы должны использовать квадратные скобки, а не парантезис


CHill60

На самом деле, первоначальная проблема заключалась в том, что вы вообще не передавали никаких параметров!

SHASHANK Balaganchi

Я согласен с вами.. Я соглашусь с вашим ответом