Exemplo n.º 1
0
        private CreateIssue(JiraServer server, JiraIssue parent)
        {
            this.server = server;
            this.parent = parent;
            InitializeComponent();

            if (parent == null)
            {
                labelParentIssueKey.Visible = false;
            }
            ParameterStore store = ParameterStoreManager.Instance.getStoreFor(ParameterStoreManager.StoreType.SETTINGS);

            buttonCreate.Enabled = false;

            SortedDictionary <string, JiraProject> projects = JiraServerCache.Instance.getProjects(server);

            if (projects != null)
            {
                foreach (var project in projects.Values)
                {
                    comboProjects.Items.Add(project);
                }

                List <JiraNamedEntity> priorities = JiraServerCache.Instance.getPriorities(server);
                if (priorities != null)
                {
                    ImageList imageList = new ImageList();
                    int       i         = 0;
                    foreach (var priority in priorities)
                    {
                        imageList.Images.Add(ImageCache.Instance.getImage(server, priority.IconUrl).Img);
                        comboPriorities.Items.Add(new ComboBoxWithImagesItem <JiraNamedEntity>(priority, i));
                        ++i;
                    }
                    comboPriorities.ImageList = imageList;

                    if (priorities.Count > 0)
                    {
                        int idx = store.loadParameter(PRIORITY + server.GUID, -1);
                        if (idx != -1 && comboPriorities.Items.Count > idx)
                        {
                            comboPriorities.SelectedIndex = idx;
                        }
                        else
                        {
                            comboPriorities.SelectedIndex = priorities.Count / 2;
                        }
                    }

                    if (projects.Count > 0)
                    {
                        int idx = store.loadParameter(PROJECT + server.GUID, -1);
                        if (idx != -1 && comboProjects.Items.Count > idx)
                        {
                            initialUpdate = true;
                            comboProjects.SelectedIndex = idx;
                        }
                    }
                }

                if (parent != null)
                {
                    comboProjects.Visible       = false;
                    labelProject.Visible        = false;
                    labelParentIssueKey.Visible = true;
                    labelParentIssueKey.Text    = "Parent issue key: " + parent.Key;
                    foreach (var item in comboProjects.Items.Cast <object>()
                             .Where(item => ((JiraProject)item).Key.Equals(parent.ProjectKey)))
                    {
                        comboProjects.SelectedItem = item;
                        break;
                    }
                }
            }

            StartPosition = FormStartPosition.CenterParent;

            jiraAssigneePicker.init(server, null, true);

            textDescription.Server = server;
            textDescription.Facade = SmartJiraServerFacade.Instance;
        }
        public void load()
        {
            ParameterStore store = ParameterStoreManager.Instance.getStoreFor(StoreType);

            string defaultGuidString = store.loadParameter(DEFAULT_SERVER_GUID, null);

            defaultServerGuid = defaultGuidString != null ? new Guid(defaultGuidString) : Guid.Empty;

            int count = store.loadParameter(SERVER_COUNT, 0);

            try {
                if (count > 0)
                {
                    for (int i = 1; i <= count; ++i)
                    {
                        string guidStr = store.loadParameter(SERVER_GUID + i, null);
                        Guid   guid    = new Guid(guidStr);
                        string type    = store.loadParameter(SERVER_TYPE + guidStr, null);
                        if (String.IsNullOrEmpty(type) || !SupportedServerType.Equals(new Guid(type)))
                        {
                            // hmm. Is it right? Maybe throw an exception?
                            continue;
                        }

                        string sName = store.loadParameter(SERVER_NAME + "_" + guidStr, null);
                        string url   = store.loadParameter(SERVER_URL + "_" + guidStr, null);

                        T server = createServer(
                            guid, sName, url, null, null,
                            store.loadParameter(SERVER_DONT_USE_PROXY + "_" + guidStr, 0) > 0,
                            store.loadParameter(SERVER_ENABLED + "_" + guidStr, 1) > 0);

                        server.IsShared = false;

                        server.UserName = CredentialsVault.Instance.getUserName(server);
                        server.Password = CredentialsVault.Instance.getPassword(server);

                        loadCustomServerParameters(store, server);

                        addServer(server, true);
                    }
                }

                RegistryKey key = getSharedServersRegistryKey();
                if (key == null)
                {
                    return;
                }
                using (key) {
                    foreach (var subKeyName in key.GetSubKeyNames())
                    {
                        using (RegistryKey subKey = key.OpenSubKey(subKeyName)) {
                            if (subKey == null)
                            {
                                continue;
                            }
                            T server = createServer(
                                new Guid(subKeyName),
                                (string)subKey.GetValue(SERVER_NAME),
                                (string)subKey.GetValue(SERVER_URL),
                                null, null,
                                (int)subKey.GetValue(SERVER_DONT_USE_PROXY, 0) > 0,
                                // enabled/disabled state is always per solution, even for shared servers
                                store.loadParameter(SERVER_ENABLED + subKeyName, 1) > 0);

                            server.UserName = CredentialsVault.Instance.getUserName(server);
                            server.Password = CredentialsVault.Instance.getPassword(server);

                            loadCustomServerParameters(subKey, server);

                            server.IsShared = true;

                            addServer(server, true);
                        }
                    }
                }
            } catch (Exception e) {
                Debug.WriteLine(e);
            }
        }